Scheme还是Lisp?

28 views
Skip to first unread message

Luo Yong

unread,
Dec 16, 2019, 11:37:31 PM12/16/19
to tj...@googlegroups.com
Scheme是简化版的Common Lisp,保留了Common Lisp中的常用的功能而且对其余部分进行了大规模的裁剪,例如class和package部分,而且还进行了很多很实用的扩充,比如类型转换部分,而且还有埃克森、Google等大公司的资金支持。

但是目前Scheme的使用率明显和名声不大匹配,现在Lisp系的编程语言里还是以Common Lisp为主。

Common Lisp的缺点是明显的,首先是规模十分庞大,为了控制规模对现有的API进行了大量的修补,造成现有API越来越复杂,再有就是语法陈旧,例如难以避免要使用大量的funcall,越来越多的特殊符号造成和perl一样不知所云等等。

但是从现实出发Common Lisp仍是首选,首先是因为Common Lisp进行过大量的扩充,很多部分经过了实践的检验,只需要记住常用逻辑,并不是很难掌握,像scheme中裁剪掉的class和package部分尽可以不用。而且Common Lisp有很多软件实现,例如注重性能的SBCL,中规中矩的CLISP和JVM上的ABCL,都拥有同样的接口,同样也都拥有大量的扩展和资源,对遗留代码的兼容性也不错,可以根据自己的情况选择作为开发平台。

反观scheme,GNU的Guile和商业巨头的Racket各搞一套,商业巨头只想将其作为嵌入式脚本(类似暴雪支持Lua),GNU想将其作为所有GNU项目的承载平台(例如Guix),短时间内不会和解。

现在的现状就是,Common Lisp陈旧而且庞大,但是资源丰富,作为平台可以满足大部分开发所需,但是随着大量的修补,代码有可能陷入不知所云难以理解的状况,Scheme初上手时一切都很好,但是目前几个community互相之间缺乏共同价值观,要做好未来进入未知领域的心理准备,从二者之间选择要慎重。
Reply all
Reply to author
Forward
0 new messages