滚滚长江东逝水,浪花淘尽英雄。虽说是个人英雄的时代已经成为过去,但我们仍然不能对这样的榜样们有所忘怀,他们是WPS求伯君、CCDOS严援朝、2.13吴晓军、四通利方王志东、CCED朱崇君、UCDOS鲍岳桥等。因为他们不仅是成名的优秀程序员,也不仅是在写文章时所必须想到的人物,更主要的是他们激荡了很多批程序员的编程热情,坚定了学会汇编和C就能走天下的决心和勇气,他们代表着以往中国软件业的辉煌。
     多年来,我们一直就这样追随着,也不曾怀疑过有什么不对的地方。即使在DOS已成为过去,Windows和Internet独霸天下的今天,我们也不曾怀疑过。
     我们能怀疑吗?我们眼见的实例太多了。我们不是看到Linux等 操作系统 和许多应用程序的内核都是用C来编制的吗?即使在高校的计算机或非计算机专业中,C/C++程序设计课程的广泛开设不也是一个极好的证明吗?Norton Utility 首席设计师Enrique Salem不是也认为"每个人都应当使用C++"吗?
     难道还有什么怀疑吗?
     诚然,我们不能否认C/C++语言的超凡魅力。然而我们不禁要设问,在Windows流行的今天,用Windows C编制出界面独特、功能强大的应用程序,你能吗?即使能,你需要多少时间?
     在有许多程序开发工具可供选择的今天,强调"C/C++是程序程序员所必须掌握的语言"难道就没有人真的敢站出来提出质疑吗?
     其实,在网络一统天下的今天,任何应用程序都必须经过网络的验证。谁的软件好用,谁就会被认可。为了能达到这样的目标,许多Windows程序员都选择了简单易学、能快速有效地开发的Visual Basic、Dephi等工具。E_book电子阅读器就是其中一例,它是李晓东用VB设计的。
     如果这显得太过苍白无力的话,那么让我们先来看看C语言从过去到现在的发展历程,看看它为什么这么发展。
  众所周知,C语言是在70年代发展的语言,由于当时人们设想一种集低级语言和高级语言优点于一身的语言,于是C语言就诞生。基于它的简结、紧凑、方便和灵活,它很快就成为国际上广泛流行的语言。

     然而,C语言终究是面向过程的语言,数据和处理数据的程序是分离的。当对某段程序进行了修改或删除时,整个程序中所有与其相关的部分都要进行相应的修改,从而程序代码的维护比较困难。为了避免这种情况的发生,在C的基础上中引用了面向对象的设计方法。它是将数据及处理数据的相应函数"封装"到一个类中,而使用类数据变量则称为对象。在一个对象内,只有属于该对象的函数才可以存取该对象的数据。这样,其他函数就不会无意中破坏它的内容,从而达到保护和隐藏数据的效果。这就是C++。当然,面向对象的C++还支持多重继承、模板、操作符重载、内联函数定义、预处理、宏、全局静态类变量、嵌套类定义等等。

     C++太复杂了,任何一个使用C++开发者的企业必将付出更多的成本,因为优秀的C++程序员是少而又少。基于软件企业化的需要,人们很自然地需要一种简单易用、面向对象、安全灵活的"新一代Windows服务"(Next Generation Windows Services,简写为NGWS)应用程序的语言,于是C#出现了。它全方位简化了C++的功能,使其具有C++所没有的简单易学的优势。它既没有C++"悲剧性"的指针概念,也没有类似"::"、"."和"->"的"愚蠢"操作。
     因此我们也可以说,C#才是程序员们所必须掌握的语言。但是,我们不能忽视这一点,语言总归是程序员的工具,谁具有简单易用、支持最新技术并能快速有效地进行软件开发,谁就是程序员的工具。
     如果上述的结论还不能接受的话,那么让我们看看现在C++程序员的窘境吧!
     就目前而言,选择C++就意味着选择Visual C++,而不C++ Builder。这是C++程序员第一件让人头痛的事。因为VC与Windows 98/NT同出一炉,相同功能的Visual C++应用程序编译后,其大小要比C++ Builder小得多。不仅如此,其稳定性和完善程序要比C++ Builder要强得多。
     但是"Visual C++"这个名字曾误导了很多人,他们认为自己买了一套完全可视的编程系统,类似于Visual Basic,并在刚开始的几天总这样幻想。然而不久,人们认识到他们必须实际编写和阅读C++代码。虽然Visual C++向导可以节约时间和提高正确性,但程序员必须理解向导所产生的代码,最主要的,还必须理解Microsoft Foundation Class(MFC) Library的结构和Windows操作系统的内部工作方式。许多C/C++的DOS平台的程序员把这种工作方式评价为"枯燥且艰深晦涩"的过程。尽管新版本的Visual C++6.0提供了控制台应用程序类型,使DOS程序员能方便地进入MFC应用程序的开发,但仍然不能从根本上改变上述弊端。
     选择了Visual C++,就必然选择MFC,一种程序结构,一种编程风格。但由于MFC是OWL同时代的产物,已经落后于VCL一个时代了。从开发出基于ATL的WTL可以反衬出MFC的不足。这恐怕是Visual C++程序员最窘的地方。
     但我们暂且不提MFC过时的尴尬,单是稍稍地改变一下应用程序的外观,Visual C++已是力不从心了。例如,想要改变控件的字体和背景,你得重新生成一个类,而VB只需更改一下属性。从Visual C++界面设计的网站的火爆可见一斑。
     不仅如此,Visual C++程序员也时常感到另外一种尴尬,一个小小的BMP、JPG图片显示,在Visual Basic中轻而易举的事件,到了VC居然需要那么多的代码,而且在数据库应用程序的开发中还常发生许多一些细微的错误,令程序员们大为恼火。更为甚者,如果有人还想用Visual C++编写Internet/Intranet程序的话,那简直就是自寻烦恼。
     虽然,一个优秀Visual C++程序的薪水要比其他程序员高。但是,他所花费的精力不是其他程序员能比拟的,他不仅需要承担高昂的培训费,而且还要承担90%不成功的概率。这恐怕是想成为Visual C++程序员的人最苦恼的事。
     当然,我们不是劝你放弃使用C/C++语言,相反还十分支持。因为使用C/C++编写的程序结构和算法能被更多人接受,毕竟C影响了整整20个年头。但是时过今天,我们还能靠它来"谋生"吗?
     相信你已经有了自己的答案。当然,我们之所以跳出来,是希望程序员们不单是在这个方面去思考,更主要的是:在我们国家软件发展浪潮到来的今天,我们不能再盲从,我们应该关注软件产业、关注互联网产业、关注信息产业。我们也应该有自己的归宿,难道印度软件大国给我们的启示还不够多吗?

