读Linus Torvalds发表批评C++的文章和孟岩BLOG回帖有感

原创 2007年09月12日 11:56:00

 
Torvalds可能是愤然于缺乏规范开发的程序员所写的糟糕代码进而迁怒于C++,并且积怨可能从他从前用C++开发Linux失败开始。
我想说的是抛开你具体的应用环境来讨论语言啊,设计方法啊什么的没什么实际的意义。我们都是为了更好的做好自己的事,编程不是什么大不了的事,也不高深。但究其具体应用就有不同的选择。OO很好,但不是放之四海而皆准的万能之法。对于孟岩的说法我比较认同:“C++语言主要是用来支持别的语言的”,他所处的位置本身就是一个比较中间的位置,偏底层他并不像C那样简约直接,论OO他并不像JAVA那样完全的面向对象,所以说他是比较中间的语言比较好一点或说是支持其他语言的语言更好些。软件开发过程是分层次的,而且根据您的应用领域层次的定义,开发语言的选择都是不同的。没有一个铁的定律说某一层就用XXX语言就最好,别的都白扯,这是一种错误的想法。抛离具体应用而论没什么意义。Torvalds是开发Linux的,一个操作系统,当然要用能开发出高效,简约,直接的代码的语言来开发,所以在他尝试用C++开发失败后他选择了C,然后他比较满意用C开发,并且C也比较适合开发,于是他觉得C好,这是因为他的应用环境应用层次是操作系统开发,脱离了这一具体的应用领域或环境,你干嘛不和JAVA比较呢,怎么老揪C和C++的区别优异呢。Torvalds在系统级开发中最终认可或说回归了C语言是因为他想更好的做好他的事情,编写出更好的Linux OS。然后根据自己多年的经验和多年来看到Linux贡献者中不规范的C++开发者给Linux发展带来的影响(估计是维护规范他们开发的东西或版本控制的时候带来的维护负担太重)发表了自己的看法,这没什么。言论是自由的,导致一个人在特定的场合发表一些言论的因素有很多,没必要加以指责批评。我就看张三不顺眼你能把我怎么样,你非的要跟我讲道理让我喜欢他?

还有就是说到现在Linux OS已经成为了一个大家共同开发的东西,不应该以权威的喜恶来左右。我想说,我们还是应该相信权威的,起码在这一领域他是创始人,层次本身就比我们高,同时他也在努力使这一领域健康良性的发展,所以我们在没达到他那个层次的时候没什么资格来决定这一领域的命运。电影明星喜欢的人很多,这当中也不乏优秀之人,但电影明星适合当国家领导人么?难道就因为喜欢他的人比较多就让他来决定国家命运?

下面是我觉得回帖中比较好的摘录如下:

C语言的简单性恰恰是一种优势。C++的复杂性会使很多人误用。而C语言的简单性,一般情况下都会迫使你使用比较简单的设计,例如C语言不能在语言层次上提供类继承的方式,那么它会迫使你更多的使用组合,而不是继承这样的重用方式,即使你可以用函数指针表的方式实现多态,也不可能象C++那样把类层次扩展了一层又一层,在c语言中,函数指针表的在c语言中以更接近于定义接口的方式被使用。这些都是C语言的简单性迫使你做出的选择。
而很多C++的程序员却在C++的丰富的特性前面忘了简单性原则的重要性

Linux从来都是C的世界,可以说是历史原因,也可以说是Unix文化C++从来都不是Unix下编程必须的,MFC好多年来都是最庞大的C++库(现在是不是我不知道)如果你用Windows下的VC开发,你应该知道MFC中的很多类只是API的简单封装(我估计MS开始也不敢封装的太高级),而这些API原型都是C风格的(我没看过源码,不敢说一定就是C而不是C++写的)我猜想他们是C写的,但是让最终用户通过直接调用API来写GUI程序,代码量是很恐怖的,所以现在我始终认为,C++在Windows平台上的使用,就是简化编程,和提高编程效率而已,而MS在Windows下编程之所以敢大量使用C++完全是因为底层API提供了安全可靠的系统支撑!

让"最终用户通过直接调用API来写GUI程序" 代码量也没那么恐怖, 写好一个框架, 填代码就是了, c++对类的封装(尤其是MFC)能"简化编程","提高编程效率"简直就是一个笑话


C用来实现封装性很简单。比较难以用C直接实现的是继承和多态。不过在现实中继承和多态真的是可以用的少之又少的。很多所谓的继承和多态的“设计”完全可以用基于策略的方式来完成。基于策略的方式在C里用函数指针或者表驱动完全可以做到。很多不得不用C++高级特性的“设计”,其实从一开始就使用Java甚至script更容易做到。OO并不是模块化和可维护性的唯一可行方式,甚至不是最优的方式。而C++的OO实现也不是很好的实现。

