C++适合写编译器却不适合写操作系统?

C++

1个回答

写回答

yyaiw

2025-09-29 20:25

+ 关注

C++
C++

这个问题实际上是在探讨为什么C++相较于C语言会显得不受待见。虽然很多人引用了Linus的话来回答这个问题,但这里我想从另一个角度切入。首先,我们可以先思考一个问题:一门编程语言,是特性越多越好,还是越少越好?对于这个问题,初学者和长期使用者可能会给出截然不同的答案,而这恰恰是问题的核心所在。这背后其实涉及到了语言的可互通性问题。对于软件开发者来说,几乎不可能完全独立工作,至少有三分之一的时间需要阅读和理解他人的代码。而要读懂这些代码的前提是你必须熟悉这门语言。不过,熟悉这个词可能过于宽泛,我们可以将其具体化为以下几个方面:1. 你需要掌握这门语言的大部分语法,这样才能准确理解单独一句代码的意义。2. 你需要了解这门语言中常见的设计模式,从而理清程序的整体调用逻辑。3. 你需要对这门语言所依赖的第三方库有所了解,这样才能更好地理解代码的功能实现。带着这些标准,我们再回过头来看C++。你会发现,与C语言相比,C++的特性简直多得令人望而却步。我并不是说这些特性不好——事实上,它们非常强大。借助这些特性,你可以用一句话完成原本需要两到四句才能实现的功能。C++还提供了丰富的功能库,使得很多复杂任务无需二次开发即可完成;它也支持多种优秀的设计模式,让你在工作中可以忽略掉许多细节。然而,问题在于,没有人能够完全掌握C++的所有特性。回想我1994年开始学习C++的时候,当时的我或许还能自信地说我懂C++,但如今,我甚至都不敢再说这句话了。这不是谦虚,而是事实。现代C++代码对我来说已经变得难以理解了。年轻一代可能会嘲笑像我这样的老古董,认为那些代码很简单,只需要掌握1、2、3……直到150个知识点就够了。但当你问他们某个具体的特性时,他们可能会告诉你:,这是个我不太熟悉的‘新特性’,它是第151个知识点。听起来似乎很合理,但这真的简单吗?相比之下,在C的世界里,这种现象几乎不存在。一个80年代的C程序员,即使放到今天,只需要几天时间适应,就能重新写出符合现代规范的C代码。而C++程序员的情况则完全不同。当一门语言的知识体系以如此快的速度扩展时,我们不应该沾沾自喜于我能跟上它的步伐,或者干脆放弃努力,觉得反正我也用不上,无所谓。相反,我们应该感到警惕——这门语言可能已经接近某种崩溃的边缘。事实上,根据我的观察,几乎所有实际工作的C++程序员都会给自己划定一个约定俗成的使用边界。他们会默契地避免触碰边界之外的内容。只有那些初学者或缺乏经验的人,才会贸然引入超出边界的特性。相信我,无论在哪个团队中,这类人都不会受欢迎。总结来说,C++的强大毋庸置疑,但它过于庞大的特性集合和快速演变的趋势,反而成为了阻碍其广泛接受的一个重要因素。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号