139

有没有人将 D 用于现实世界的应用程序?如果是这样,你用它做什么?我似乎在网上找不到任何用 D 写的大的东西。

尽管缺乏知名的大用户,但 D 对我来说似乎是一种很有前途的语言,而且根据TIOBE的说法,它相当流行。

4

20 回答 20

89

我在 D 从事生物信息学工作。对我而言,D 的关键在于它采用非常冷静的方法进行权衡,并承认收益递减原则。

与严格遵守零开销原则的 C++ 不同,D 允许使用可能具有较小性能/空间成本的特性,如果它们使语言更可用的话。这些包括垃圾收集、每个类的监视器对象、运行时类型信息等。

与 Ruby、Python、PHP 等不同,D 试图几乎与 C 一样快,即使它比脚本语言更不动态且编程难度稍大一些。
结果是当开发时间和执行时间同等重要时,这是一种最佳语言,在我的领域中大部分时间都是如此。

同样,D 对安全性与灵活性采取了非常冷静的方法。它假定程序员基本上知道他们在做什么,但确实会犯错误。

与 C 和 C++ 不同,它假定您不想在代码中的任何地方使用指针、不安全强制转换、手动内存管理等,因为它们容易出错,并且假定您不想筛选 multi -page 模板错误消息,当您只是为了使用可调整大小的数组而搞砸时。

与 Java 和其他束缚​​和纪律语言不同,D 假设有时指针、不安全强制转换、手动内存管理等是必要的邪恶,并假设您足够聪明,无需编写即可处理真正的模板、运算符重载等混淆代码。它还假设您可能会搞砸并越界访问数组,但程序员最清楚在任何给定情况下应该在安全性和速度之间做出什么权衡。因此,数组是否进行边界检查只是由编译器开关确定。

于 2008-09-16T16:05:24.757 回答
78

我正在使用 D 进行计算机图形学领域的研究工作。我和其他人已经根据使用 D 完成的工作在我们的领域发表了论文。我认为它绝对可以用于性能很重要的中小型研究项目。它非常适合研究工作,因为无论如何您通常都是从头开始,因此您无需担心与太多遗留代码集成。

另一个流行的使用领域似乎是 Web 服务。希望其他人可以评论谁在这个领域,但我也认为这个想法是性能通常真的很重要,所以你想要一种编译到金属的语言。服务通常是相当小的、独立的进程,因此与大量遗留 C++ 代码的互操作并不是真正必要或有用的。这样D就可以进门了。

我认为 D 将继续以这种方式获得草根追随者——在较小的项目上,无论出于何种原因,这些项目都可以放弃 C++ 的传统,以获得一种使用起来更愉快、或许也更有生产力的编程语言。

但是,除非有大量的草根用户,否则我怀疑大企业用户不会有太多的障碍。

于 2008-09-16T14:46:45.333 回答
32

我知道一家小型公司已将邮件服务器产品推向市场。他们至少有 2 个人在该项目上全职工作。

此外,IT 业务的主要参与者有几名员工在较大的内部项目中使用 D。

此外,据我所知,有一家公司正在寻求风险投资,有几名(至少 4 名)小公司的员工部分或全职使用 D,并且至少有一对(包括我)积极寻求咨询市场的机会。

我可能遗漏了一些我应该知道的,可能还有一些我没有听说过的,但这仍然存在,因为以上或多或少是我通过社区认识的。

我目前收入的一小部分来自 D.

于 2008-09-16T22:03:37.017 回答
30

我使用 D 进行 Web 开发,与 C/C++ 相比,它的效率要高得多。当然,有很多基于 ruby​​/php/python 的框架。但是,如果您想开发一些独特的东西,而且必须与 C 一样快,并且几乎像使用许多脚本语言一样易于编程,那么 D 是一个不错的选择。

于 2008-09-16T15:03:49.880 回答
26

我将 D 用于循环中的硬件 (HIL) 测试环境。这适用于汽车领域的软件测试。这里可以使用 D,因为作为一种系统编程语言,它可以用于实时程序(Linux 实时扩展 RTAI-LXRT 中的 IRQ 处理程序)。

随着 SWT/JFace 的持续移植,我计划在 D 中做更多的工作,而我以前会在 Java 中完成。

于 2008-09-16T14:56:57.727 回答
22

Facebook宣布他们从今天开始在生产中使用它。

于 2013-10-11T23:48:52.520 回答
20

