C++ 水平如何,为什么他敢炮轰此编程语言排行

Linus Torvalds 的 C++ 水平如何,为什么他敢炮轰此编程语言?
C社区里不用说了既然敢于炮轰C++,那么他C++的造诣和编程水平如何呢?C++的各种辅助编程和设计的理念&技术:从基本的数据封装(当然这个C也没问题)、RAII资源管理、强大的STL/Boost库到现代C++的Smart Pointer,Lambda/closure,function/bind,auto类型推导等等岂是这个狂热的C使用者可以无视的?(分类并不严格,大家不要纠结)提此问题的动机并非想在编程武林中确定Linus的排位,更多的是想知道,没有以上所提的所有C++的语法糖,Linus本人和C社区里的高手们又是如何「巧妙而高超」的处理相应的问题的呢?尤其是在做大型的需要优雅设计的系统、大量的需要有效管理的资源等的时候,dirty and ugly的hacking就不算了吧另外,谈C++水平,并不是狭义的指OO。
按时间排序
很久没接触过c++了。印象里,如果写系统的时候如果用了你提到的那些c++特性,恐怕执行效率会下降,而且一个不留神,运行时出错也不知道错在哪当然如果不用那些特性,自然也不比c写出来好到哪去话说回来,c++至少设计者不打算把它再当成c的扩展,而是一门完全不同的语言了
很赞同linus对c++的评价 只不过是给c语言加了些语法糖,然而为了使这些语法糖兼容,可用,又坐了无尽的修补,然后程序员写程序的时候要遵循各种条条框框,注意各种约束 如各种复制拷贝细节 各种可变不可变简单易懂的c变成了难以维护的屎山,我很不喜欢这种语法限制很多的语言,写一行代码要注意七八个细节的语言,我喜欢的是如java c这样简单的语言
这个问题,就像你在哪里想,全世界最牛逼的狙击手用手枪的水平是不是很差呢?
然则全世界范围内,黑C++的段子比其他语言加起来还要多
我也不喜欢C++,核心级别的代码用C就能搞定,上层建筑可以用java或.net,当然实际开发时会用c++的开发环境,但不会使用c++的OO语法特性。
只有没入门的“码农”才会问这种问题!什么叫***C++水平?拿一门语言给这样的大拿作标签,简直是人性的猖狂!人家的段位早就超越了一门语言了好不好!某个计算机语言这种标签只适合插在“码农”身上!
从Linus的代码来看,我觉得比大部分C++黑好多了。
曾经在水木上看到一个帖子讨论大神的C++的水平如何。我回去没找到原贴。大意是说大神的C++的水平也是很厉害的,也曾经试过用来重写内核代码,但很快就放弃了。至于他水平如何,有个小故事。有个人在讨论组内发帖问一个问题,对于他负责的代码中某个bug百思不得姐,当然这个是用c++写的。然后大神回帖说,你看你的代码是由于某编译器带来的问题,它产生的机器码是巴拉巴拉这样的。于是众人退散。既然是故事,真实性不可靠,权当一乐。//////// 以下搬运自csdnLinux之父Linus Torvalds曾经在三年前,因为微软的一位同学质疑Git用C语言开发,而将C++痛批了一顿(参见)。当时,他是这样评论的:C++正处在困境当中,它既无助于简化,以实际用于进行原型化或者简单的GUI编程,又不是像C那样的简洁的系统编程语言,能够积极地鼓励你使用简单和直接的语言构造。日到11日,他又在邮件列表中连续发贴,直截了当地炮轰C++。他:“我确实不喜欢C++,依我来看,它真的是一门很烂的语言。”他还说,C++语言想解决的问题都不对路,都是一些皮毛问题,而没有涉及真正深层次的问题。C++的对象、模板和函数重载都基本上纯粹是C的语法扩展,是语法糖,总体上把C的语法和类型系统都弄得更糟。他建议,在系统编程里直接用C就可以,非系统编程里,应该选择一种有垃圾收集的语言,C++语言的特性基本无用,只会捣乱。因此,什么时候C++都不可能是正确的选择。在中,他进一步说明,内核开发使用C语言而非C++的理由之一,是交流。在庞大的项目中,人们对不是自己开发的模块并不了解,能快速理解其他模块中函数的确切含义才能提高开发效率。而C++引入的各种抽象则使代码非常依赖上下文,想理解一段代码,需要看多得多的上下文。对于需要不断打补丁(小段代码)的内核来说,这是非常要命的。Linus也承认,在其他一些情况下,可能需要更多语言支持,语言级的内存分配机制如垃圾收集、并发、动态代码生成等等。但是内核开发不需要。而且,即使是这些方面,C++也不灵。他不忘嘲笑C++的new关键字很蠢。有人问到,C++没有解决的深层次问题是什么?,比如并发。他进而又痛批了一通:C++是狗屎,根本没啥设计,只是在C上面加了些渣滓而已。有人问Linus对Go语言怎么看。,Go语言里有些不错而且重要的东西值得关注,许多决策都很合理。但设计者自己称这个语言为实验性的,这当然有其原因。而且,引入一种新语言没那么容易,过二十年再说吧。此外,Linus还在里痛批了面向对象语言。他认为面向对象语言以对象为核心,加一些相关联的方法,简直是呓语。重要的东西应该是数据结构,对象本身有啥重要?真正有意思的,是在不同类型的不同对象交互而且有锁规则的时候。但是,即使是这时候,封装什么“对象接口”也绝对错误,因为不再是单一对象的问题了。他的结论是,面向对象解决的都是一些小问题。
Linus 的 C++ 水平应该不怎么样,原因:他自称 C++ 的猪队友太多,但是他有 code review 的大权,如果他的 C++ 够牛逼,完全可以否决猪队友的代码。
看看这本Linus亲笔自传,会更全面了解这家伙:《只是为了好玩》
有时候不光看水平,还要看贡献。他对开源世界的贡献是巨大的,知乎上相信有不少能写出来内核的高手,但是他们对这个世界有多少贡献呢?
其实题主更应该问C++比C到底高明多少?答案是在相当多领域引入C++除了装逼没有什么积极作用
题主的编程水平如何,竟敢质疑linus炮轰C++!!
windows,linux,unix,mac osx,内核都是c语言、汇编写的。有一种系统是c++写的内核,就是诺基亚的塞班系统,现在已经死掉了,据说代码量比win xp还大,连他们自己的程序员都无法维护,最后就死掉了。所以c++不是做内核的料,c++可能是最复杂的语言,但是绝对不是最牛逼的语言。Linus Torvalds不用c++绝对不是他技术不行的问题。
这个问题好像是在问 达摩祖师 枪法咋样?
当然如果觉得他不够达摩祖师的级别 也可以问 乔峰 用刀会不会很厉害?真正内力深厚的稻草都可以杀人 扫地僧用的是扫把 轻松制服慕容复他爹和乔峰他爹
语言只是工具 编程思想最重要 能解决实际问题最重要
如觉得无关请 无情的折叠我吧:)
Linus 只炮轰过一次,那是因为 git 选择了 C 语言,很多人「选择性无视了这段话的由来」。这段话的来由是因为有一位大炮在邮件列表中公开说 Linus 在 git 项目中使用 C 语言进行开发的理由是 「BULLSHIT」,所以 Linus 才开炮说「你才是 BULLSHIT 」,然后明确说明了(大意),因为 C++ 有一群猪队友,为了避免使用 C++ 的猪队友来搞乱代码,所以 git 项目使用纯 C 写作。各位简单的思考一下,你开发一个软件,人家骂人的都跑到你的邮件列表(国人可以理解为这就是官方论坛)里面来开骂了,你还不发飚能行?是否炮轰,与他本人的 C++ 水平没有关系,而且他炮轰的只是那个大炮,以及一部分猪队友,而非所有的 C++ 程序员。这只与他能接触到的那些 C++ 程序员的水平有关系。作为非商业的开源软件,其实他并不能选择谁来参与他的项目。不能够根据项目的技术需求来挑选人,而只能通过现有人才的力量来选择项目技术。事实上,他的观点没什么大问题。Linus 自称在 Linux 团队中的主要职责是代码审查。换句话说他评估什么代码是好的,什么是不好的,什么该进入代码,什么不该进入。他明白哪些人会来参加他的项目,哪些人会为他的项目贡献代码,如果这些人的 C++ 能力都不如 C 能力,那么他就绝对不能选择 C++ ,这与他本人的 C++ 能力没有关系,也与 C++ 本身没有关系,而是作为代码审查者,他太清楚与他合作的那些人写 C++ 程序的能力水平了。
没有“老是炮轰吧”,就炮轰过一次,而且轰的是“C++标准太复杂导致不合格使用者太多,容易误用和滥用语言特性”。你列了一些C++的“好特性”,但作为一个10多年C++用户,我在用其它语言时“唯一”十分想念的C++特性是确定性析构与RAII,其它都可有可无
等你用C++写了操作系统了,你就有资格这样问了。
Linus专注的领域是os kernel,在这个领域里目前没有任何一个语言可以撼动C语言的主导地位,世界上使用最广泛的操作系统kernel——linux和windows NT都是用C语言写的。我总结其原因有这么几点:第一,C语言的性能模型和控制流非常简单清晰,更接近硬件、更接近汇编。C++会引入不必要的复杂性。具体说:1) 性能模型变得不直观首先明确一点,内核是对性能的要求非常严格。C++很多语言特性是牺牲性能tradeoff开发效率的,不适用于内核开发。C++声明一个栈上类变量的开销很可能因为一个复杂的构造函数变得非常大,而且一眼还看不出来。另外拷贝构造函数、运算符重载、STL这些都会带来同样的问题,结果就是制造很多额外的profiling工作(想想C++11里move语义为了解决什么问题)。2) 控制流变得不直观这个问题的原因是C++引入了构造函数和析构函数。大家应该都见过,C++会引入全局类变量的,使得模块载入的时候会有一些全局变量的constructor被调用,这些constructor可能还会调用一些别的东西,这会导致控制流变得不直观,尤其内核对顺序非常敏感,这会带来很多麻烦的问题。第二,Kernel里用不上继承内核很少会用到inheritance,反而状态机用的会比较多。内核会涉及到很多概念,比如VM、Thread、Process、Schedule、FS等等,每个概念都是相对独立和完整的概念,很难也没有必要抽象成继承链。复杂的继承关系出现在应用层。OO是一种模块化代码的方式,但是并不适合所有的场景。无论是linux还是nt kernel的代码模块化都做的非常好,尤其是nt kernel,微内核代码非常少,LZ感兴趣可以找来看看。updateLinus对C++的敌视还有另一个非常重要的原因——语言设计哲学。C++的语言设计哲学是万能语言,尽可能支持各种编程范式。而unix哲学里是“Use the best tool for the job”,这也是为什么unix平台上出现了perl、python、awk等一堆语言。显然Linus是对万能语言嗤之以鼻的。
已有帐号?
无法登录?
社交帐号登录前10大编程语言你会几种? | 程序师您所在的位置: &
为什么使用C++(1)
为什么使用C++(1)
刘未鹏/梁婷婷 编译
本文给出了我们需要使用C++的原因和理由,您觉得这些理由充分吗?文中针对C++的贬低和相应对C语言的抬高给出的原因,您觉得是正如作者所说这样的吗?
Linux之父炮轰C++:糟糕程序员的垃圾语言
Linux之父话糙理不糙
不得不看的两次从C++回归C的高手评论C++
C语言是否该扔进垃圾桶
为什么每个程序员都应该学习C语言?
每个程序员都应该学习C语言?我可不这么认为
C语言已经死了,5个需要忘却它的理由
用C设计 用C++编码
为什么使用C++
C++0x:崭新的C++,还是另一个Java?
编程语言的三大定理
动态语言为何难堪重任
动态语言面面观
【综合消息】问题
为什么使用C++?在你皱眉准备关掉这个网页之前,试着回答这样一个简单的问题。
答案是效率,是吗?每个人都知道答案。但是,我们应该以更专业的角度来讨论一种编程语言或是与之相关的事情。那么,让我再问你一个问题:效率是否是人们选择使用C++的唯一理由,为什么他们不用C呢?C的效率公认比C++高(当然,我知道,现已证明在某种程度上说,C并不比C++高效,但请不要在此挑错,因为即使他们是等效的,问题仍然存在)。
我知道你可能会说,这是一种&择优选择&,因为毕竟C++就是设计成了C的优化,是C的扩充,可能它没有想象中的那么高效,但同时它却有很多梦幻的高水平的特征。那么问题就归结为&开发者真的需要这些梦幻特征吗?&我的意思是,毕竟我们都听说过KISS(Keep It Simple,Stupid!保持简单)和stuff(材料),我们也都听过这种说法&&与C++相比,C更KISS,所以我们应该选择C。这样无休止的争论使得C和C++之间的比较变成了一个神话(或者是一片混乱)。令人惊讶的是,似乎很多人倾向于C,而理由是C++太难正确使用了。甚至是Linus也这么想。
这种现象产生的真正严重的影响是,驱使更多的人在C与C++之间权衡利弊的时候,他们选择了C;一旦他们开始使用C,他们很快就会感到满足和舒服,就是所说的&令人满意&的体验。这样,当争论产生的时候,他们就会站出来说与C++相比,C是更好的选择。而实际上,他们都没有真正试着使用过C++,或者他们根本不是足够好的C++程序员。而真实的答案,往往开始与&它取决于&。
那么,我说过&它取决于&,取决于什么?显然,在一些领域选择C比C++更好。例如,设备驱动程序的开发通常就不需要OOP/GP(面向对象程序设计/概念编程)技术。它只需要简单的数据操作;最重要的是,程序员能正确的知道系统如何工作,以及他们该做什么工作。再考虑OS(操作系统)的开发,我自己从来没有参与过任何OS的开发,但是读过大量OS代码(大部分是Unix),我感觉很多OS重要部分的开发也都不需要OOP/GP技术。
但是,这就意味着,在所有强调效率的领域,C都比C++好吗?实际上不是。
让我们具体问题具体分析
首先,当人们关心效率的时候,实际上就关心两类效率&&时间效率(例如:OS,运行时间,实时软件,高要求系统)和空间效率(例如:所有嵌入式系统)。但是,这种分类并不能真正帮我们决定应该选择C还是C++,因为C和C++在时间和空间上都是非常高效的。真正影响我们选择哪种语言(当然是在C和C++之间)的是商业逻辑(这里的&商业&并不是指&企业应用商业&)。例如,是不是使用OOP/GP来表达逻辑更好,或者是不是除了考虑数据和程序还应该考虑保持软件美观。
从这点上来说,我们可以模糊地把应用分为两类(当然前提是我们只关心C/C++,不关心java/C#/ruby/erlang等):低水平应用和高水平应用。低水平应用的意思就是,在这里并不需要那些梦幻抽象如OB(基于对象)/OOP和GP;高水平的意思当然就是需要了。显然,在所有需要C/C++的领域(由于它们的高效性)里,有大量&高水平&应用(参看在Bjarne Stroustrup主页上列出的),在这些领域,C++就会更有用。
不过,换个角度想想,即使在这些领域,程序员在他们的代码中不使用那些高水平的抽象,还是有他们应该使用C++的理由。为什么呢?因为你的代码不使用类和模板并不意味着不使用类库。考虑所有便捷的C++类库工具(即将有校准扩展tr1/tr2)的实用性,我认为在这些情况下,有非常充分的理由选择C++&&编码的时候你可以仍然使用C的形式(以任何你想要的方式来保持KISS)。同时,你还可以使用强大的C++类库(例如,STL标准模板库,tr1/tr2组件等)。最终,就会发现这件可能会被很多人忽略的事情&&有时KISS依靠抽象。我想,Matthew Wilson在他的新书&Extended STL,Vol1&的序言中,极其透彻地阐明了这个观点。书中提到了两段代码,分别用C和C++编写:
//C代码DIR*& dir = opendir(&.&);if(NULL != dir){& struct dirent*&& for(; NULL != (de = readdir(dir)); )& {&&&&&& if( 0 == stat(de-&d_name, &st) &&&&&&&&& S_IFREG == (st.st_mode & S_IFMT))&&& {&&&&& remove(de-&d_name);&&& }& }& closedir(dir);}//C++代码readdir_sequence entries(&.&, readdir_sequence::files);&std::for_each(entries.begin(), entries.end(), ::remove);&And it&s even simpler in C++09:&// C++09代码std::for_each(readdir_sequence(&.&, readdir_sequence::files), ::remove);
我想,这能很清楚地说明,为什么即使人们不需要使用类和模板的时候还是应该使用C++&&你会发现便捷的C++类库是多么有用。类似地,如果一个高效的容器(或者一个巧妙的指针)可以使你摆脱所有手工操作内存的麻烦工作,那么,还有什么理由要使用那些原始的malloc/free?如果一个好的string类(我不是在说std::string;人人都知道这不是C++做的最好的)或者regex类可以使你摆脱所有你看都不想看的混乱的字符串处理代码,那么还有什么理由要选择手动做这件事情呢?如果一个&transform&(或&for_each&)语句可以如此简单明了地一行就完成你的工作(当然,我知道C++做这件事需要lambda函数的支持),那么,还有什么理由要手动写for-loops循环?如果高定制的函数真的能实现你想要的功能,那么,还有什么理由使用笨拙的工作区来完成同样的事务呢?
KISS并不意味着&粗糙&;KISS的意思是为你的工作选择最适合的工具,&最适合&意味着你所使用的工具能尽可能直接(和简洁)的帮助你表达你的想法。只要它不影响代码的可读性和易懂性。
人们可能会说C++很容易会用错,而相反,C通常更容易管理和操控。一个中等水平的C++程序员可能会写出一大串联系紧密的类,而很快这些类就会变成一堆垃圾。但这实际上只是个别情况。一方面,在任何面向对象语言中都会经常发生这样的事情。总是有一些程序员,他们敢于在类之上再定义类,而他们甚至还不知道什么是HAS-A和IS-A;他们学习了所有定义一个类和从其他类继承一个类的语法,他们就觉得掌握了OOP的本质。另一方面,为什么问题会出现在C++中,是因为C++有很多阻止设计的复杂之处,是因为C++如此灵活,以至于每个用C++解决的问题都有很多可选的解决方案(考虑所有的GUI类库),以至于权衡选择哪种解决方案就成了艰巨的工作。C++的附属复杂性是一个历史遗留问题,C++0X做了多番努力试图摆脱这个问题;关于设计的灵活性并不是一件坏事&&如果你考虑到它可以帮助好的设计师做出好的设计;如果有人谴责它,因为这样浪费了自己很多脑细胞,那这只是个人问题,而不是语言问题,或许这样的人就不应该负责做设计。如果你担心你的C++编程伙伴因为受这些高水平特征的诱惑而使得你的工程代码一团遭,那么,或许你应该建立一个编码标准并强制执行它(或者你可以遵循the collective wisdom,或者坚持C规范,或者带有C++类的C规范),而不是因为存在风险而退缩放弃(政策可以避免风险),因为如果不这样做,你将再也不能接触所有C++类库。
另一方面,存在着最重要的心理上问题&&如果一个语言中存在一个稀奇古怪的性质,那么最终就会有人发现它,然后人们就会被它吸引,这就会吸引那些本来在努力做一些有用的事的人的精力(有点像墨菲法则),不要去打扰那些正在做完美解决方案的人。人们天生就会被一些稀有资源吸引。结论就是:诀窍和稀奇古怪的性质就是稀有资源,所以会引起人们的注意,更不必说掌握一种诀窍可以使人感觉自己与众不同。糟糕的是,即使是没有价值的诀窍也会引起人们的强烈注意。
关于&&&&&&的更多文章
全书分为4篇,分别从搭建开发环境,Linux驱动和Android HAL的基
国内网盘的关停让用户操碎了心 下一个风口在哪
《待字闺中:编程面试题集》集合最新最全的面试经验和
这周Windows8.1正式版发布了,不知道各位有没有去更新
十一长假归来上班,好像更累了;早上也越来越堵了。小
本书是讲解C++语言程序设计的优秀教程。全书围绕C++语言来组织,开始章节介绍编程的普通感念,接下来详细介绍C++中的继承、多态
51CTO旗下网站Linus Torvalds 的 C++ 水平如何,为什么他敢炮轰此编程语言?
Linus Torvalds 的 C++ 水平如何,为什么他敢炮轰此编程语言?
【pansz的回答(111票)】:
Linus 只炮轰过一次,那是因为 git 选择了 C 语言,很多人「选择性无视了这段话的由来」。这段话的来由是因为有一位大炮在邮件列表中公开说 Linus 在 git 项目中使用 C 语言进行开发的理由是 「BULLSHIT」,所以 Linus 才开炮说「你才是 BULLSHIT 」,然后明确说明了(大意),因为 C++ 有一群猪队友,为了避免使用 C++ 的猪队友来搞乱代码,所以 git 项目使用纯 C 写作。
各位简单的思考一下,你开发一个软件,人家骂人的都跑到你的邮件列表(国人可以理解为这就是官方论坛)里面来开骂了,你还不发飚能行?
是否炮轰,与他本人的 C++ 水平没有关系,而且他炮轰的只是那个大炮,以及一部分猪队友,而非所有的 C++ 程序员。这只与他能接触到的那些 C++ 程序员的水平有关系。作为非商业的开源软件,其实他并不能选择谁来参与他的项目。不能够根据项目的技术需求来挑选人,而只能通过现有人才的力量来选择项目技术。
事实上,他的观点没什么大问题。Linus 自称在 Linux 团队中的主要职责是代码审查。换句话说他评估什么代码是好的,什么是不好的,什么该进入代码,什么不该进入。
他明白哪些人会来参加他的项目,哪些人会为他的项目贡献代码,如果这些人的 C++ 能力都不如 C 能力,那么他就绝对不能选择 C++ ,这与他本人的 C++ 能力没有关系,也与 C++ 本身没有关系,而是作为代码审查者,他太清楚与他合作的那些人写 C++ 程序的能力水平了。
【李劼的回答(25票)】:
Linus专注的领域是os kernel,在这个领域里目前没有任何一个语言可以撼动C语言的主导地位,世界上使用最广泛的操作系统kernel——linux和windows NT都是用C语言写的。
我总结其原因有这么几点:
第一,C语言的性能模型和控制流非常简单清晰,更接近硬件、更接近汇编。C++会引入不必要的复杂性。
1) 性能模型变得不直观
首先明确一点,内核是对性能的要求非常严格。C++很多语言特性是牺牲性能tradeoff开发效率的,不适用于内核开发。C++声明一个栈上类变量的开销很可能因为一个复杂的构造函数变得非常大,而且一眼还看不出来。另外拷贝构造函数、运算符重载、STL这些都会带来同样的问题,结果就是制造很多额外的profiling工作(想想C++11里move语义为了解决什么问题)。
2) 控制流变得不直观
这个问题的原因是C++引入了构造函数和析构函数。大家应该都见过,C++会引入全局类变量的,使得模块载入的时候会有一些全局变量的constructor被调用,这些constructor可能还会调用一些别的东西,这会导致控制流变得不直观,尤其内核对顺序非常敏感,这会带来很多麻烦的问题。
第二,Kernel里用不上继承
内核很少会用到inheritance,反而状态机用的会比较多。内核会涉及到很多概念,比如VM、Thread、Process、Schedule、FS等等,每个概念都是相对独立和完整的概念,很难也没有必要抽象成继承链。复杂的继承关系出现在应用层。OO是一种模块化代码的方式,但是并不适合所有的场景。无论是linux还是nt kernel的代码模块化都做的非常好,尤其是nt kernel,微内核代码非常少,LZ感兴趣可以找来看看。
【刘项的回答(9票)】:
这个真不知道,
因为实在找不到他写过的C++代码。
【知乎用户的回答(10票)】:
内核到处是OO思想,水平自然在你我之上。
【元亮的回答(8票)】:
这个问题好像是在问 达摩祖师 枪法咋样? 当然如果觉得他不够达摩祖师的级别 也可以问 乔峰 用刀会不会很厉害?真正内力深厚的稻草都可以杀人 扫地僧用的是扫把 轻松制服慕容复他爹和乔峰他爹 语言只是工具 编程思想最重要 能解决实际问题最重要 如觉得无关请 无情的折叠我吧:)
【曾大维的回答(3票)】:
windows,linux,unix,mac osx,内核都是c语言、汇编写的。有一种系统是c++写的内核,就是诺基亚的塞班系统,现在已经死掉了,据说代码量比win xp还大,连他们自己的程序员都无法维护,最后就死掉了。
所以c++不是做内核的料,c++可能是最复杂的语言,但是绝对不是最牛逼的语言。
Linus Torvalds不用c++绝对不是他技术不行的问题。
【知乎用户的回答(1票)】:
大神只喜欢用C 至今都找不到他写过其他语言的代码 linux kernel自然不必说 git也是纯C代码 他应该写过一点shell脚本
【蔡磊的回答(0票)】:
没有“老是炮轰吧”,就炮轰过一次,而且轰的是“C++标准太复杂导致不合格使用者太多,容易误用和滥用语言特性”。
你列了一些C++的“好特性”,但作为一个10多年C++用户,我在用其它语言时“唯一”十分想念的C++特性是确定性析构与RAII,其它都可有可无
【龙韵的回答(0票)】:
我不知道连Linux Kernel都能写出来的人, C++的编译器看不懂。
【蒋小冬的回答(0票)】:
其实题主更应该问C++比C到底高明多少?
答案是在相当多领域引入C++除了装逼没有什么积极作用
【刘建东的回答(0票)】:
题主的编程水平如何,竟敢质疑linus炮轰C++!!
【NickQi的回答(1票)】:
为什么不找出他对C++攻击的原话呢?或许他没有喷过C++语言本身,只是C++确实不适合他和他的团队做内核呢?
【nonocast的回答(2票)】:
C写成这样,C++会差?语言本身只是工具啊,人家早就是大师了。
【杨欣的回答(0票)】:
用什么工具做的不重要,关键是他做了什么。
【vczh的回答(11票)】:
虽然我没看过他写的C++代码,但是我觉得他的水平不足以跟猪一样的队友一起用C++写linux,所以干脆禁止了(逃
发表评论:
馆藏&53901
TA的推荐TA的最新馆藏}

我要回帖

更多关于 编程语言排行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信