学C++越学越有味是怎么回事

举例问题#

Common Lisp 没有逼你一定要 CLOS,因为考虑兼容 Lisp Machine 之类的历史原因结合得并不是很紧密,很多实现就是做成“没有 OOP 的 Lisp”以后再用 Lisp 实现 CLOS。实际上哪怕是直接从 OOP 自举的 SICL,也不影响用户自己另外实现 OOP 系统。

比如 200 行左右就能实现的 Corbits (CMU AI REPO)

显然更显著的问题是靠动态分发实现 OOP 的性能损失。但这个和问题没关系,因为 GObject 也有这问题。而且和其他所有性能问题一样都可以“靠编译器技术的进步”解决。

这里 C++ 的问题实际是,大约 2015 以后委员会就有了“C++不再是C的超集”的共识。只要标准继续更新,就会离兼容 C 越来越远,每次新标准出来都有更加魔幻的 C++ Hello World。反而一些老资历的程序员都没有意识到这点。

而不是像 ObjC,那才是“真的一直都兼容 C”。

3 个赞