C++是一门强大的语言,已经得到了广泛的应用。C++开创了面向对象编程(Object Oriented Programming, 简称OOP)的时代。
想当初,抱着一本厚厚的C++书,啃了好几个月,总算把C++的各种概念都看了一遍。时至今日,C++版本号已经从11,14,17升级到20,后面C++ 23 预计很快推出。每个版本,都带来众多的强大特性。
因此,强大、复杂,是C++最鲜明的特点。
但是,国外很多大牛,都对C++持否定态度,最著名的就是Linus Torvalds了,他说:
C++ is a horrible language… C++ leads to really really bad design choices…
翻译成中文:C++是一门可怕的语言… C++的设计哲学是非常差的。
面向对象的思想和工程实践已经持续了30多年,从最初对C++的狂热追捧到日趋理性,人们开始反思:C++带来的好处多,还是副作用更多?
我本人,深入学习过C++,并且领导和参与过多个大型的C++项目。从自己的体会出发,我是强烈不推荐大家学习C++的!
最初,C、C++、Java三足鼎立的时候,绝大多数从事后端系统开发的人员,基本都会首选C++,原因在于:
1)Java性能差,不能手动管理内存,因此首先就被排除了;
2)C++是开箱即用的,C++ 语言本身就自带了各种数据结构和算法,如Vector、List、Map等;
3)C++的第三方Library众多,如大名鼎鼎的Boost,ACE等。
而C语言不是开箱即用的,就连个基本的链表都得自己写。因此,对于新手来讲,肯定一下子就投入到C++的阵营中了。
但是,由于C++过于复杂,真正能深入掌握C++,在产品研发中能正确发挥C++的优势,并规避C++的弊端,这样的C++高手寥寥无几。
最终,大量C++项目都充斥着低质量的代码,

尽管C++是一门强大的编程语言,被广泛应用于各个领域,但许多专家,如Linus Torvalds,对其持否定态度。文章指出C++的复杂性导致低质量代码的产生,维护困难。过度依赖继承和多态增加了代码的不确定性,而封装的重要性被忽视。智能指针引入的内存管理复杂性也是问题之一。作者基于个人经验不推荐学习C++,认为在大型软件工程中,一致性、确定性和易于维护性更为重要。
最低0.47元/天 解锁文章
3万+





