优秀的语言该有哪些特性?不同的人有不同的见解,大师Paul Graham在其著<黑客与画家>中是这样,评价的:
这种语言干净简练,具有最高层次的抽象和互动性,而且很容易装备,可以只用很少的代码就解决常见的问题.
这种语言的句法短到令人生疑.你输入的命令中,没有任何一个字母是多余的,甚至用到Shift键的机会也很少.
这种语言的抽象程度很高,使得你可以快速写出一个程序的原型.然后,等到你开始优化的时候,它还可以提供一个真正出色的性能分析器,告诉你应该重点关注什么地方.你能让多重循环快得难以置信,并且在需要的地方还能直接嵌入字节码.
这种语言有大量优秀的范例可供学习,而且非常符合直觉,你只需花几分钟阅读范例就能领会应该如何使用此种语言.
这种语言的内核很小,但很强大.各个函数库高度独立,而且和内核一样经过精心设计,它们都能很好地协同工作.语言的每个部分就象精密照相机的各种零件一样完美契合,不需要为了兼容性问题放弃或者保留某些功能.所有函数库的源码都很容易得到.这种语言能很轻松地与操作系统和用其他语言开发的应用程序对话.
这种语言以层的方式构建.较高的抽象层透明地构建在较低的抽象层之上.如果需要的话,你可以直接使用较低的抽象层.
除了一些绝对必要隐藏的地方,这种语言的所有细节对使用者都是透明的.它提供的抽象能力只是为了方便你的开发,而不是为了强迫你按照它的方式行事.事实上,它鼓励你参与它的设计,给你提供与语言创造者平等的权利.你能够对它的任何部分加以改变,甚至包括它的语法.它尽可能让你自己定义的部分与它本身定义的部分处于同等地位,这种梦幻般的编程语言不仅开放源码,更开放自身的设计.
当然除了上面提到的一些技术方面的因素,还要考虑市场因素,能给开发者带来多少的实惠,看来一门语言要被广为接受并不容易,设计者要有个全面考量的能力,话说作者设计的Arc语言(一种Lisp方言)似乎还没多大的知名度啊!