我对未来的愿景D

当Andrei Alexandrescu辞去D编程语言部门副主管的职务时,我被要求在将来担任这一职务。 无需讨论,但我仍会说这顶帽子对我来说太大了。
我仍然在社会中扮演新的角色,并弄清楚我的行为方式和实际含义。 这个过程不是在真空中进行的,因为Walter也与我们同在。

D论坛上,我被要求写一篇关于我的“ D的梦想和下一步”的博客文章,所以这里是结果。 我希望在不久的将来成为D:

内存安全


“但是D是GC语言!”,我听到您的感叹。 是的,但是它也是一种具有非引用类型和指针的系统编程语言,这意味着当今D对于使用内存并不完全安全。 DIP1000是朝正确方向迈出的一步 (大约在Rust上借用系统,如Rust, 请参阅此处 ),但是使用内存应该是安全的,直到程序员通过@拒绝“我知道自己在做什么”为止受信任的块属性或功能。 这意味着默认情况下会切换到@安全

简单可靠的多线程


大多数情况下,我们已经处于正确的位置-使用角色模型消除了通常会出现的许多问题。 它仍然需要完成对共享属性的操作并执行@safe。

将D设为默认编程语言


D在静态反射和代码生成方面的可能性使其成为创建应从几种不同语言和环境(例如Python,Excel,R等)调用的代码的理想选择。 通常,这是通过使用接口定义语言(IDL)指定数据结构和RPC调用,然后使用适当的交换协议将它们转换为受支持的语言来完成的。

在D的情况下,不需要任何操作。 您可以用D编写工业代码,借助库可以自动从其他语言中调用该代码。 除此之外,您还可以轻松地编写出比其他代码快或快的D代码,这将是所有方面的胜利。

无与伦比的反射


与其使用分散的API(__ traits,std.traits,bike)的不同方法,我想拥有一个库,该库通过漂亮的API集中所有反射的需求。 我已经在努力了。

简化与C ++的互操作性


正如我在DConf 2019上的演讲中提到的那样,C ++通过使从C的过渡几乎无缝化而取得了成功。 我希望当前拥有过时代码库的C ++程序员能够轻松地开始用D编写代码。这就是为什么我写了dpp (D中C ++头文件的注释转换器 )的原因,但这还不是全部,并且我们可能需要对语言进行更改,以适应将来的需求。

发展速度


我认为我们需要一个非常快的解释器,以便我们可以拒绝不断的机器代码生成和布局。 在我看来,这应该是运行单元测试块(语言中内置了原始单元测试)以提供快速反馈的标准方法,以便程序员仅出于最大性能和/或最终用户部署而编译其代码。 它还将允许引入REPL

插值字符串


最初,我反对它,但是我想得越多,D就越合乎逻辑。为什么? 字符串混合。 代码生成是D的优势之一, 字符串令牌使您可以从视觉上欣赏实际上只是“字符串”的代码块。 字符串插值将大大简化其使用。 到目前为止, DIP草案正在制定中。

这是我沿着日内瓦湖长途跋涉后发生的事情。 我想知道社区对此有何看法,他们在D中最喜欢的老茧和机会,以及他们认为这将如何帮助或阻碍D的进步。

在这里讨论D论坛

使用www.DeepL.com/Translator进行翻译(如果没有人注意,这不是自动翻译,但与此同时,带有AI元素的翻译也有很大帮助)

PS谁错过了博客上关于移动开发D计划的上一篇文章 。 她涉嫌做广告(提到了Donat),并被驱逐出了D中心。

Source: https://habr.com/ru/post/zh-CN471950/


All Articles