我觉得c语言最核心的优势就是,他对冯诺依曼机的抽象恰到好处,刚好够用
除此之外几乎没做任何东西
因此如果你是一个思路极其清楚的开发者
c语言就是最好的工具,因为你可以完全把握你的思路
不需要被别人提供的平台所绑架
即使有限制那也是冯诺依曼体系的固有问题,也不需要纠结
linus写git的时候就是这种状态
至于系统开发的支持,只是上一点的延伸
因为系统开发是一个天然不会被其他人的平台绑架的场合
所以,他不适合的场景也与此有关
一种情况是,你的开发者不够强大,无法独立完全建构一个体系
必须要接受一种标准架构的指导,这就是java做的事
还有一种情况是,你的任务本身就是被平台环境深度绑架的
比如ios,android,gui,前端等等领域
这种情况下你妄想不受别人思路绑架就是不现实的,乖乖的被平台支配就得了
再有一种情况是深度学习调参
此时,软件开发的部分其实并不是工作的核心内容(调参洗数据才是)
这种时候,开发工具自然越简单越好,并不需要太多关注软件方面的问题
这也算是一种平台绑架,但又略有区别
那么,c语言到底什么情况下才会被取代
在我看来,必然是硬件架构发生了决定性的变化
让c语言的表现力不足了
而近年来最大的变化,就是多核的流行
而问题是对于多核的支持,目前仍然是一个没有解决的问题
c语言固然不行,但是真正解决这个问题的语言也还没出现
虽然有了进程、线程、协成这样的抽象,但这些都只能解决一部分问题
还没有出现像调用堆栈,或者一切皆文件这种级别成功的抽象
作为对比,在网络出现以后,c语言用socket把网络也纳入到了一切皆文件的体系里
几乎可以说彻底解决了网络的抽象问题
而多核却没出现过这种级别的抽象
【 在 sqsl (12345) 的大作中提到: 】
: 【 以下文字转载自 Circuit 讨论区 】
: 发信人: sqsl (12345), 信区: Circuit
: 标 题: C语言的优势是啥?
: ...................
--
修改:sixue1999 FROM 43.243.12.*
FROM 43.243.12.*