马克思说:“人类和动物的区别在于会制造和使用工具”
大大们发明了计算机,你可以不用打算盘了
大大们发明了键盘,你可以不用在纸条上打孔了
大大们发明了汇编,你不用拿表查01了
大大们发明了C,你不用了解太多寄存器了
大大们发明了C++, 你发现写代码简单了
大大们发明了java,你发现写代码人效高了
大大们发明了C#,你发现用C++的人越来越少了
大大们用C++尝试写操作系统,发现不好用,说C++写操作系统不好用。
大大们说我们都用C语言吧,大家说,我们不是你,明天还要交活呢,等我们用C语言写个ERP,人家都出

下一代了。

用个比喻:我们村里人用锄头锄地,用爬犁翻地。爬犁有爬犁的用途,锄头也不能丢,因为爬锄不了地。

最近招聘vc的开始多了,原因是没有人了。说话的人多,坚持的人少。

用C设计,用C++编码

      昨天晚上看到刘江的blog又补充了好几大段,今天早上又看到云风的人肉trackback,果然还是这种话题引人关注。      云风先是提了一下所谓C++带来的思想包袱(文言文曰“心智包袱...
  • myan
  • myan
  • 2007年09月10日 11:32
  • 45393

《程序员》卷首语-“美丽”网络

作者按:这是我2002年分管《程序员》杂志,接棒李学凌的卷首语。现在看起来,这些老文章有的还有点现实意义。发出来纪念一下。今天(2003.1.13)在网络上看着三星杯决赛中王磊与韩国曹薰铉激烈搏杀,原...
  • jiangtao
  • jiangtao
  • 2006年05月23日 18:13
  • 5061

8年后战争又起:Linus Torvalds was (sorta) wrong about C++

语言之争永远是热门的话题,无论你是脱离了语言限制的老手,还是初入IT的新人。2007年的时候,Linus曾在一封邮件中大骂C++。原文链接From: Linus Torvalds Subject: ...
  • smstong
  • smstong
  • 2015年03月13日 20:46
  • 1628

程序员必须走向专业化

上周六(2月23日),IEEE-CS力推的CSDP认证培训第三期班在中关村创新研修学院开班。这次的开班仪式很有特色,主办方特别举办了一个软件工程研讨会。我赶到会场的时候正赶上中软通用产品研发中心总经理...
  • myan
  • myan
  • 2008年02月28日 11:06
  • 33422

Linus Torvalds 批英特尔避重就轻,没承认问题

据华尔街日报报道,计算机芯片被曝存在安全漏洞,乍看之下似乎给英特尔带来了一场突如其来的危机,但在这背后,它和其它的科技公司以及专家其实对付该问题已经有数个月。 现在,苹果成为了最新一家承认受到芯片漏洞...
  • B9Q8e64lO6mm
  • B9Q8e64lO6mm
  • 2018年01月07日 07:02
  • 53

读孟岩先生的《程序员必须走向专业化》有感

        今天拜读了孟岩先生的《程序员必须走向专业化》,很有感触,既有赞同也有非议。        首先,我们需要界定一下何谓“专业化”?是指编程技术上的专业还是指业务领域方面的专业?至少在这篇...
  • jintianyishiyeai
  • jintianyishiyeai
  • 2008年03月01日 00:20
  • 878

孟岩:感恩侯捷,遇高人不可交臂而失之

一个“技术文化人”的片段感悟作者: chenqiuge分类:架构实践 阅读:12,058 次添加评论2003年我加入CSDN,6年之后离开。在2003年之后,我的技术身份就很难界定了。曾经有个朋友称我...
  • beyondhenry
  • beyondhenry
  • 2011年04月17日 19:18
  • 3579

Linus Torvalds取得成功的根本原因

1969年12月28日,Linus Torvalds诞生,其父母都是芬兰的新闻工作者。他的名字是根据诺贝尔(Nobel)化学奖与和平奖得主Linus Pauling(1901-1994)取的。...
  • yuanmeng001
  • yuanmeng001
  • 2014年03月30日 10:07
  • 3490

Linus Torvalds最讨厌的7项技术发布啦!

导读 作为当今世界上很伟大的一名程序员,Linux的创始人Linus Torvalds可以说受到很多人的尊敬与崇拜。像Git版本的控制系统以及Linux内核,都是他写出来的。虽然在技术上成就很大,但...
  • linuxnews
  • linuxnews
  • 2017年02月12日 23:07
  • 211

Linus Torvalds谈Linux发行版

10天前,Linux创造者Linus Torvalds接受采访,采访中,他谈到他对Linux发行版的好恶。       多年来,我用过各式各样的发行版。目前,在我的大多数计算机上,碰巧使用Fed...
  • fngsong
  • fngsong
  • 2013年11月04日 11:44
  • 1216
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读Linus Torvalds发表批评C++的文章和孟岩BLOG回帖有感
举报原因:
原因补充:

(最多只允许输入30个字)