【问题标题】:Experiences with D-programming-language [closed]使用 D 编程语言的经验 [关闭]
【发布时间】:2010-10-28 22:03:39
【问题描述】:

这里有人使用过D programming language 吗?

它似乎有很多不错的功能,但它会达到那些当前广泛使用的语言(如 C++、Java 或 C#)的流行度吗?

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

【问题讨论】:

  • 值得学习,因为它有一些不错的功能,但不值得投资编写真实世界的应用程序,因为工具和库都是垃圾。它只是组织得不好,而且有太多微妙的问题,浪费的时间比人们意识到的要多得多。没有企业想要那样。我想很多人会下意识地感觉到这是一罐蠕虫。这就像以 10k 的价格在网上购买一辆看起来很棒且运行良好的门廊......但是当你驾驶它一个月时,你开始注意到运行不正常......然后,最终,事情开始分崩离析。
  • 我认为 D 的最佳用途是做一些不庞大或互连的高级算法和工具,然后使用其他语言的那些。这样一来,人们在 D 上的花费更少,但可以更有利地使用它的强大功能。不幸的是,由于它与其他语言之间的互操作,这很棘手(您最终会用 C 而不是 C++ 编写,因为模板不会在两者之间进行转换......尽管可能可以通过一些运行良好的包装器来克服这一点)。

标签: d


【解决方案1】:

我花了几天时间玩 D,看看它与 C++ 和 java 的比较。它被定位为实现与 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 (dsource.org/projects/ldc) 和 Descent(一个 Eclipse 插件:dsource.org/projects/descent)。
  • @dsimcha:工具链评论同上,它正在迅速改进。如果工具链对 D 和 C++ 一样好 80%,那么我认为 C++ 将迅速成为一种遗留语言。如果有时间,我认为它会到达那里。
  • @BCS:我同意,事实上,D 在它生命的早期就获得了这种程度的支持,这可能是它未来成功的一个指标。
  • FWIW:D 领域的发展在过去一年左右有所回升。参考编译器现在是开源的(如!“封闭源代码”,但不是 FOSS),并且完整的可构建源代码在 github 上。这使许多人开始做出贡献。开发人员也开始担心回归计数和其他“生产”和“稳定性”问题,因此它正在远离 beta 状态。
  • C 不是 D 的子集。大多数重要的 C 程序无法使用 D 编译器进行编译。
【解决方案2】:

在查看语言流行度等问题时,我发现 Tiobe 是一个很好的资源http://www.tiobe.com/content/paperinfo/tpci/index.html

如您所见,D 位列前 20。

【讨论】:

  • 我现在(2012 年 2 月)刚刚看过它,不幸的是它现在已经 40 岁了。也就是说,它仍然高于 Haskell、Go、Eiffel、Clojure、Scala 和其他备受关注的语言。根据 Tiobe 的说法,LOGO 是一种新兴语言!
  • 它只备份到 39 :(
  • 2014 年 8 月,飙升至 28 日。我想知道为什么组装如此受欢迎。
  • 2017 年 9 月,上调至 24 日。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
相关资源
最近更新 更多