现实世界中的D编程语言?

时间:2020-03-05 18:51:22  来源:igfitidea点击:

外面有没有人将D用于实际应用?如果是这样,我们将其用于什么用途?我似乎在用D编写的网络上找不到任何重要的东西。

尽管缺少知名的大用户,但对我来说D似乎是一种非常令人发指的语言,根据TIOBE的说法,它非常受欢迎。

解决方案

回答

我想我们可以从缺乏对这个问题的立即答案的内容中读到一些东西,那就是,没有多少/任何积极的stackoverflow响应者正在使用D。链接到。

话虽如此,沃尔特·布赖特(Walter Bright)从事该语言的研究已有多年了,我认为他有很多"追随者",他们都记得他在90年代使用Zortech C ++编译器所做的出色工作。我还注意到,该语言现在似乎倾向于功能性方向。

回答

我在计算机图形学领域的研究工作中使用了D。我和其他人已经基于使用D所做的工作在我们的领域发表了论文。我认为对于性能至关重要的中小型研究项目,它肯定可以使用。这非常适合研究工作,因为无论如何我们通常都是从头开始,因此我们不必担心要与之集成的旧代码。

另一个受欢迎的领域似乎是Web服务。希望其他人可以评论这个领域的人,但是我也认为,性能通常很重要,因此我们需要一种编译成金属的语言。服务通常是很小的,独立的进程,因此与大量旧式C ++代码互操作并不是真正必要或者有用的。因此,D可以将自己的脚踩到门上。

我认为D将以这种方式继续赢得基层关注者-在较小的项目上,无论出于何种原因,这些项目都可以放弃C ++的遗产,从而获得更有趣,更高效的编程语言。

但是,除非有大量的基层用户,否则我怀疑大型企业用户的方式不会太多。

回答

好吧,我和其他人一样在D中写了几篇研究论文。

http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.announce&artnum=13337

http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=9466.

回答

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

随着SWT / JFace的不断移植,我计划做更多的工作并在D中进行工作,而这本来是我以前在Java中完成的。

回答

我使用D进行Web开发,事实证明,与C / C ++相比,D的生产率更高。
当然,有很多基于ruby / php / python的框架。
但是,当我们要开发独特的东西时,就像在许多脚本语言中一样,它的速度必须与C一样快,并且几乎与编程一样容易,那么D是一个不错的选择。

回答

我正在使用D进行有关编译时代码转换的研究。先进的模板与元组和mixins结合使用,使代码转换更加容易,并允许在编译时完成代码转换,而无需单独的工具。

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

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

回答

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

与严格遵循零开销原则的C ++不同,D如果允许某些特性使语言更加实用,则允许其性能/空间成本降低。其中包括垃圾收集,每个类的监视对象,运行时类型信息等。

与Ruby,Python,PHP等不同,D试图与C几乎一样快,即使它的动态性比脚本语言要差,并且编程难度也比C语言略高。
结果是一种语言,在开发时间和执行时间均相等时,这是一种最佳语言,在我的领域中,这是大多数时间。

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

与C和C ++不同,它假定我们不想在代码中的任何地方都使用指针,不安全的强制转换,手动内存管理等,因为它们容易出错,并且假定我们不想遍历multi页模板错误消息(仅使用可调整大小的数组时)。

与Java和其他约束和纪律语言不同,D假定有时指针,不安全的强制转换,手动内存管理等是必不可少的,并且假定我们足够聪明,可以处理实际模板,运算符重载等而无需编写代码混淆的代码。它还假设我们可能搞砸了并访问了一个数组,但程序员最清楚在任何给定情况下都应该在安全性和速度之间进行权衡。因此,是否通过边界检查数组仅由编译器开关确定。

回答

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

我已经用D编写了很多游戏原型,但是我不确定这是否符合"现实世界"的标准,因为我是出于自己的利益而编写它们的,并且从未发布过它们。

回答

我当前的工作任务是将Cto D转换为系统。这是开发软件系统的盈利计划的一部分。

回答

我知道有一家较小的公司已经向市场发送了邮件服务器产品。他们至少有2个人专职从事该项目。

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

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

我可能遗漏了一些我应该知道的,也许我还没有听说过的东西,但是仍然存在,因为以上内容或者多或者少是我在社区中认识的。

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

回答

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

回答

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

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

我很想听听其他DMD程序员的来信