C++ 是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。但是为什么有些人骂 C++,如 Linux 之父对 C++ 进行了炮轰,说它是糟糕程序员的垃圾语言呢?
Linus是在运行着MINIX的电脑上,创造了Linux,但由于对方作者(及拥趸)的某些批评,所以Linux很不爽。1992年新历年刚过不久,Linus 掀开了他骂人骂物的好戏大幕……
1992:“你的工作是教授和研究员:这是 Minix 脑残的很好的借口”、“Linux 在几乎所有领域都打的 MINIX 掉裤子。”
在我看来,MINIX几乎是Linus半生的心结……后面还会提到MINIX。
1995年:“无数只猴子在 GNU Emacs 项目上打字,这也注定他们永远不会成为一个好项目。”。
7年以后仍然意难平,于是,2002年:“真正的 Emacs 是魔鬼工具。”
2007年 :“我觉得 GNOME 有局限的主要原因就是它自身所拥有的局限性。” (非常有艺术水准的骂法……脑袋不灵光的人可能读不懂这话的狠处……)。
后来,GNOME升级为3,变化极大,这下Linus的愤怒度到达顶点!2011年:“我还没遇到谁会喜欢邪恶混乱的GNOME-3。”;2012年:“整个GNOME-3的用户体验几乎完全是失败的……无可容忍的凌乱……无法接受的……”
好像Linus最终还是回到GNOME温柔乡了……
身为Linux的两大桌面系统,GNOME被Linux发明人骂得这么凶,另一位主力选手KDE是暗喜?是反省?是有则改之无则加勉?别想太多了。在抛弃 GNOME之前,Linus用的就是KDE,在抛弃GNOME之后,Linus 一样没拿正眼看KDE。
KDE不值得Linus骂。
2008年:“在某些方面 OS X 实际上是不如 Windows 进行编程。他们的文件系统就是垃圾。”这里的“他们的文件系统”就是HFS+。原话记得好像是“complete and utter crap”……“彻头彻尾的废话???”
2014年:“HFS+真正恐怖的不是它不是一个好的文件系统,而是人们觉得他们有好的想法并积极设计一个差劲的文件系统。”,还有“坦率地说,HFS+ 可能是世界上最差的文件系统。”
我就是信了Linus的话,听完就想学习如何写文件系统,反正只要苹果公司还在用HFS+,那我写的文件系统就不会是最差的。
1998年:“本质上我看到的只是 Java 引擎在走下坡路,因为它别无去处。”
这个有视频,大家可以找找……Linus认为Java“注定要失败”,但显然Java很快就显示了它的生命力……于是,Linus改为不屑:
2011年:“我不关心Java。多么可怕的语言!”
迪丽热巴!我根本就不关心你!除非我想批评娜扎的长相……(Linus后来在骂C++时,把Java这杆旗树得老高……)
2001年:“简而言之:向毒品说不,向Hurd说不。” 亲爱的 Hurd 开发团队,不管谁邀请,都不要入境China。我们对毒品的管控力度,不是你们小小开发团队能理解的。
2004年:“我认为Hurd已经死了。它有一个'大版本',人们忘记了的细节,并且忘记承认他们出的问题。”
Linus 因为 Linux是宏内核,但如一开始所提,Linus和使用微内核的Minix很凶地吵过数回……他似乎因此而讨厌起那些强调自己是微内核的东东:
2006年:“Hurd不是一个真正的微内核,它是如此的可憎,以至于所有其他的微内核看上去都很糟糕。” (解读重点在‘以至于……’这半句)
终于,到了Linus骂C++的时刻!!
一门技术被Linus骂,显然不是羞愧,多年来一直令C++(甚至C++程序员)羞愧难当的是,1983年就正式发明并且以王者身份流行了十几年,这么晚才被骂……要知道,C++出生后不久,就曾经被当年相当多的C语言老人围攻过……Linus,你对C++太心善了……
2004年:“事实是,C++编译器不值得信任。”、“整个C++异常处理从根本上是错误的。”
2007年:“尽管 C++ 可以用于原型或简单的 GUI 编程,但它不能使事情更简单。C 语言虽然并不精益于系统编程语言,但它积极鼓励你使用简单和直接的结构。”
按我的思维,我觉得就没有任何语言可以使“事情更简单……”。另外,对了,Linus在夸C语言时,其实也很谦虚:“C语言虽然并不精益于系统编程语言……”。事实上,能玩好C++的最多是牛人,但能玩好C语言写出复杂系统的,必是神人。爱骂人的Linus就是神人。神的话,特别是粗话,听听就好。
还是2007年那回:“C++是一个可怕的语言。”
呀,相比他骂Java“多么可怕的语言!”——“C++是一门可怕的语言”……这种平淡的陈述很让人失落。
类似的,Mach(也是一个微内核),所以,在劫难逃喽:
2001年:“我对 Mach 的个人评价不是很高。坦率地说,它是一堆垃圾。它包含了所有你能制造出来的设计错误,甚至有些错误是设法弥补自身错误而造成的。”
2006年:“我认为开发 Mach 的人是不称职的白痴。” (不称职的白痴……唉,当白痴都这么有技术难度吗?)
啊,Solaris……虽然没真死,但从SUN手上卖给Oracle后,被终止项目,也就相当于死了。在这当中,有你Linus的恶意诅咒!
2004年:“Solaris/x86 是个笑话”
2005年:“仍然有很多人喜欢 Solaris,但我与他们积极竞争,所以我希望他们死。”
2004年年底,Linus 开口骂Solaris/x86时,正是听到风声,说Solaris准备进入x86并开源,这就等于将成为Linux的竞争对手……2005年SUN公司真的这么做了,所以Linus骂起来也不需要理由:“但我与他们积极竞争,所以我希望他们死……”还好啦,这里的“他们”,应该不是指喜欢Solaris的“很多人”。
是的,Linus 似乎没有骂过C语言……毕竟他曾经有过那么一段漫长的日子,就天天指着这门语言写Linux……但是,语言不好骂,就骂它的编译器!反正,前面骂“C++的编译器不值得信任”,本质上也是在骂GCC。
2006年:“GCC是个废话!”
2014年:“老天爷,那个 GCC 4.9.0 编译器不应该被允许从幼儿园毕业。”
这个因为大厂商瞎竞争而过度设计以至极度膨胀的东西,当年我在写解析器时也大骂过……但显然,大家关心的是Linus如何骂。
2014年:“XML 可能是设计的最糟糕的格式,作为一种文件格式,它真的没有扩展能力,它通常是一个完全的灾难。”、“XML 是胡扯。解析 XML 对人类来说是讨厌的,甚至对计算机来说也是一场灾难。没有理由让这个可怕垃圾存在。”
惊闻Linus去年还是前年开始,脾气变得很好……一大长串队伍的技术,怕是要莫明失落了。
补充一下看法:直白一点讲,会被Linus骂的技术或产品,至少说明这个技术宅(至少在镜头前,Linus其实很内向甚至非常羞怯的一个人)有在关注、甚至是在尝试使用、甚至就是长期使用它。而没有经过Linus“认(炮)证(轰)”的技术或产品,有一些真的是他完全看不眼。
总结一下吐槽C++的大概有三种人:
第一种是Linus这种理解系统原理,真的会用C++同时也会用很多别的编程语言,语言在他们手里只是工具的人。他们在评价时是站在系统的角度评价哪个语言更好。就好比少林扫地僧评价六脉神剑和降龙十八掌。
第二种是会用C++的人,以及其它一些类似编程语言的人。他们是站在自己日常使用的角度,批判一些使用时蹩脚的地方,好比杨过吐槽九阴真经。
第三种是初学C++或者没怎么学过C++的人,看别人骂C++觉得高大上,所以也喜欢在网上用不知哪看来的别人的观点来冷嘲热讽一种语言,来达到满足自己内心的人。
这就好比很多人一谈到马克思主义都振振有词,好像都能说出个一二三来。但实际真的读过马克思著作的甚至理解马克思著作的没有多少,大部分心中的“马克思主义”都是它们从电影电视剧里听到的只言片语而已。当然,大多数的人还是秉承不了解的东西我不过多跟风和评价的观念,需要用到的时候会去客观的从自己使用场景的角度出发,权衡一种语言是否适合自己。
但是,c++再不济也是编程语言的中流砥柱,python,matlab再简单好用,底层其实大部分也都是c和c++。
感谢您的阅读,以上就是对我们 C++的一些看法,其实任何编程语言都有他自身的魅力,你要选择一门你所喜欢的编程语言并且迎合它,也就是想办法将他的魅力发挥到极致,那么你还用担心薪资的问题吗?
好了,更多C++相关的内容尽在C语言/C++学习企鹅圈子,敬请关注!