Programming languages 什么样的特征使程序员认为语言是美丽的?

Programming languages 什么样的特征使程序员认为语言是美丽的?,programming-languages,language-design,Programming Languages,Language Design,在我看来,有些语言通常被认为比其他语言更美。这似乎适用于所有编程范例。有什么抽象的/范式的跨越特性使得程序员认为语言是美丽的吗? 编辑:如果你认为没有达成共识,那么请毫不犹豫地陈述你自己的观点关于美没有任何普遍的规则。情人眼里出西施——每个人对美都有自己的看法 就我个人而言,我喜欢语言,它允许您编写简洁但不晦涩的代码。它表达了我的想法,没有额外的粗糙或神秘的语法 我认为它需要有点类似于自然语言。原因:人类的大脑似乎是连接在一起的,所以学习自然语言很容易。另请特别参阅。这是一个极端的观点,但最有可

在我看来,有些语言通常被认为比其他语言更美。这似乎适用于所有编程范例。有什么抽象的/范式的跨越特性使得程序员认为语言是美丽的吗?
编辑:如果你认为没有达成共识,那么请毫不犹豫地陈述你自己的观点

关于美没有任何普遍的规则。情人眼里出西施——每个人对美都有自己的看法


就我个人而言,我喜欢语言,它允许您编写简洁但不晦涩的代码。它表达了我的想法,没有额外的粗糙或神秘的语法

我认为它需要有点类似于自然语言。原因:人类的大脑似乎是连接在一起的,所以学习自然语言很容易。另请特别参阅。这是一个极端的观点,但最有可能是一些事实。

< P>我认为美丽是<强>概念极简< <强>或更确切地说是一组正交的少数通用语言原语…

而不是许多不太强大的特征来描述几乎相同的事物,而永久地必须考虑特殊情况。

例如,Haskell基本上只是一个非常小的类型系统(仅值、泛型、构造函数、类型类)的一些语法,它以一种可能没有其他公共语言能够实现的强大方式涵盖了所有内容。 值的概念涵盖了一切——数据、函数、对象(作为值的集合)


另一边的经典VB甚至有五种以上的内置循环方式。值和函数、普通数据和对象之间存在差异。。。而且几乎没有任何编写通用代码的可能性。

软件中有一种普遍趋势,即语言和语言功能更具声明性。目前大多数语言都是关于如何,而不是什么。for循环确切地指示了您希望代码的行为方式,但它并不指示您希望发生什么

对我来说,一种美丽的语言是一种允许我声明性的语言,同时又不剥夺优化的能力。你在代码中的表现力越强越好。

以下是我的列表:

  • 在保持可读性的同时尽可能简洁
  • 有尽可能少的特殊情况,这是一个你“只需要知道”的奇怪规则
  • 使正确、安全的方式成为最明显、最不冗长、最具可读性的方式
  • 使在非常通用的级别上解决问题变得容易。这在一定程度上与(2)密切相关。如果你必须考虑各地的特殊情况,那么你的“通用”解决方案不是非常通用的。
  • 使创建足够高效的抽象成为可能,可以在任何地方使用,而不仅仅是在不需要快速的代码中
  • 尽量避免将内置类型视为“特殊”。如果内置类型可以做到这一点,那么用户定义的类型应该能够做到这一点

  • 关于没有人认为COBOL或VB或Applescript或Inform很漂亮。恰恰相反,他们通常被憎恨——出于可以理解的原因。这不是关于使用实际的词语,而是关于概念。你会考虑SQL、Ruby、Python坏例子吗?嗯,如果N个特征可以被统一为一个(例如函数是一个值,方法只是函数,所有的东西都是一个对象,等等),那就好了。但是“lispy”的方式,也就是“给我一些原语和一个宏系统,我自己来构建其余的”是有风险的。要么你以螺栓收场,要么你把所有的时间都花在了一些如果你开始使用自己的语言,一开始就不会有的事情上。