擅长:python、mysql、java
<p>这对我来说是个有趣的问题,因为D是我最喜欢的编程语言,Python是我第二喜欢的编程语言。现在,尽管我很喜欢D,但我不得不承认生态系统有些不成熟。在</p>
<p>GtkD已经为相当严肃的项目做好了准备,但是还没有完全达到其他语言的GUI工具包的标准,尤其是在文档方面。我用它做了一个绘图库,它工作得很好,但是有一些小问题。DWT最近刚刚增加了对D2的支持。AFAIK WxD只是一个绑定,而不是一个D-ified包装。QtD仍然有一些其他问题,比如某些特性需要补丁编译器。一般来说,你现在可以在D2中做一个GUI项目,但这并不是一帆风顺的。在</p>
<p>虽然Cython是缓解纯Python缓慢性的一个很好的尝试,但它有几个显著的缺点,使我在需要性能或执行低级工作的能力时更喜欢D:</p>
<ul>
<li><p>如果您希望从中获得类似C的性能,那么它需要显式的类型声明。如果您试图编写泛型代码,您将付出显著的性能损失。使用D,您可以通过使用模板非常容易地编写高效的泛型代码。</p></li>
<li><p>Cython没有/没有正确实现让Python有趣的一些很酷的特性。例如,它最近才得到闭包的支持。我不知道这种情况的改善有多快,也不知道还有什么局限性。</p></li>
<li><p>如果涉及线程,您仍然拥有Python的全局解释器锁。</p></li>
<li><p>必须同时使用Cython和常规CPython解释器,并将Cython代码与常规Python代码分别保存在不同的模块中,这让人有点不知所措。在语言之间的接口上通常会有摩擦,特别是当你关心效率的时候。例如,Numpy类型<a href="http://wiki.cython.org/tutorials/numpy" rel="noreferrer">don't "just work" efficiently in Cython.</a></p></li>
</ul>