我想知道D是多么成熟和稳定,如果它可能是C / C ++的一个很好的替代品。
我知道目前有两个标准库(Phobos和Tango)。是否仍然没有统一的标准库?
此外,我刚才听说语言在GCed /非GCed代码的边界上存在问题。我在D网站上找不到任何关于它的参考,这个问题仍然是正确的吗?
答案 0 :(得分:34)
答案 1 :(得分:28)
我建议将D2与Phobos一起使用。它正处于语言足够令人愉快且足够稳定以弥补实施问题引起的偶然挫折的时刻。
答案 2 :(得分:12)
由于许可证的不同,“统一”极不可能。当Tango移植到D 2.0时,你可以将它与Phobos一起使用,这在D 1.0中是不可能的。我知道目前有两个标准库(Phobos和Tango),所以我认为可能有人试图将它们统一起来。
此外,我刚才听说语言在GCed /非GCed代码的边界上存在问题。我在D网站上找不到任何关于它的参考,这个问题仍然是正确的吗?
我相信如果你不小心你如何管理记忆,那么只有问题。如果对GC分配对象的所有引用都存储在标记为GC根的内存区域之外,则GC将认为该对象未引用并将其删除。
如果我今天必须选择D作为C替换,你会建议D(v 1.0或v 2.0)和标准库?
Phobos和Tango的方向有些不同。 Phobos(在D 2.0中)与D2的新功能紧密相关。 Tango功能更加丰富,并且包含Phobos中不存在的模块,例如HTTP / FTP客户端支持,各种加密类等。它们也遵循不同的设计理念(Phobos更强制性/元编程 - ish,而Tango非常严格地类似于OOP,因此在这方面类似于Java)。 / p>
答案 3 :(得分:5)
我想知道D是多么成熟和稳定,如果它可能是C / C ++的一个很好的替代品。
我会谨慎使用任何尚未得到ANSI,ISO或ECMA等标准机构支持的语言。这可能是成熟度的指标。这就是说Java和Delphi就属于那个类别,虽然我不使用这些语言,但它们可能被描述为“成熟”。
另一项措施可能是为该语言编写的书籍和文章的数量和质量。安德烈亚历山大夫斯库(Andrei Alexandrescu)有一本关于D的书。他还为Dobbs博士写了一篇很长的article语言,专门讨论标准库问题。
答案 4 :(得分:4)
我在使用Phobos和SDL在D1中编写小游戏时有很好的经验,但这是一个非常小的项目。
在我看来,D缺乏:
答案 5 :(得分:0)
我认为更换C的问题不在于在理论层面上潜在的替代是否“好”或“成熟”,而在于实际考虑以及C对于什么是“足够好”的事实它用于。除非语言具有适用于每个主要操作系统的完整本机构建和运行时环境,否则对于使用C的内容来说并不实际。事实上,C是POSIX的语言,是整个问题的重要组成部分。
当然,像D这样的其他半低级语言可以在专业领域有很好的应用。但您不太可能看到用D编写的主要多平台软件(Web服务器,数据库服务器,文字处理器,Web浏览器等),因为没有主要的操作系统(更不用说所有这些)都带有D构建或运行时环境。 / p>