D2语言准备好投入生产了吗? [英] Is D2 language ready for production?

查看:0
本文介绍了D2语言准备好投入生产了吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最近几天我一直在热衷于学习D语言。作为数百万行C++代码的支持者,这看起来像是我的梦想。我们支持高性能低延迟系统,很明显,在过去十年中,C++是唯一的选择。现在,我看到D了。

所以,我的问题很明显。我可以开始考虑将商业软件产品迁移到D语言了吗?有没有这样的迁移或现有的大型商业软件产品从头开始写在D上的例子?

现在投资这种语言安全吗?我们有生产质量的编译器和调试器吗?我们可以假定它们将得到支持和开发吗?

如果您有从C++迁移到D的经验,听到您的消息将是非常高兴的。

PS。我说的D指的是D2

谢谢

推荐答案

我认为D2还没有准备好投入生产,但它已经很接近了。语言定义相当稳定。在这一点上,应该很少发生突破性的更改(尽管可能会发生一些旨在解决语言中的关键问题的附加更改)。编译器的开发进展非常迅速,许多错误正在得到修复。但在这一点上,如果您大量使用D2,遇到编译器错误,特别是如果您使用较新的语言特性。而且这些功能还没有完全实现(例如alias thisinout),所以虽然TDPL基本上是正确的,但DMD仍然有些落后。

此外,尽管标准库Phobos总体上非常好,而且大部分都很稳定,但它在很大程度上仍在进行中。我们试图通过将要删除的内容放入适当的弃用路径(通常按计划弃用6个月,完全删除前6个月被弃用)来避免立即造成破坏性更改,但有时会发生立即破坏性更改do(有时编译器在工作时会导致破坏性更改)。在某些情况下,整个模块将被彻底检查(例如,std.xml和std.stream)。在这方面最令人恼火的可能是std.tainer,它相当新,还没有很多东西,随着Andrei Alexandresu弄清楚我们将如何处理其中的内存管理,它可能会有一个重大的重新设计。因此,集装箱支持正在改善,但普遍缺乏。总而言之,很多火卫一相当稳定,但它绝对不是一成不变的。

绝对支持DMD和Phobos,因为如果您在bugzilla上发布内容或在the newsgroup上讨论它们,人们通常会非常乐于助人,开发人员会尝试及时修复错误,但大多数从事这项工作的人都是在空闲时间这样做的,所以有时可能需要一段时间。不过,切换到github确实改善了情况。我知道Digital Mars为DMC提供了额外的支持,但我不知道他们是否会为DMD提供同样的支持。我预计他们很有可能会这样做(当然,如果他们现在不这样做,我预计他们将来也会这样做)。

至于编译器的质量,DMD使用Digital MARS的DMC作为其后端,而DMC是第一个本机编译代码的C++编译器的最新化身(而不是首先将代码转换为C),D的创建者Walter Bright自创建它以来一直在研究它。他是最好的编译器作家之一,已经创建了许多已经成为C++编译器标准的优化(如Return Value Optimization),但DMC没有很多人从事这方面的工作,而且在某些领域它已经落后(如浮点优化),而D足够新,在优化它方面有很多工作要做。随着错误的修复,我确信更多的注意力最终将转移到优化语言上,最终它将在大多数情况下与C++平起平坐(在某些情况下更好),但现在它实际上取决于您的代码。有时D是平分的,有时不是。

有些人确实在生产代码中使用D2(特别是,我知道Adam D.Ruppe在与他合作的公司中使用它进行Web开发--他经常在D新闻组上发帖),但我认为它们并不是很多,他们通常会避免该语言的更新、更花哨的功能(这通常是最严重的错误所在)。它的稳定性将取决于您对该语言所做的工作。

The wiki有一些关于有待完成的工作的好信息,this recent thread新闻组也有一些好信息。

D肯定正在接近我认为它已经准备好投入生产的阶段,但在这一点上肯定存在一些风险。对于业余爱好来说很棒,但如果你的生计依赖于它,我不知道是否值得冒这个险。不过,它离我们越来越近了。这可能值得您花时间研究它、尝试它、试验它,等等。但我不会只研究您的产品代码并将其全部转换为D。它可能会运行得很好,但也可能不会。我预计从现在起一年后,我可以说D2已经准备好生产了,但我不知道什么时候才能放心地这么说。

这篇关于D2语言准备好投入生产了吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