我在关于编译时代码翻译的研究中使用 D。高级模板与元组和 mixins 相结合使代码翻译更加容易,并且允许在编译期间完成代码翻译,而无需单独的工具。

有一些物理学家使用 D 来通过 D 中的元编程来增强他们的程序的例子。

视频- 会议谈话,找不到物理学家使用的源站点。

于 2008-09-16T15:48:25.500 回答
17

我们的整个(高流量)网络基础设施仅基于 D1 和 tango。我们是柏林一家年轻的创业公司:sociomantic.com

于 2011-04-06T13:42:28.030 回答
15

我目前的工作任务是将 C# 翻译成 D 的系统。这是开发软件系统的营利项目的一部分。

于 2008-09-16T18:50:15.047 回答
8

ABA Games发布的许多游戏都是用 D 1.x 编写的,尽管我认为控制台端口必须用 C++ 重写。

我已经用 D 编写了很多游戏原型,但我不确定这是否符合“真实世界”的条件,因为我是为了自己的利益而编写它们并且从未发布过任何一个。

于 2008-09-16T17:10:28.453 回答
8

我编写了(我仍在维护和开发)一个软件,用于将测试仪协议从各种硬件测试站转换为标准化的输出格式,以实现可追溯性和类似的东西。

总共超过 5k 行代码,使用 D 1.x 和 Phobos 库编写。

D 非常容易学习,并且忽略一些陷阱(在 Phobos 库中)是编程的真正乐趣。

于 2012-01-19T16:46:52.470 回答
7

我使用的是版本的第二个标准 D2。我编写了实时应用程序(例如 3D 引擎)。

这种语言每天都变得越来越强大。在我看来,D 非常实用,所有的嵌入式特性,尤其是元编程范式,使它远远超过 C++。语法更清晰,您可以通过filterreduce等函数使用函数式编程的优势,并且最重要的功能之一:您可以使用所有 C 库。

绝对是我最喜欢的语言,而且我很确定它会成为一种广泛使用的语言。

于 2012-12-10T14:38:23.953 回答
7

似乎Remedy Games有一个庞大的 D2 代码库用于他们的游戏(参见Manu Evans与游戏引擎一起使用 D - DConf 2013)。

他们是一家大公司,知道一家大公司在使用 D 是非常好的。

于 2013-02-14T17:24:59.013 回答
6

我在开发全局优化算法的研究项目中使用了 D。我将其应用于训练神经网络的问题。是否要将此称为“现实世界”取决于您。

于 2008-09-17T09:50:11.717 回答
6

我写了一个在 OS X 上构建 DGCC 的包装脚本

http://github.com/davecheney/make-gdc-apple/tree/master

我很想听听其他 DMD 程序员的意见

于 2008-09-19T06:04:42.663 回答
4

我想我们可以读到这个问题缺乏直接答案的情况,那就是没有多少/任何活跃的 stackoverflow 响应者正在使用 D。我也对它在 TIOBE 列表中的排名水平感到有点惊讶,你链接到。

话虽如此,Walter Bright 已经在这门语言上工作了很多年,我认为他有很多“追随者”,他们记得他在 90 年代使用 Zortech C++ 编译器做得多么出色。我还注意到,该语言现在似乎倾向于功能方向。

于 2008-09-11T12:48:58.263 回答
2

D的官网列举了目前正在使用D的组织。

http://dlang.org/orgs-using-d.html

D wiki还提供了组织列表,但它已经过时了。

请仔细观看DConf 的演讲。

几乎所有的人都为某家公司工作,他们在工作中使用 D。

于 2014-05-31T18:30:41.553 回答
0

我正在启动一个项目,将我们的一些内部工具从 Perl 重写为 D。我选择了 D,因为我对该语言的设计理念感到非常兴奋。我已经编程很长时间了,使用过很多语言,从汇编程序到高级(主要是 C)再到脚本语言(主要是 Perl),而 D 是我多年来一直热衷于学习的第一门语言.

我决定转向编译语言有一个主要原因——安全性。在功能上,Perl 非常适合我使用的工具集,但它不安全——任何可以运行脚本的人也可以读取、复制和创建他们自己的工具修改版本。(他们确实这样做了。)我知道有一些迂回的方法可以解决这个问题(有点),但老实说,我一天中没有足够的时间来管理所有这些并且仍然完成我的主要工作。

于 2014-05-30T15:36:08.053 回答
-1

我用 ldmd2 在 D 中启动了一个光线追踪渲染器。

http://palaes.rudanium.org/SubSpace/render.php

于 2014-03-03T12:37:50.487 回答