yidabu 2008-3-9 19:01
D语言没有明天 ?
D语言没有明天 ?
在写了<Windows 下最漂亮的GUI库 HTMLayout >后:
[url]http://bbs.d-programming-language-china.org/thread-750-1-1.html[/url]
意犹未尽,再发一帖.
为什么说D语言没有明天?
D语言初学者对互不兼容的两个"标准库":Phobos和Tango难以理解,这一切其实都是D语言的设计和实现者Walter造成的.
Phobos是准官方标准库,由Walter为主维护. D语言发展几年了,因为存在强烈的实际开发需求,D社区迫切希望D标准库顺应时代快速演进发展,因此提交patch到Phobos,但是,居说一年过去了,patch也没有加入到Phobos.在没有办法之下,D社区只好另起炉灶开发Tango,可是Phobos库名被硬编码进编译器,还有其他一些限制,使得两个库完全兼容不可能.于是就造成了现在这样的局面.
[b]现在已经不是个人英雄主义的时代了,这个时代不需要英雄,需要的集体智慧,团队配合[/b]
一个天才再强,总不可能胜过成百上千的团队(团队里的个人不见得就比那个天才差).
但Walter的思想显然还是停留在30年代,自己开发C++编译器,D编译器,维护网站文档,写标准库,bug修复,新功能设计...
我们在叹服Walter的天才,勤奋的同时,也明显感到一丝丝无奈...
不说编译器,就说标准库的开发,软件开发应用范围越来越深广,不断有新的需求产生,就那么一两个人开发的库,根本不能满足现实需求
我经常听人说,C++最大的问题是库不够丰富,而不是语法不够象D那么优美.可是我明明看到大量C++库的存在,这说明什么?
说明现实的需求实在是发展太快了,以致看来丰富的库还是跟不上现实.
如果说现在的C++库还是很不够的话,那么发展了几年的D,几乎还是白纸一张,这不是吗,才刚刚从莫名其妙的标准库之争走出来,现在多数的库和工具都基于Tango开发了,官方的Phobos越来越成为"非标准库"了.这就是自然选择,而同样的自然选择降临D,就是D的淘汰,这虽然不是我们喜欢看到的.
我个人如果可能,就决不用不兼容Tango的Phobos
再看库的实现, 还在为程序的一点点执行效率斤斤计较,D的正则表达式实现功能非常弱,我和Tango正则实现者讨论过这个问题,他认为现在几乎所有程序语言在用的Perl类型正则效率太低,因此大辐削减功能(比如把反向引用去掉),以求速度更快.但他没有想到,机器的工作效率是提高了,但程序员的效率又如何呢?既然机器效率这么重要,也不需要D, 大家直接用C操作文本不是更好.
有谁想得到5年后硬件发展得怎么样,CPU几核了?
D语言看C++是徐娘半老风韵不存,比C++还原始的C语言却有一个强大的正则表达式实现--PCRE, Apache, PHP, KDE, Postfix, Analog, 和 Nmap都在用PCRE, D语言既然不能开发出这么强大的正则表达式引擎,为什么不直接拿来就用.D与C二进制兼容的功能就白白被浪费...正确的策略是,有现成的C实现,现阶段就直接包装来用,10年半载后等D有更好的实现时再取而代之.
再看D的GUI库,那么多库,转这个,转那个,几年了,就没有一个成气候,其实就Windows下来说,最好方案也许就是HTMLayout, 只需要包装一下API,最省时间,却能立即应用.其他如DWT的转换,不是一时刻三刻能完成的,但现实需求是时刻存在的.
说了那么多,总结一下,D语言有一两个天才的程序员,但缺乏哪怕是三流的"司令员".
你不要说D一直在发展,关起门来看老婆总是最漂亮的,央视总是只报某某国内总产值达世界第几从来不会忘记不说平均值倒数第几的. D在发展,那么Ruby, Php, Python, MS的.net呢...
每个男人都想娶世上最漂亮的MM, 愿望是美好的.但回到现实中,该干啥干啥,不要等待D.个人玩玩(或者很特殊的项目)用一下D也许还是不错的.
20080309
hqs7636 2008-3-10 01:50
我感觉2.0稳定之后dsource会再次活跃起来,你所担心的问题应该会逐步得到改善,再说库不一定要非常完美,基本可用就可,关键是语言带给人实现创意的能力。像当年的dbase,foxbase基本没有现在这样的库,也一样做出了很多系统,swing不如winform好用,但他的二次开发能力非常强,有人纯用它就做出了office,sun的office都用了将近一半的c++代码。(当然代价也很大)
现在的人对库的依赖性大了,对语言的操纵能力反而弱了,像java c#语言能力相对较弱,一般人很难用它实现自己的创意,只能依赖库能力。我也喜欢完美的库,但是最好别依赖,再说一个满足所有人的完美的库也是永远做不到的
当然Tango和Phobos的不兼容是不应该的,甚至不应该有分支,但有点小瑕疵不至于成遗憾就好,相信未来会得到解决的,Phobos不是进dsource了吗。
只要未来d语言至少能保持今天的开源,就没有问题,市场会有选择、完善和淘汰机制,如果哪天d语言不开源了,Walter老兄又不改进现在的方式那就是灾难了。
所以不用着急,等2.0稳定了,dsource活跃了,应用起来了,利益会驱动的(大公司肯定会介入)。
最后说一个,编译器真开源了不一定就是好事,大家都乱改搞出一堆编译器未必就一定好。
以上所说不一定对,只是自己的感觉。
visus 2008-7-27 12:16
楼主写得真好啊。看D官方论坛天天吵架的帖子,我也深有感触啊。
现在只能坚决用tango了。
可惜dmd是不开源的。。。。只能等待gdc了。如果WB现在放出一些东西来让大家写,我觉的发展肯定就不一样了。
2.0的问题不知道什么时候才能解决。