Archive for 2009年2月

D语言的前景?

CSDN上看到条旧闻,D语言在MAC上终于有编译器了。07年的时候还关注过这门新兴的语言,语法基本秉承了C++的风格,而且对C++的一些思想的吸收和改进也很令人感兴趣,目标是具备C/C++语言的进行底层开发的能力(能够直接嵌入汇编),又具有大量Java和C#的开发特性(比如自动垃圾回收,delegate等),同时在语言级别支持一些数据结构。最令我感兴趣的一点,Bright添加了GC的功能同时还能保有C++的性能?说实话当时只注意看手册里所提及的内存优化等措施。此外还支持与C的兼容,尽管会有一些小的问题。模版的功能也很有趣,尽管它并不象C++般的可以返回引用。

但大概没有什么新语言的开发让人如此关注同时又如此的命运多舛了,Bright执意保留自己对编译器后端的版权,着实影响了一批热情的开发者,最著名的逼宫事件就是Chris Miller在D语言的新闻组中发言要求DMD和D语言规范增加分支DMD needs branches。但Bright似乎有点顽固,坚持自己的目标是:对C++的修正和改进。他倾向于只需要一些较小的改进而不是颠覆,对ruby和python这样的脚本语言的一些优点也不屑一顾,即便是Bjarne当初开发C++也在AT&T内部进行了讨论并进行了修改,如今在开源的大趋势下,置许多使用者的呼声于不顾,至少在推广和进一步开发上会遇到不小的困难,否则也不会出现在1.0版本发行俩年后才有第三个编译器,Gdc也使用的是Bright本人开发的编译器后端,与目前获得成功的linux相比,Bright难道没有看到linus本人只在指导思想上做把握而把开发的工作交给使用者这样的方法的巨大优势吗?更何况目前的D还有不少的问题,如标准库以及对动态连接的支持。

目前类似JIT这样的技术以及硬件方面的发展,已经置D语言于一个相当尴尬的境地了,底层开发仍然是C和汇编的天下,再向上有python等动态语言的挤压,与D处于同一层次的java也在逐步的考虑开源,Bright的固执似乎并非如Bjarne般对语言特性的取舍来自于讨论和会议,而固执正将他带向一个死胡同,或许是昙花一现?尚未有定论。

留下评论