为什么使用C [1]

2008-02-23 05:40:59来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

问题

  为什么使用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 就会更有用。

[1] [2] [3]




标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 用C设计 用C 编码

下一篇: 为什么使用C [3]

热门词条
热门标签