使用D编程语言的经验

19

有没有人在这里有过使用D编程语言的经验?

它似乎有很多不错的功能,但它会达到类似于C++、Java或C#等目前广泛使用的编程语言的流行程度吗?

那么学习它是否值得,还是它只是一种前景较小的孤立语言。


学习它是值得的,因为它有一些不错的特性,但不值得投资编写真实世界的应用程序,因为工具和库很糟糕。它只是组织得不好,有太多微妙的问题,浪费了比人们意识到的更多的时间。没有企业想要那样的东西。我认为许多人下意识地感觉到这是一个潘多拉魔盒。这就像在网上以1万美元购买一辆看起来很棒、跑得很好的保时捷...但当你开了一个月后,你开始注意到一些运行不正常的事情...然后,最终,事情开始崩溃。 - Stretto
我认为 D 语言最好的用途是编写某些高级算法和工具,这些算法和工具不大且不互相连接,然后从其他语言中调用它们。这样一来,我们在 D 上花费的时间就会更少,但可以更有利地使用其强大的功能。不幸的是,由于它与其他语言之间的交互操作,这种方法有些棘手(你最终可能会使用 C 而不是 C++ 进行编写,因为模板不能在两者之间转换...尽管可能可以通过一些良好的包装器来克服这个问题)。 - Stretto
2个回答

38
我花了几天时间试用 D 语言,以便比较它与 C++ 和 Java 的差异。D 作为另一种实现 C++ 所做的事情的方式,但没有所有未定义的行为,并添加了垃圾收集器、foreach 循环和其他一些现代化的特性。它编译成本地代码,因此您可以访问从此场景中可能发生的所有通常的优化。
整个 C 语言被封装为 D 的子集,作为构建该语言的许多部分的低级构建块。这可以帮助实现可移植性,但也防止 D 发展成为单一一致的方法论。
在 D 中本地运行任何 C 函数的能力打开了包括系统编程(操作系统、驱动程序等)在内的可能性领域。
D 中有两个常用的类框架。默认是 Phobos,它在设计上相当简洁和简单,允许您创建所需的结构,但提供了很少的大型或复杂的构建块。另一个是Tango,它类似于 Java 类库,并包含一个更完整的框架。还有一个项目允许两个库的互操作性。
根据我的经验,D 是一种非常好的编码语言,与 C# 和 Java 有很多共同点,并允许通过 C 甚至汇编互操作来访问原始机器。我看到的主要限制是缺乏良好的开发工具支持。有一些 IDE 和插件,但没有什么非常完整的,因此您可能最好使用文本编辑器和命令行构建工具。

这种语言有两个版本,D1和D2。目前来说,D1得到了更好的框架和编译器的支持,而D2则增加了一些方便的功能,使得使用和处理该语言更加容易。

更新(2009年6月): 我最近又重新研究了一下D语言,并想提醒大家注意DSource,它现在有很多不同的编译器项目,是Tango库、各种绑定、几个GUI工具包和一些IDE的家园。其中一些项目在刚开始时就被放弃了,但我相信现在仍有很多项目正在积极推进并取得良好的进展。在这个阶段,D的成功看起来很大程度上将由开源运动决定,而不是由它的创始人。

更新(2012年2月) 虽然我自上次编辑以来没有太多接触D,但我要指出D2已经发布了,有一个很棒的书The D Programming Language支持。与Alexandrescu的风格一样,它揭示了模板系统的许多细节,包括模板约束,使得D比当前状态的C++更具表现力和类型安全性。

除了阅读这本书,我自2009年以来就没有接触过D语言或其工具和社区,因此无法评论它们的成熟度或发展至今。我知道有一小部分专业程序员希望在工作中使用该语言,但我们大多数人通常被困在C++和其他流行语言中,在D应该最擅长的领域也是如此。


1
目前状况的公正评估,尽管在工具链方面取得了快速进展。请参阅LDC(http://www.dsource.org/projects/ldc)和Descent(Eclipse插件:http://www.dsource.org/projects/descent)。 - dsimcha
2
@dsimcha:对于工具链评论,我也是同感,它正在快速改进。如果针对D语言的工具链甚至有C++那么80%的好,则我认为C++将迅速成为一种遗留语言。随着时间的推移,我认为它会实现这一点。 - BCS
1
值得一提的是:D语言的开发在过去一年左右有所加速。参考编译器现在是开源的(不是FOSS,但不是闭源),并且完整的可构建源代码已经上传到了Github上。这使得许多人开始贡献代码。开发人员也开始关注回归计数和其他“生产”和“稳定性”问题,因此它正在远离beta状态。 - BCS
2
C不是D的子集。大多数非平凡的C程序在使用D编译器时无法编译。 - Brad Gilbert
让我们谈谈D语言的GUI。现在是2015年9月。虽然我们仍然可以使用GtkD,但尝试绘制各种类型的图表会很复杂,需要手动完成很多工作。有些人正在Chromium项目上开发D语言的GUI。然而,这仍然相当不成熟和未经记录。我认为,如果D与Chromium的集成能够得到更多的支持者,D语言将会大放异彩。与受虐待的C++相比,D具有如此多的优势。 - Volomike
显示剩余3条评论

1

2
我刚刚看了一下(2012年2月),不幸的是它现在排名第40。尽管如此,它仍然高于Haskell、Go、Eiffel、Clojure、Scala和其他备受关注的语言。根据Tiobe的说法,其中一个正在崛起的语言是LOGO! - Justin
只有39个备份了 :( - Demi
2014年8月,飙升至28。我想知道为什么汇编语言如此受欢迎。 - simonzack
2017年9月,提前到24。 - kol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接