D language是java和C++的可信替代吗?怎样才能成为可靠的替代方案?我应该费心学吗?它值得传福音吗?
我问的主要原因是,新的C++标准(C++ +0x)几乎在这里,我清楚地明白,语言已经很好地超过了任何人都无法理解的点.我知道C/C++永远不会消亡,但总有一天我们需要继续前进.甚至COBOL也有它的一天,java在很多方面都已经取消C++.那么接下来呢?D填账单了吗?
D language是java和C++的可信替代吗?怎样才能成为可靠的替代方案?我应该费心学吗?它值得传福音吗?
我问的主要原因是,新的C++标准(C++ +0x)几乎在这里,我清楚地明白,语言已经很好地超过了任何人都无法理解的点.我知道C/C++永远不会消亡,但总有一天我们需要继续前进.甚至COBOL也有它的一天,java在很多方面都已经取消C++.那么接下来呢?D填账单了吗?
在实际软件开发中,决定编程语言成功和流行的因素只是与语言本身的质量部分相关.作为一种纯语言,D可以说比C++和Java有很多优势.至少,在其他条件不变的情况下,作为一种纯粹的语言,它是一种可信的 Select .
然而,对于软件开发来说,其他事情几乎比语言本身更重要:可移植性(它在多少个平台上运行)、调试器支持、IDE支持、标准库质量、动态库支持、通用API的绑定、文档、开发人员社区、Momentum和商业支持,仅举几例.在所有这些方面,D都远远落后于Java、C++和C#.事实上,在这些方面,我认为它甚至落后于所谓的"脚本"语言,如Python、Perl、PHP、Ruby,甚至JavaScript.
坦率地说,你无法使用D构建一个大规模的跨平台应用程序.由于标准库不成熟,在任何现代IDE中都不支持(Visual Studio和Xamarin Studio/MonoDevelop都有插件),动态/共享库支持有限,与其他语言的绑定很少,D现在根本不是一个选项.
如果你喜欢D所看到的,当然,要学会它——如果你已经知道java和C++,就不需要太长时间.我不认为布道会有帮助——在这一点上,如果D要成功,它真正需要的是更多的人安静地使用它,并解决它的主要缺点,如标准库和IDE支持.
最后,至于C++,虽然大多数人都认为这种语言太复杂了,但成千上万的公司通过只允许较小的、定义良好的语言子集,成功地使用了C++作为健康的语言混合的一部分.当同时需要原始性能和很小的内存使用量时,仍然很难胜过C++.