(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=39004526
根据给定的材料,以下是一些显着的差异和联系:
1. 针对简单性是优秀编程语言的标志这一理念,作者讨论了 Go、D、Assembler、C++、Rust 和 Clojure 等各种语言。 虽然 Go 看起来很简单,但 D 和 Assembler 及其嵌套函数却显示出语法的复杂性。 为了区分简单性,作者建议回顾过去的语法并考虑诸如易于学习、一致性、可理解性、紧凑性、正交性、可预测性、极简主义、模块化、直观使用和高效执行等因素。 这些品质对于生产经得起时间考验的优雅设计至关重要。 此外,简单性不仅仅是一种观点或主观因素,而且是编程语言的重要组成部分。 给出的一个反例是,Pascal 只花了八个月的时间就开发出来,并在发布后三个月内就被广泛采用。 相反,C#(发音为c Sharp)花了十年的时间,尽管有微软的支持,但仍然没有被广泛接受。 同样,C++ 花了大约五年的时间才创建,但它已经持续发展了近四十年。 因此,选择编程语言时需要简单性。
2. 具体到 Go,作者指出,虽然它看起来很简单,但其简单性相对肤浅。 它的基本原理源于 Newsqueak,这是一种作为 SNOBOL4 庞大架构的替代品而创建的语言,旨在解决 Prolog 和 Lisp 的局限性。 尽管 Newsqueak 未能赢得用户,但它通知了 Go,Go 的开发团队由具有实际工程专业知识的成员组成。 作者认为,判断一种编程语言简单性的试金石在于其编译速度,Oberon、Go、D等语言的特点是编译速度快。 然而,仅靠这个测试是不够的,更重要的是复杂表达的易于理解性和理解他人所写内容的能力。
3. 作者提出了对 Rust 的担忧,并强调真正的挑战不在于创建简洁的代码,而在于将其与适当的基础设施配对。 他们建议,如果 Rust 有一个符合 OCaml 等传统语言的内置解释器,那么它的使用起来可能会变得更加舒适。 另外,作者推荐
[00:07:12] ... I remember you had a choice between two programming language and on one side they taught Fortran and Fortran is the language of science, or it was the language of scientists.
[00:07:40] And then there was this new class that was started by this Professor Niklaus Wirth about Pascal. And it was, I think the first or second year it was taught. There were a lot of people in the Fortran class and not that many people in the Pascal class. So I said, oh, I'll go to the Pascal class.
[00:07:59] And that's how I met Professor Wirth. And that was great. That was my favorite class from that moment because he's such a, such an enlightened person and a clear thinker that it was a great, great experience for me.
[1] https://ethz.ch/en/news-and-events/eth-news/news/2022/05/we-...
reply