关于伟创 伟创新闻 伟创案例 网站套餐 联系方式
只做吸引客户的精品站!

为什么仍还用C编码?

洛阳软件开发 / 2013/3/18 7:38:45
[核心提示] 作者论述了C语言仍然屹立不倒,长久不衰的原因:过去C语言在性能和可移植上面有巨大优势,但随着时间的流逝其他语言(C++等)在性能和可移植上与C的差距越来越小.
为什么仍还用C编码?

概述:作者论述了C语言仍然屹立不倒,长久不衰的原因:过去C语言在性能和可移植上面有巨大优势,但随着时间的流逝其他语言(C++等)在性能和可移植上与C的差距越来越小.但为什么C还很火.作者认为是因为C语言的简洁性,使它在系统级别上仍然无可替代.但是对于应用程序开发还是选择其他语言较好,因为开发效率更重要.


偏好C而非C++的传统的理由正在慢慢的消逝.还有什么好的理由仍然使用C吗?


一个Dr Dobb's的长期读者最近问我一个问题:为什么人们还要用C去编码.这个主题最近出现在发布在我们网站上的一些评论中,更早些时候也出现在与一些特别是来自Microsoft的业界人物的对话中.在C++的早期时候,有很多理由根据需求来选择C还是C++;但是因为C++已经进化了,许多传统的有区别的C的特性已经变得不那么有优势了.因为这些优点当比较二种语言时总是首先出现,我们来审视一下:
1. 性能. C++过去总是比起C慢很多.但是在许多主流平台上,在今天这区别已经很小了.例如,Alioth上的计算机标准检查程序显示在32位Linux上C++运行一系列测试比C要慢27%.其他调查显示这种区别略高或略低.但是在大多数情况下,C++是除以外最快的语言.它通常要比JVM和.NET上的语言快多了.所以尽管C在标准测试上仍然有优势,在大多数应用都能接受Java的性能情况下(比如,任何企业级应用或者面向客户端的软件), 这种区别并不严重.
2.普遍性.在C仍然作为首选语言的嵌入式世界里,偏爱C是因为每一个硬件厂商都提供C语言编译器.过去C++在嵌入式世界里并不强势.然后今天大多数提供编程工具的组件厂商都会提供一个C++编译器.(PIC 微控制器总是一个例外).这是一个在退化的优势.
3. 可移植性.C++曾经很难移植(C89标准出现以前的C也一样难移植).然而今天的编译器已经足够地实现了C++语言核心保证软件可以在需要的情况下做很小的调整就能重新编译,前提是代码能够像Brian Kernighan曾经说的在语言的中间写.库的可移植性是一个更多麻烦的因素,但是C语言库也存在同样的问题.对C和C++二个语言,各种编译器对标准的支持程度差距非常大,所以使用没有完全支持的特性(C99,C11和C++11)风险是一样的.那就是说,C89可能是世界上最具移槙性的代码了.(也是基于这个原因,当移槙性是绝对顾虑时总是选择C语言.例如,Lua团队基于性能和这个原因而选择C).


凭心而论,对于性能,普遍性和可移植性C比C++有优势,但是这些优势正在渐渐的消逝.从这看,C++社区做的很好,通过它的使用者解决了曾经是采用的严重障碍.问题是:这些缩减的优势补偿了C++的好处了吗?包括面向对象,异常处理,更好的类型管理,模板,更加丰富的标准库等.没有了这些益处,C的每个项目都感觉像在用剪刀在修剪草坪.


那些特性确实可以帮你实现代码,但是它们是有复杂性代价的,这点上C跟C++还是有巨大的不同.C是少数几个小巧且足够简洁到可以整个怀抱下的编程语言之一.完全知道语言的来胧去脉以及对标准库了解到不用查看API手册就能用的很好是完全可能的.我相信这在其他语言中是不大可能的,起码确信在C++中不行.


这种小巧是语言的一个魅力.你可以快速的学习它也可以快速的达到卓有成效.别外一个少有提及的特性:最高的清晰度提升了这种简洁性.我的意思 是除了句法外的语义上的清晰度.从语义上讲,在C中仅有一些有限的方法做事.因此,当你阅读任何其他人的代码时,能确切的知道他们在做什么.对比在C++中,有太多不同的方法能达到同样的效果,这是程序所喜爱的灵活性.因为这个层面上的C的清晰性,对于实现复杂的架构来说C是卓越的语言.基于这个原因,JRockit JVM(现在是Oracle的首要JVM)的原作者选择了C.几年前的一次对话中,他们阐述了选择了C而非C++的观点,他们可以让开者更快速的上手.并且当深入代码之中时,他们可以比在C++更容易理解他们看到的代码.


单就这个原因,在系统级别代码中C仍然是非常棒的选择:速度快,可移植,易读易理解.然而对于重点多在开发效率的应用程序,显然C++会继续统治着本地语言并且很可能会扩张它的足迹.

原文: Why Code in C Anymore?


原文下的评论也很有意思比如第一条JSawyer说到:他理解不了为什么TIOBE把C列为第二受欢迎的语言.是不是因为Google搜索时把++和#字符去掉了所以统计显示人们搜索的是"C Programming"?
尊重作者原创 除非特别声明,伟创科技所有均为伟创原创报道,转载请注明原文链接。
原文地址:http://www.lywhy.com/SoftWare/View.asp?id=393  所属类别:软件开发
相关内容
洛阳软件开发需要多少钱? 2019/12/6
10种不同类型的软件开发 2019/11/5
如何更好的完成软件开发的项目 2018/9/18
伟创技术-婷婷:身为.NET程序员的断想 2017/2/18
【洛阳网络公司技术分享】身为.NET程序员的断想 2016/1/28
猜你喜欢
你会接受具有冒险意义的网站设计吗 2013/9/9
做网站公司伟创科技暂公布一批七月份签约客户名单! 2015/7/16
最新网站提速方法大全 2012/11/27
网站什么样的操作可能会引起快照往后退 2013/8/16
开源视频平台Kaltura获2500万美元融资 寻求向亚太地区扩张 2012/11/21
天天原创更新网站排名却不好的钥匙? 2013/7/25
谷歌搜索调整算法:对移动端不友好排名会下降 2015/4/20
洛阳学校网站建设与管理的几点思考 2012/11/15
伟创科技官方推出认证“吕伟”的网络工作室上线! 2013/7/6
做网站项目经理如何保持团队凝聚力 2015/3/7
伟创热点
关于我们
公司简介
我们的优势
企业文化
公司愿景
加入伟创
伟创官方博客
金牌项目
网站建设
网站优化
软件开发
整合设计
网站运营
网站套餐
基础型网站
展示型网站
商务型网站
购物、商店型网站
FLASH动画型网站
行业、门户型网站
帮助中心
客户中心
公司SEO培训
seo顾问服务
支付方式
联系我们
我们的位置
关注我们
新浪微博
腾讯微博
人人小站
QQ空间推荐
花瓣网
建站百科全书
Copyright 2007-2012 LYWHY.Inc Sitemap 豫ICP备12012069号-1
Links
洛阳百科
建站百科