1.社区,资料和用户少,主流语言遇到一个问题,网上搜索一下,就能找到答案,因为用的人多,别人已经遇到过了。但是Lisp很难找到现成的答案,你得自己去琢磨,入门更难了。Java,Python,C/C++,.Net等资料铺天盖地,有问题也可以去问问。Lisp不一样。
2.语言看起来简单,但学习到干活程度很难的,往往需要很强的数学功底才行。这就和其他主流语言不同了,学几天就可以慢慢开始干活了,逐渐深入。还没有见过《Lisp项目实战》这样的书吧。一般到高阶函数就卡住了,更何况闭包,continuation和宏了。
3.因为语法过于简洁,造成了其他方言太多,各个编译器又有自己的特色,同样的语法写出来的代码,语义各异,互不兼容。也就是说,在代码层面上的可移植性不佳。子类版本太多。
4.与主流语言的计算模型不同。主流语言的计算模型是图灵机,而Lisp是λ演算,初学者经常不自觉的去进行类比,结果越搞越乱。当然不论主流语言还是Lisp,编译器都会编译成处理器的指令序列,但这是编译器的事情,语言的使用者不需要关心。