D语言没有明天 ?
在写了<Windows 下最漂亮的GUI库 HTMLayout >后:
http://bbs.d-programming-language-china.org/thread-750-1-1.html
意犹未尽,再发一帖.
为什么说D语言没有明天?
D语言初学者对互不兼容的两个"标准库":Phobos和Tango难以理解,这一切其实都是D语言的设计和实现者Walter造成的.
Phobos是准官方标准库,由Walter为主维护. D语言发展几年了,因为存在强烈的实际开发需求,D社区迫切希望D标准库顺应时代快速演进发展,因此提交patch到Phobos,但是,居说一年过去了,patch也没有加入到Phobos.在没有办法之下,D社区只好另起炉灶开发Tango,可是Phobos库名被硬编码进编译器,还有其他一些限制,使得两个库完全兼容不可能.于是就造成了现在这样的局面.
现在已经不是个人英雄主义的时代了,这个时代不需要英雄,需要的集体智慧,团队配合
一个天才再强,总不可能胜过成百上千的团队(团队里的个人不见得就比那个天才差).
但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