Python(Guido van Rossum)、Java(James Gosling)、C#(Anders Hejlsberg)、Perl (Larry Wall)的创始人一起开了一个会,记录一些中间的关键性结论。

一些关键原则

1,在编程语言设计中亦是如此,我们需要做到首尾呼应。【一方面,在设计编程语言的工作中,最开始你要做出一系列的选择,为你的故事发展埋下伏笔。另一方面,设计编程语言的艺术在于,你需要不断回顾你的故事,并展开奇思妙想,以你始料未及的方式推进故事发展。】

2,

2.1, Java的出现并不像个人热爱的项目那样。其实我们只是想试着建立一个原型。【基本上该编程语言就是为了解决身居数据中心之外的人的问题,这些人常常为网络、安全性和可靠性等问题困扰。

2.2,Perl创建背后的一项基本原则是通过API提供一切功能。这种编程语言的目标不仅是建立一种优秀的文本处理语言,而且也想成为一种胶水语言。

3,他遵循了他所接触过的所有编程语言的共同原则,即“做某件事情的方法只有一种。”【这就是为什么开发人员总是会创建一种名为“简单的复杂”的东西,也就是说拿到一些复杂的东西后,通过简单的打包来掩盖复杂性。】

4,通常,人们会向你提出他们的建议,但你无法真正改变编程语言的本质。虽然你无法真正改变语言的基本性质,但是你可以进行扩展。基本上你有两个选择:要么坚持语言的本质,要么开发一个新的编程语言。

类型系统

1,一直以来他都很注重性能,而提高性能的一个因素是类型系统。在构建优化编译器和提前检查正确性等方面,类型系统非常实用。拥有类型系统也有助于为小型设备构建系统的情况。他说:“为了能在有限的空间内工作,你必须了解设备提供的每一种可能性,而且你知道得越早,就越有可能出色地完成工作。

2,将类型系统视为一种工具。开发人员喜欢他们的IDE,他们习惯于使用语句的自动补齐、重构和代码导航等。这些功能是通过代码的语义知识而实现的,而这种语义知识正是由类型系统的编译器提供的。Hejlsberg认为,添加类型可以大大提高开发人员的生产力,虽然这与我们的直觉相反。【我们以为动态语言更容易掌握,因为你摆脱了类型的束缚。然而,事实证明,如果你以非侵入的方式添加类型,同时努力做好类型推断等,那么就可以提高效率。】

影响语言的维护性

1,除了类型系统以外,事实证明重构引擎也非常有用。有了重构引擎后,就可以一次执行数百万行代码的大规模重构了。

2,“实际上,TypeScript非常实用,因此我们也想在Python中添加类似的概念。当然我们的添加方式会略有不同,因为我们的语言环境不同。”

3,这种语义的理解需要一个类型系统,而且在你开始添加类型系统时,你还可以添加代码的文档。【良好的词法作用域有助于重构】

编程语言的未来:

1,我们仍然在使用50年前发明的语言进行编程,所有的函数式编程原理都是50多年前的研究成果。

2,语言正在走向多范式。我觉得我们不应该再说我只喜欢面向对象的编程、命令式编程或函数式编程语言。

3,目前我们的编程语言都无法直接利用GPU,我们应该加大这个领域的发展。

4,如今,更重要的是我们需要了解最新的研究、新思维和新范式,并优雅地将这些新思想融入到我们的编程风格中。