滚滚长江东逝水,浪花淘尽英雄。虽说是个人英雄的时代已经成为过去,但我们仍然不能对这样的榜样们有所忘怀,他们是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/C++是程序员必须掌握的语言吗?相关推荐

  1. 程序员应该学习C语言的十个理由

    程序员应该学C语言的十个理由的文章说:每个程序员在他们的编程事业生涯当中都应该学C语言.C语言有太多不容忽视的好处.它不仅可以带来更多的工作机会,而且也会在总体上让你对计算机有更多的了解. 1)相对于 ...

  2. 好程序员Java分享SQL语言之索引

    好程序员Java分享SQL语言之索引,前言:本章我们将学习MySQL中的索引,本文将从索引的作用.索引的分类.创建索引的语法.索引的使用策略以及索引的实现原理等方面带大家了解索引. 索引的作用 索引的 ...

  3. 程序员怎么看待C语言?最伟大?最落后?

    一,前言 对我来说,C语言应该可以算得上是世界上最伟大的编程语言.全中国口气最大的程序员,业界称之为"垠神",曾经发过文章吐槽过业界各种主流的编程语言(对Java,的Python稍 ...

  4. 直击招聘程序员面试笔试C语言深度解析,直击招聘 程序员面试笔试C++语言深度解析(直击招聘) pdf epub mobi txt 下载...

    直击招聘 程序员面试笔试C++语言深度解析(直击招聘) pdf epub mobi txt 下载 图书介绍 ☆☆☆☆☆ 李春葆,李筱驰 著 下载链接在页面底部 发表于2021-05-18 类似图书 点 ...

  5. 非专业c语言,非专业程序员如何学好C语言

    原标题:非专业程序员如何学好C语言 什么是C语言?怎么学好C语言?C语言能做什么? 想到那些对C语言刚入门的朋友,对很多知识还一知半解,今天就给大家推荐一本书! 你以为我说的是这本? 骗你的,怎么可能 ...

  6. 【初涉C语言】程序员欢迎来到C语言的世界!

    计算机发展史 机器语言 所有的代码里面只有0和1 优点:直接对硬件产生作用,程序的执行效率非常高 缺点:指令又多又难记.可读性差.无可移植性 汇编语言 符号化的机器语言,用一个符号(英文单词.数字)来 ...

  7. go语言和java比_Go VS Java:一位资深程序员对两种语言的解读

    导读:对于软件开发的编程语言,其实没有万能灵药. 本文作者详细介绍了他使用Java和Go这两种编程语言,一个是传统语言,一个是新兴语言的工作方式. Go VS Java 实话说,我很喜欢Java这门语 ...

  8. @程序员,为什么选择 Racket 语言?

    Racket 作为众多 Lisp 方言中的一种,是一种可编程的计算机程序设计语言 ,同时也是一个程序设计环境.其也曾一度被列入教科书的素材,但是对于这门小众化语言,是否有必要上手? 作者 | beau ...

  9. python语言为何不受待见_程序员为什么讨厌这些语言

    全球著名的 IT 网站 Stack Overflow 根据数百万开发者项目标签的使用频率,发布了一份编程语言的调查报告,试图找出最不受欢迎的编程语言.没想到开发者最想规避的编程语言中,PHP.Obje ...

  10. 1024这天,马蜂窝程序员选出的最好语言是…

    最好的语言是什么? 能带给别人快乐的语言,就是最好的语言. 在马蜂窝,程序员们希望用幽默的方式的方式促进沟通,撕掉程序员的标签,并且在笑声之外,直面工作中的问题,推动技术为马蜂窝带来更多改变. 能实现 ...

最新文章

  1. poj1564 Sum It Up dfs水题
  2. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)
  3. 如何使用Javascript 访问local部署的YAAS service
  4. 运营是一个产品价值传递的过程,互联网营销
  5. jmeter 控制偏离_Jmeter(二十) - 从入门到精通 - JMeter监听器 -下篇(详解教程)
  6. CentOS 6下SSH限制IP和用户登录
  7. Kotlin基础学习第6章—高阶函数
  8. 1.Docker技术入门与实战 --- 初识Docker与容器
  9. 社区口碑营销案例分析
  10. 计算过去的某天距离今天多少天
  11. 这10个对冲基金策略你必须烂熟于心
  12. 【数据分析】如何构建指标体系 设计一份优质报表
  13. KernelBase.dll中有未经处理的异常,求助大神!!!
  14. 【微信小程序开发】(一)开发环境和小程序公众号申请
  15. 【微信云开发】简记操作:删除云开发环境
  16. 使用java进行pdf转word实战
  17. 用for循环解决鸡兔同笼问题:上有三十五头,下有九十四足,问雉兔各几何?
  18. 算法和刷题——二分法
  19. Java生成唯一主键
  20. Windows删除文件的打开方式

热门文章

  1. 程序员完全没时间提升自己该怎么办?
  2. IP反查网站,ip反查接口,旁站查询接口大全,通过IP查域名汇总
  3. iOS APP真机测试及上架App Store流程记录
  4. pygame开发飞机大战外星人游戏
  5. 这些管理学定律你知多少?
  6. 栋的周评 | 第七回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)
  7. 中央民族大学计算机排名2015,2015年985大学排名排名汇总
  8. 基于osp平台和Echarts的折线图案例
  9. OBS 进阶开发 之 新增插件
  10. 小甲鱼课后作业_教学常规聚养料,润物无声花更艳 ——记长小教师一日教学常规点滴工作...