D语言的崛起与没落
从D语言的众多特性中我们可以很容易看出它的愿景和野心。事实上,D语言经过这两年的发展的确在某些应用中取代了C++甚至Java。
有很多人经常拿C++、C#和Java来进行比较。在使用感觉上,可能后两种语言会使程序员更舒服一些,但在效率上C++会更胜一筹。这在有时会形成两 难的选择。在D语言诞生之前是不可能在效率和易用性兼得的。但如果看一下D语言的介绍之后,你心中可能会砰然一动。D语言正是结合了C#、Java和 C++以及PHP、Python等动态语言的特性于一身。尤其是它提供的垃圾收集器并不同于Java和C#的垃圾回收。它的垃圾回收器并不依赖于虚拟机, 而是作为可执行程序单独来运行的。这样它的效率非常高。这也意味着这个类似C++语法的计算机语言再也不用释放内存了,只要按需来分配内存即可。
面向对象、垃圾回收、动态性、跨平台,这些让人心动的诱人特性促使D语言迅速崛起,但这背后你总会有些怀疑,真的有如此完美的语言吗?
没有“银弹”。D语言经常限于“修正并改进的C++”。这会导致过分强调功能,这是因为为D语言加入新功能只是因为他们认为有用(很像当年的C++标准更新和现在的Java7)。举个例子,关联阵列可简单的以标准函式库实现,而效率问题成了编译器和程序员共同的困惑。
此外,D语言的标准函式库称作Phobos;这个库被很多程序员认为过分简单。tango编写另一个标准函式库试图修正这一部分,不过phobos和 tango目前由于不同的API接口(导致垃圾回收困难)而互不相容。存在两种事实上的标准函式库可能导致更大的问题,部分软件使用phobos,而其它 软件使用tango。
我们可以简单的认为Java的崛起是它对某些问题的“解决”;而D语言的失败则是他对C++某些问题的“修正";目前D语言正在不断改进,正有越来越多的程序员开始接触这门新兴语言,让我们期待D语言的发展。