我就好奇了,到底是谁抱着学好C++啥语言都能轻松的心态去推荐初学者学习的?我怎么就没有感受到有多么可迁移?😅 核心无非是两个:编程范式和生态。 那显然不是所有人一上来做模板就是 policy-driven 的,必然有一个腌入味的过程。那问题是入味了以后如果遇到其他语言,要怎么设计组件?那显然整个设计思路是不太一样的。 还有比如每个语言的内存模型、对象模型、并发模型,以及运行时环境都各有千秋,线程、协程、异步化每家的支持都不一样,同步原语也有很多细微的差别,是直接跑在物理机上还是虚拟机或者解释器上都非常讲究。 更进一步的还有性能观,大家优化目标和技巧基本上像在平行世界一样,底层硬件到高层架构关注点都截然不同,而且又根植在语言的哲学和特性上,很头疼。 关键的问题还有生态,趁手的调试工具和构建体系,以及编译器、库的不同实现,加上那些社区、商业公司驱动的千奇百怪的环境,面对新语言建立不起那种整体图景就非常卡手。 所以那有人宣扬C++学好了啥都不怕甚至捧上鄙视链神坛的,是伪科学;我曾听闻有人向本科生推荐:精通一门语言,最好是C++。精通C++,这个话起码我是从来不敢说的;当然,也有可能是我水平有限,没办法一人击穿整个计算机的体系结构。 总的来说,还是“没有银弹”的思想:种瓜得瓜、种豆得豆,没有什么足以称得王道的路径,只是有些战术层面上的方法比其他方法更高效。 前辈们还是不要祸害新手啦!