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++.

Java相关问答推荐

我正在try 对用户输入的整元进行气泡排序(Java)

OpenRewriter-如何替换连锁/流畅方法调用中的方法?

Java应用程序RAC感知

Gmail Javi API批量处理太多请求

基于仅存在于父级中的字段查询子文档?

如何使用Java API在Oracle ODI中运行模拟?

只需最少的代码更改即可将版本号标记添加到日志(log)

在springboot 3中,当我调用api endpoint时,会出现404

如何为JavaFX Spring Boot应用程序制作Windows/MacOS/Linux安装程序

与IntArray相比,ArrayList<;Int>;对于大量元素的性能极差

如何用内置Java从JavaFX应用程序中生成.exe文件?

无法使用Freemarker从XML中读取重复的标记值

Java组件项目中的JavaFX对话框国际化

在Spring Boot JPA for MySQL中为我的所有类创建Bean时出错?

每次我需要时创建和关闭数据库连接会有什么效果吗?

为什么创建Java动态代理需要接口参数

如何制作回文程序?

当我将JTextField的getText函数与相等的String进行比较时;t返回true

Java编译器是否进行了持续的折叠优化,以及如何进行判断?

Java泛型方法重载