加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

Python、Java、C#、Perl 创始人聚首畅谈编程语言的未来

发布时间:2019-04-29 16:54:45 所属栏目:评测 来源:Bhagyashree R
导读:副标题#e# 4 月初,在 Puget Sound Programming Python(简称 PuPPy)举办的第一届年度慈善活动中,四位传奇的编程语言创始人聚集在一起就编程语言设计的过去和未来展开了热烈的讨论。此次活动旨在为面向所有人的计算机科学教育(Computer Science For All

Anders Hejlsberg 将类型系统视为一种工具。开发人员喜欢他们的 IDE,他们习惯于使用语句的自动补齐、重构和代码导航等。这些功能是通过代码的语义知识而实现的,而这种语义知识正是由类型系统的编译器提供的。Hejlsberg 认为,添加类型可以大大提高开发人员的生产力,虽然这与我们的直觉相反。

他补充说:“我们以为动态语言更容易掌握,因为你摆脱了类型的束缚。然而,事实证明,如果你以非侵入的方式添加类型,同时努力做好类型推断等,那么就可以提高效率。”

谈到 Perl 中的类型系统时,Wall 表示 Perl 5 和 Perl 6 有不同类型的系统。在 Perl 5 中,所有类型都会被视为字符串,即便是数字或浮点类型。该团队希望在重新设计 Perl 6 的时候依然保留这个功能,然而他们意识到:“如果新用户对可互换性感到困惑,那还好;但如果连计算机都感到困惑,那就不妙了。”

于是,在 Perl 6 中,Wall 和他的团队希望将其打造成更好的面向对象以及更好的函数式编程语言。为了实现这一目标,他们需要一个非常合理的类型系统,并在底层建立一个非常合理的元对象模型。此外,你还需要非常重视“一切都是对象,一切都是闭环”的口号。

影响编程语言维护性的因素有哪些?

Guido van Rossum 认为,如果想加强编程语言的维护性,那么就需要在灵活性和规范性之间取得恰当的平衡,这一点非常重要。虽然对于小型程序来说,动态类型更好用,但大型程序则需要采用严格的方法。而且,最好能够通过编程语言本身实现规则,不要给用户留下太多自由发挥的空间。出于这个原因,Guido 打算在 Python 中添加类似 TypeScript 的技术。他补充说:

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

除了类型系统以外,事实证明重构引擎也非常有用。有了重构引擎后,就可以一次执行数百万行代码的大规模重构了。通常,人们不会重命名方法,因为你很难认真看完一段代码,然后正确地给每一个变量重命名。如果你有一个重构引擎,那么只需点下几个按钮,输入新名称,然后 30 秒内就可以完成重构。

Anders Hejlsberg 表示,TypeScript 项目源自一些庞大的 JavaScript 代码库。随着这些代码库变得越来越大,维护工作变得异常艰难。后来基本上这些代码库变成了“只写的代码”。他补充说,因此我们需要理解代码的语义,而这个过程也降低了重构工作的难度。他表示:“这种语义的理解需要一个类型系统,而且在你开始添加类型系统时,你还可以添加代码的文档。”Wall 也支持“良好的词法作用域有助于重构”的观点。

编程语言设计的未来

在谈论到编程语言设计的未来时,James Gosling 分享了编程中一个未充分探索的领域——编写使用 GPU 的代码。他强调说,目前我们的编程语言都无法直接利用 GPU,我们应该加大这个领域的发展。

Anders Hejlsberg 表示,编程语言不会像硬件或所有其他技术那样快速地变化。就发展速度而论,编程语言更像是数学和人脑。他说:“我们仍然在使用 50 年前发明的语言进行编程,所有的函数式编程原理都是 50 多年前的研究成果。”

但是,他也相信,如今的编程语言趋于多范式,不会严格区分面向对象编程或函数式编程等类别。

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

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

会谈视频

完整的近三个小时的会谈视频如下:

【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读