为什么 Lisp 如此先进,却永远成为不了编程主流语言?

知乎热榜5个月前发布 NIUC!
602 0 0

圆角骑士魔理沙的回答

说到底Lisp的核心思想是什么?

无非就是‘我有宏,所以想要什么feature可以自己用宏实现,所以我是最好的语言,所以除了我以外的语言的程序员要立刻辞职,改行做原神代练’。

评价为玩原神玩的。

但是Lisp没有原神。

要做出原神,我们需要写很多的框架,很多的库,很多的语言feature。

比如我要写一个网络库,而为了下载原神素材的时候还能响应其他事件,我们要Async IO,依赖库A。

如果另一个文件操作库用Async IO库B呢?那原神就只能有网络下载或者有文件读写,有一个奇怪的二选一。

同理你不能pytorch写半个网络tensorflow写半个网络,或者Qt写半个GUI,剩下半个用react,或者Unity整半个游戏Unreal整剩下半个。。。

或者,如果你是个公务员,你也知道所谓的数据互联(不就是把数据库的两个表变成一个吗?)背后有多少麻烦事。当然,如果你再聪明一点,就知道你的一辈子其实就是在人肉数据互联。还不如在家玩一辈子原神。

库跟数据库表都有这么多不兼容性,何况编程语言特性?

到最后,无非是自底向下的,一组互相兼容的库/宏在竞争中胜出,又或者是自顶向上的,有一个BDFL或者委员会,制定一组互相兼容的库/宏。

然后不兼容这些东东的西西就因为马太效应没人用。

但这不就是编程语言吗?

你弄一个标准委员会,feature们成立一个经济互助委员会,不在里面的feature不被采纳没人用,别人直接打开github修改rustc源代码,不也一样是加feature?

编程语言难的不是一个特性怎么怎么实现,而是你有多个特性的时候,各个特性之间会如何互相影响。用宏来实现feature,只是在‘同谐’的命途上给自己使绊子罢了。

© 版权声明

相关文章

暂无评论

暂无评论...