我不了解足够的Lisp语言以确定它是好还是坏。似乎每个使用Lisp的人都喜欢它,然而现在最流行的语言都是由C衍生而来。
Lisp有什么值得称道的特点,为什么它没有被更广泛地使用呢?除了无休止的括号之外,Lisp还有什么明显的缺点吗?
我不了解足够的Lisp语言以确定它是好还是坏。似乎每个使用Lisp的人都喜欢它,然而现在最流行的语言都是由C衍生而来。
Lisp有什么值得称道的特点,为什么它没有被更广泛地使用呢?除了无休止的括号之外,Lisp还有什么明显的缺点吗?
Lisp之所以好,是因为它有一个非常简洁、简单、规律的语法。
Lisp之所以不好,是因为它有一个非常简洁、简单、规律的语法。
Lisp是编程语言中的“Chuck Norris”。
其他编程语言都会与Lisp进行比较。
了解Lisp展示了开发者的启蒙之路。
我听说过3个缺点(以及它们的反驳):
动态类型。
有一个关于静态类型语言的争论,围绕着给编译器足够的信息来捕获某些类别的错误,使得它们不会在运行时发生。但你仍然需要测试。
这篇文章提倡使用动态类型和更多的测试:强类型与强测试。
难以掌握。
实际上有两个方面:学习和工具。
要真正理解Lisp需要一些努力,但这是值得的,因为学习Lisp真的会让你成为其他语言更好的程序员。例如,一旦你真正理解闭包,你就会理解Java的内部类。一旦你理解了一等函数,你就会在使用没有一等函数的语言时感到沮丧。
我已经阅读了《小Schemer》和正在阅读《实用Common Lisp》,它们都非常优秀。
接下来是工具。我使用的是Mac,所以我选择了Aquamacs Emacs(使Emacs对于新手更加易用)和Steel Bank Common Lisp(SBCL)。
缺乏库。
我现在还不能确定,但我怀疑不是这样的。对于构建网站,看起来Hunchentoot和Elephant提供了一套很好的工具。但实际上,我并没有看到Lisper们抱怨缺少库(也许是因为Lisp太强大了,它们根本不需要?)。
以下是一些有用的链接:
Peter Seibel的实用Common Lisp第一章介绍了他喜欢Lisp的原因。最重要的是“可编程编程语言”的概念,即可以根据您的领域或喜好样式自定义语言。