- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
8年前关闭。
Improve this question
这里有人有使用过D programming language 的经验吗? ?
它似乎有许多不错的特性,但它会达到那些当前广泛使用的语言(如 C++、Java 或 C#)的流行程度吗?
那么它是否值得学习,还是一种前景渺茫的孤立语言。
最佳答案
我花了几天时间玩 D,看看它与 C++ 和 java 相比如何。它被定位为实现与 C++ 相同的另一种方式,但没有所有未定义的行为,并且添加了垃圾收集器、foreach 循环和其他一些现代细节。它编译为 native 代码,因此您可以访问此场景中可能发生的所有常见优化。
整个 C 语言被封装为 D 的一个子集,作为构建语言大部分的较低级别的构建 block 。这有助于提高可移植性,但也防止 D 演变成单一一致的方法。
在 D 中本地运行任何 C 函数的能力开辟了包括系统编程的可能性领域——操作系统、驱动程序等。
D 中有两个常用的类框架。默认是 Phobos,它在设计上相当简陋和简单,允许您创建所需的结构,但提供的大型或复杂的构建 block 很少。另一个是Tango ,它让人想起 java 类库,并包含一个更完整的框架。还有一个项目允许两个库的互操作性。
根据我的经验,D 是一种非常好的编码语言,与 C# 和 java 有很多共同点,并且允许通过 C 甚至程序集互操作访问原始机器。我看到的主要限制是缺乏良好的开发工具支持。那里有一些 IDE 和插件,但都不是很完整,因此同时使用文本编辑器和命令行构建工具可能会更好。
该语言有两个版本,D1 和 D2。目前,框架和编译器更好地支持 D1,并且 D2 添加了一些便利功能,使该语言更易于处理和使用。
更新(2009 年 6 月):
我最近一直在研究 D,并认为我应该提请注意 DSource ,现在有许多不同的编译器项目,是 Tango 库、各种绑定(bind)、几个 GUI 工具包和几个 IDE 的所在地。有些项目在起步阶段就被放弃了,但我相信今天有不少项目正在发展壮大,并且取得了良好的进展。在这个阶段,看起来 D 的成功将取决于开源运动,而不是其祖先。
更新(2012 年 2 月)
虽然自上次编辑以来我对 D 的关注不多,但我会注意到 D2 现在已经出版,在一本好书的支持下,The D Programming Language .典型的 Alexandrescu,它暴露了模板系统的很多细节,包括模板约束,这使得 D 成为比 C++ 的当前状态更具表现力和类型安全的工具。
除了阅读这本书,我自 2009 年以来就没有接触过 D 语言或其工具和社区,因此我无法评论它们迄今为止的成熟或成长。我知道一小部分专业程序员希望他们被允许在工作中使用该语言,但我们中的大多数人通常都坚持使用 C++ 和其他流行语言,而在 D 应该处于最佳状态的领域。
关于d - 使用 D 编程语言的经验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/909610/
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我试图用这种形式简单地获取数字 28 integer+space+integer+integer+space+integer我试过这个正则表达式 \\s\\d\\d\\s 但我得到了两个数字11 和
最近一直在学习D语言。我一直对运行时感到困惑。 从我能收集到的关于它的信息中,(这不是很多)我知道它是一种有助于 D 的一些特性的运行时。像垃圾收集一样,它与您自己的程序一起运行。但是既然 D 是编译
想问一下这两个正则表达式有区别吗? \d\d\d 与 \d{3} 我已经在我的本地机器上使用 Java 和 Windows 操作系统对此进行了测试,两者都工作正常并且结果相同。但是,当在 linux
我正在学习 Go,而且我坚持使用 Go 之旅(exercise-stringer.go:https://tour.golang.org/methods/7)。 这是一些代码: type IPAddr
我在Java正则表达式中发现了一段令我困惑的代码: Pattern.compile( "J.*\\d[0-35-9]-\\d\\d-\\d\\d" ); 要编译的字符串是: String string
我在 ruby 代码上偶然发现了这个。我知道\d{4})\/(\d\d)\/(\d\d)\/(.*)/是什么意思,但是\1-\2-\3-\4 是什么意思? 最佳答案 \1-\2-\3-\4 是 b
我一直在努力解决这个问题,这让我很恼火。我了解 D 运行时库。它是什么,它做什么。我也明白你可以在没有它的情况下编译 D 应用程序。就像 XoMB 所做的那样。好吧,XoMB 定义了自己的运行时,但是
我有两个列表列表,子列表代表路径。我想找到所有路径。 List> pathList1 List> pathList2 当然是天真的解决方案: List> result = new ArrayList>
我需要使用 Regex 格式化一个字符串,该字符串包含数字、字母 a-z 和 A-Z,同时还包含破折号和空格。 从用户输入我有02-219 8 53 24 输出应该是022 198 53 24 我正在
目标是达到与this C++ example相同的效果: 避免创建临时文件。我曾尝试将 C++ 示例翻译为 D,但没有成功。我也尝试过不同的方法。 import std.datetime : benc
tl;dr:你好吗perfect forwarding在 D? 该链接有一个很好的解释,但例如,假设我有这个方法: void foo(T)(in int a, out int b, ref int c
有什么方法可以在 D 中使用abstract auto 函数吗? 如果我声明一个类如下: class MyClass { abstract auto foo(); } 我收到以下错误: mai
有没有人为内存中重叠的数组切片实现交集?算法在没有重叠时返回 []。 当 pretty-print (使用重叠缩进)内存中重叠的数组切片时,我想要这个。 最佳答案 如果您确定它们是数组,那么只需取 p
我已经开始学习 D,但我在使用 Andrei Alexandrescu 所著的 The D Programming Language 一书中提供的示例时遇到了一些麻烦。由于 int 和 ulong 类
如何创建一个不可变的类? 我的目标是创建一个实例始终不可变的类。现在我只是用不可变的方法和构造函数创建了一个“可变”类。我将其称为 mData,m 表示可变。然后我创建一个别名 alias immut
不久前我买了《The D Programming Language》。好书,很有教育意义。但是,我在尝试编译书中列出的语言功能时遇到了麻烦:扩展函数。 在这本书中,Andrei 写了任何可以像这样调用
我在 D http://www.digitalmars.com/d/2.0/lazy-evaluation.html 中找到了函数参数的惰性求值示例 我想知道如何在 D 中实现可能的无限数据结构,就像
这个问题在这里已经有了答案: 12 年前关闭。 Possible Duplicate: Could anyone explain these undefined behaviors (i = i++
当前是否可以跨模块扫描/查询/迭代具有某些属性的所有函数(或类)? 例如: source/packageA/something.d: @sillyWalk(10) void doSomething()
我是一名优秀的程序员,十分优秀!