圆角骑士魔理沙的回答
说到底Lisp的核心思想是什么?
无非就是‘我有宏,所以想要什么feature可以自己用宏实现,所以我是最好的语言,所以除了我以外的语言的程序员要立刻辞职,改行做原神代练’。
评价为玩原神玩的。
但是Lisp没有原神。
要做出原神,我们需要写很多的框架,很多的库,很多的语言feature。
比如我要写一个网络库,而为了下载原神素材的时候还能响应其他事件,我们要Async IO,依赖库A。
如果另一个文件操作库用Async IO库B呢?那原神就只能有网络下载或者有文件读写,有一个奇怪的二选一。
同理你不能pytorch写半个网络tensorflow写半个网络,或者Qt写半个GUI,剩下半个用react,或者Unity整半个游戏Unreal整剩下半个。。。
或者,如果你是个公务员,你也知道所谓的数据互联(不就是把数据库的两个表变成一个吗?)背后有多少麻烦事。当然,如果你再聪明一点,就知道你的一辈子其实就是在人肉数据互联。还不如在家玩一辈子原神。
库跟数据库表都有这么多不兼容性,何况编程语言特性?
到最后,无非是自底向下的,一组互相兼容的库/宏在竞争中胜出,又或者是自顶向上的,有一个BDFL或者委员会,制定一组互相兼容的库/宏。
然后不兼容这些东东的西西就因为马太效应没人用。
但这不就是编程语言吗?
你弄一个标准委员会,feature们成立一个经济互助委员会,不在里面的feature不被采纳没人用,别人直接打开github修改rustc源代码,不也一样是加feature?
编程语言难的不是一个特性怎么怎么实现,而是你有多个特性的时候,各个特性之间会如何互相影响。用宏来实现feature,只是在‘同谐’的命途上给自己使绊子罢了。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...