发布时间:2022-08-09 文章分类:编程知识 投稿人:赵颖 字号: 默认 | | 超大 打印

Damien Katz因为遗弃Apache CouchDB,转为投入Couchbase Server,并且将大部分代码从Erlang移植到C/C++的事情引起了一些争议,InfoQ对他进行了采访。另外我们对社区的反应做了一点汇总。

CouchDB的创造者Damien Katz在博客上发表了关于CouchDB重大变化的声明和他对于今后参与此项目的定位。Katz希望将他的后续贡献投入到Couchbase Server,这是一个将CouchDB与Membase、Memcached相结合的产品,只是该产品“绝对与Apache无关”。他做出这样的决定,是因为认为“已经到达了一个转折点,原来那种事事求得共识的方式已经成了限制项目竞争力的障碍”。他还说,如果能够重来的话,他会推翻很多原来的做法。其中一个重要变化是把很大部分的Erlang代码移植成C/C++。

为了澄清这些说法,我们找到了Katz。

InfoQ:从你的声明来看,似乎认为Apache的运作流程太迟钝,不利于产品的竞争力。Apache的主要问题在哪里?

DK:我们要快速响应客户和用户的需求,事实证明在Apache项目流程之下,常常很难做到,而且十分折腾。保持两边的代码同步极其痛苦。

InfoQ:如果CouchDB可以重来,你会改变哪些事情?

DK:我会改变很多小的设计决策,大方面的设计还是不会动的。按照我现在积累的经验,我不会选择Erlang。不过现在的经验也是在Erlang的帮助下,经过学习和证明才积累起来的,所以也不能把选择Erlang说成是一个错误。要是现在重新来过,我就有经验了。

InfoQ:经过CouchDB这样的大型产品的实际测试,你认为Erlang当前存在什么问题?它的局限在哪里?

DK: Erlang是很好的语言。非常可靠,非常容易建造出可靠、健壮的系统。但是它的生态圈太小,与其他流行的语言相比,围绕工具、性能方面的投入显得不足。我倒是希望Erlang能成为主流。 Erlang一点都不比Java差,但它的怪异语法令人敬而远之,不但阻碍了流行,也进一步阻碍了商业上的投入。我现在还是热爱Erlang的,很多关键的组件还会用Erlang来写,只不过在性能要求特别突出的部分会用得越来越少。

老资格的CouchDB用户Till Klampaeckel责备了Katz的告别方式:

关键不是Damien离开这件事,而是他的离开方式。

功成身退是常有的事情,谁也不会去指责。我自己也常常这样做,写好代码,公开出去,放下包袱继续前进。

如果代码还行,会有别的人接着做下去;如果不行,就让它放在Github上面发霉。在这点上CouchDB和别的项目没什么两样。可是为什么一个人自己不想继续投入了,就要跑出来宣布项目死亡呢?

Klampaeckel还说出“CouchDB的未来——不是Damien Katz”这样的重话。

Katz就整个事件在Twitter上面发了一点感想:“我今天才知道,如果你建立了一个开源项目,就非得一辈子绑在上面。你一家温饱可以从天上掉下来。” 针对很多反感 其立场的用户和贡献者的的言论(详细请看在Katz的帖子后面的留言),他回应说:“我要说清楚,如果你喜欢Apache CouchDB,完全没必要离开。只是说我正在做的一些东西,我认为你会更喜欢。万一我错了,大家总归还有Apache CouchDB。”

开发Couchbase的公司在12月份做了一次产品线重整,终止了Couchbase Single Server产品,Couchbase Mobile也不再作为独立产品存在,而是改名为Mobile SyncPoint集成到Couchbase Server,以避免营销上的混淆。该公司将停止提供实为CouchDB二进制发行包的 Single Server,把精力集中到与CouchDB分道扬镳的Couchbase Server产品。公司CEO Bob Wiederhold如是说:

虽然Couchbase Server 2.0将继续包含来自CouchDB项目的大量技术,但它将不再对CouchDB向上兼容,今后也不应该将它看作是CouchDB的一个版本。

Mobile SyncPoint将成为客户端或服务端应用向Couchbase Server同步数据的一个框架。公司VP及联合创始人James Phillips提到他们保持协议与CouchDB一致的决心:

我们的目标是保持在线复制协议与Apache CouchDB项目100%兼容。我们*不*打算让移动产品跟Couchbase Server 2.0产品紧密耦合。我们承诺你可以用我们的iOS Mobile组件与标准的Apache CouchDB服务器通信。

Matt Ingenthron说他们会把被终止的Single Server发布版贡献给Apache CouchDB,至于是否接受、如何集成都取决于Apache CouchDB项目成员。他对这次调整定位的看法是:”这是一个艰难的决定;我们作为一家公司,用在产品上的精力不可以分散。”

与Apache CouchDB分手的决定,看起来一方面与产品的发展方向有关,另一方面受到经济问题的影响。Damien Katz和他的团队投入了巨大的精力在结合CouchDB和Membase上面,其中一些人还在为Apache CouchDB作贡献,而大部分人员都参与了另一个单独的Couchbase项目,该项目同样是Apache许可协议下的开源项目。

查看英文原文:Damien Katz Abandons Apache CouchDB, Continues with Couchbase Server