Chinaunix首页 | 论坛 | 博客
  • 博客访问: 744337
  • 博文数量: 769
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:37
文章分类

全部博文(769)

文章存档

2011年(1)

2008年(768)

我的朋友

分类:

2008-10-15 16:39:51

    问题

    为什么使用?

    在你皱眉准备关掉这个网页之前,试着回答这样一个简单的问题。

    答案是效率,是吗?每个人都知道答案。但是,我们应该以更专业的角度来讨论一种编程语言或是与之相关的事情。那么,让我再问你一个问题:效率是否是人们选择使用的唯一理由,为什么他们不用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++好吗?实际上不是。

[1]    

【责编:huangchunmei】

--------------------next---------------------

阅读(365) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~