回想入门OI的时候,老师总和我们强调:C++是最方便、最好用的语言。
无可厚非,C++拥有诸如“algorithm”、“set”、“map”、“vector”等众多的算法库。直接使用现成的模板,大大提高了赛场上的解题速度,并且降低了由于各种原因敲错模板而导致 WA 0 的惨剧。
但是,在IT界,C++真的是最好用的语言吗?
我们先来了解一位IT界大牛。
他就是Linus Benedict Torvalds。由于他凭借一己之力和自己简陋的设备,创造出了当今世界上最受欢迎的操作系统之一——Linux内核,而被称为Linux之父。
不仅如此,Linus还创造了Git(分布式版本控制系统)。他先后共两次推动了技术的革命。
那么,这么一位技术大牛是怎么评价C++的呢?
C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it.——Linus
C++是一种可怕的语言。由于有很多不合格的程序员在使用它,这使得他变得更加可怕,以至于它更容易产生完全的且彻底的废话。
Linus的观点很鲜明。他犀利地指出了C++是一种可怕的语言。
其实,这是由于C++的“两面讨好”所引起的。C++即希望迎合程序开发时面向对象的编程范式,又希望能与C语言兼容,实现对底层的操作。
但是,由于C语言是一种面向过程的语言,其中的全局变量、指针等一大堆复杂的玩意儿直接将C++面向对象的封装性打破了。如果对内存进行操作,却又没有清晰的思路时,很容易写出 evil 的代码。
那么,有没有什么方法可以解决C++所出现的问题呢?
最重要的因素就是程序员个人。我们注意到了Linus的评价中的“substandard”一词,这说明C++是一把双刃剑。在不合格的程序员手中,C++是BUG制造机。而在优秀的程序员手中,C++则是第一生产力。
正确的使用C++,最重要的是知道我是谁?我在哪?我在干什么?。在这哲学三问之下,我相信任何人都用好C++。
最后的最后,只有受欢迎的语言才会有人批评,你说对不对呢?
网友评论