[转摘]必须学好C++么?相关推荐

  1. 知道你为什么富不起来吗 十个耽误你一生的缺点 穷人杀手[网摘]

    很多人认为他们富不起来是因为自己挣的钱太少,如果他们能挣多一点钱,他们就能把这些钱节省下来,进行投资,从而实现钱生钱的良性循环.然而,这其实是一种有害无益的假设,这个理论存在的问题是,这些抱怨挣的太少 ...

  2. 北风设计模式课程---深入理解[代理模式]原理与技术

    北风设计模式课程---深入理解[代理模式]原理与技术 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装 ...

  3. c语言贪吃蛇黑方框,[求助][贪吃蛇]源程序,请教其中一个问题。

    [求助][贪吃蛇]源程序,请教其中一个问题. 源程序如下: 我的问题是,调节游戏速度时,数字为什么越大时,有时候竟然越快? #define N 200 #include #include #inclu ...

  4. 计算机跨考土壤学,[北京林业大学]2005年土壤学复试办法_跨考网

    [北京林业大学]2005年土壤学复试办法 根据学校研究生院招生处关于落实<教育部关于做好2003年招收攻读硕士学位研究生工作的通知>通知的精神,土壤学科制定了本学科的<硕士研究生入学 ...

  5. [现代诗]情诗——给网恋中人

                                                                           [现代诗]情诗--给网恋中人    我说亲爱的,从现在开始 ...

  6. python datetime 格式化_[已解决]Python中用strftime格式化datetime出错

    折腾: [已解决]Flask中的templates的html中格式化datetime 期间,用代码:@app.template_filter('datetime_format') def_jinja2 ...

  7. [全网首发]一款好看的个人主页源码

    [全网首发]一款好看的个人主页 本来之前是想着要做api管理系统的,后面又不想做了,然后就做成了个人主页,开源出来给大家使用 源代码文件:个人主页源码密码:3vxq

  8. [arcgis插件]gis二次开发 报备工具:SHP转TXT文本、TXT转SHP插件

    [arcgis插件]gis二次开发 报备工具:SHP转TXT文本.TXT转SHP插件 [2022.09.28版本更新] 1.shp转txt文件: 选择图层:选择面图层 保存路径:设置一个文件夹路径,可 ...

  9. linux fopen 段错误,fopen出现段错误,不解[已解决]

    fopen出现段错误,不解[已解决] (2012-04-10 04:10:26) 标签: 杂谈 fopen出现段错误,不解[已解决]本来在Gentoo下编的一个C库,通过swig提供一个python接 ...

最新文章

  1. HDU 2065 红色病毒问题(生成函数)
  2. NoSQL(一):NoSQL数据库、redis
  3. 如何用极致业务基础平台做一个通用企业ERP系列之二一览表培训
  4. 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
  5. Office365----Project Online SKUs Change
  6. LINUX smb共享
  7. Putty工具包简单使用
  8. 時間用function 來計算...如此精確.
  9. [转]Sandboxie 的工作原理
  10. endnote按照apa6th格式复制_使用Endnote进行文献引用
  11. 关于mac打开互联网下载应用提示的解决方法
  12. Unity 游戏实例开发集合 之 JumpJump (简单跳一跳) 休闲小游戏快速实现
  13. 6070. 计算字符串的数字和
  14. color a dir/s_揭发Wuli杨幂的quot;A字裙quot;执念!一款裙也要72变!
  15. 16、小程序OCR字体识别
  16. 读《春秋》有感之十二:偪阳之战
  17. 关于VM开启黑屏的解决方法
  18. 孤独的人最怕的是爱情
  19. —— GPS测量原理及应用复习-8 ——
  20. [CVPR 2020] RPM-Net: Robust Point Matching using Learned Features

热门文章

  1. 【刷题记录】【一维数组】魔术师的猜牌术。
  2. 四六级万能写作模板(整理)
  3. 语言-英语-英国英语:英国英语
  4. echarts如何在json地图上设置多种颜色的点位和自定义背景弹出框
  5. 使用javafx建立简单的酒店客房管理系统(二):简单登陆,连接数据库,修改数据
  6. 5800计算机交点法程序大全,FX5800计算器交点法正反算程序加入高程及隧道超欠挖...
  7. 致在研发路上努力奔跑的技术人
  8. 基于python的watershed algorithm
  9. kafka javax.management.InstanceAlreadyExistsException: kafka.consumer:type=app-info,id=consumer-1
  10. WPF 使用 SharpDx 异步渲染