首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 有感于“评论C语言”
【标  题】:有感于“评论C语言”
【关键字】:
【来  源】:http://blog.csdn.net/skys712/archive/2007/01/23/1490941.aspx

有感于“评论C语言”

最近一段日子,看了一堆评论语言的文章,忍不住,还是发了第一篇文章。
  一群人争的面红耳赤,无非是争论着C语言该不该从主流语言中消失。如此多的人热忠于此争论,使我不解:语言真的那么重要吗?一个语言就真的能决定一个软件的成败?

  不解,就不妄下断言。只说下自己的亲身经历,来印证一下自己的想法:语言,其实并不重要。在一个软件中比语言重要的东西太多了。

  我学的第一门语言不是C,而是Pascal,直到大学以后才开始学着用C写程序。对于这些语言的学习,有了一门语言的基础,其他的学起来基本上都只需要很短的时间。当时认为,能用学会的语言实现一些小程序便是学会了这门语言。
  当对程序的理解,积累了一定的程度,才发觉一门语言的博大精深。由于大学时候课程的安排,基本上大家争论的三个语言(C,java,.net)都接触过,也用过这些语言开发过软件。说句心底话,用C开发应用,真的很复杂,特别是在自己当时还是半调子的C语言水平时,一不小心就忘了释放内存,或者一不小心就使用了野指针。往往调试一个软件的时间比写代码的时间要长的多的多。而JAVA和.NET就基本上很少出现因为这样的错误而浪费的调试时间。不可否认,在当时每个语言都是半调子的情况下JAVA和.NET的开发效率要比C语言不知道高出好几倍。如果只是开发一个可以用的软件,我会毫不犹豫的选择它们,而不是C。
  而当我再过了2、3年后,当再用JAVA或.NET写程序时,我会有一种非常强烈的不安。这种不安源自我本身对系统的理解,和对程序的掌握。我对那种内存的申请和释放不能掌握在自己手中,系统底层通讯自己不清楚它的实现,数据的访问也都被封装的机制,强烈的缺乏安全感。当知识的积累过程中,让我了解了操作系统的运作过程、程序运行的管理机制,硬件调用的具体步骤等等计算机相关的基础知识后,我不可能安心的把自己写的软件的50%甚至更多的性能交给JAVA或.NET。我宁可相信自己写的代码,针对每一个过程的优化,针对每一个中断、每一个内核通讯的优化,甚至是吹毛求疵的一个字节一个字节的节省。这样至少,写出来的程序的性能有90%是可以自己把握的。

  此时说到了程序的性能让我对JAVA和.NET失去安全感,而选择了C。很多同志都会反对:用他们的言论来说:“现在的CPU够快了,没必要为一点运行效率、内存开销而计较。”对,CPU是够快了,可CPU的性能是让你的软件在单位时间内可以做更多的事的,而不是让你有足够的时间来做完你的事。CPU并不是为了你的软件而升级的。做软件仍需要吹毛求疵来提升性能的原则。
  对于性能的讨论,占了前段时间讨论的大部分内容。软件性能和语言的关系真的很大吗?就经验来看,代码的优化对性能的提升是最小的。代码上优化的累死累活,不如使用更好的算法。而算法上的优化,更不及架构上的优化。如同这样的关系式:100*代码优化==10*算法优化==架构优化。
  而架构和算法是完全和语言无关的东西。在做软件的过程中,只要能实现的语言,皆可以用,皆是好的语言。这样看来,争论语言的优劣又有何意义?
为什么要洗鼻?:【上一篇】
最近看了Stephen's的C Primer Plus(Fifth Edition),经典。:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 我的diskman由我打造-photoshop做产品造型(二)
  • 使用PyGtk和Glade构建应用程序
  • 软件工程--需求分析与规格说明
  • 架設 DNS(DNS终结篇)[2]
  • FreeBSD6.0 MySQL的快速安装
  • 操作系统引导探究 (Version 0.02)
  • 用Photoshop轻松实现批量转换
  • Mastering Oracle SQL学习笔记-第2章:Where子句
  • Visual C++ 6.0 代码编辑窗口(Source Window)字体的设定
  • 用HTML给Flash加链接
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.