程序开发剖解圣经(002)

公开课的准备(一):

       让学生选择从C语言开始学起,我想我有充分的理由,更有充分的依据,我所需要的,只是把理由和依据进行归类。而我通常会把C和C++放到一起来说,这并非我的独创,把C/C++分开来说的,无论是编书还是演讲,我想少之又少吧。我认为C就是C++的亲娘,儿子和亲娘在一起,那是天经地义的。即便是学习C++,如果能从C学起,那你对语言的认知和掌握,将远超乎你单独从一门语言入手所获得的知识丰富的多。

     为什么要选择从C/C++语言学起呢?我这里做一个我自认为还算客观的评价,看官如果有歧义,或者认为我说的不对,你尽可以阐述自己的观点,但望你不要进行人身攻击哦。我把选择C/C++语言的原因归为如下几个。

第一、C/C++是王者语言。

不是我抬举C/C++,很多老一辈程序员有这么一句话,“只有使用C/C++的程序员才是真正的程序员”。为什么呢?

首先:C/C++自诞生到现在,30多年来长盛不衰。

我不是鄙视其他语言,你可以上网通过百度查看一下历年来的语言排行榜。这主要归功于一个特性:C/C++是高级语言中性能最高的语言,不是之一哦。而2011年对于C语言之父丹尼斯·里奇的去世, java之父詹姆斯·高斯林是这么说的:“我这一生都在用C,如果没有C,我不敢想想我现在能干什么”。

最近几年,势头很猛的java语言,曾一度在2010年以微弱的优势,超越C语言的占有率,爬至榜首,但2011年之后,C语言又重新占据了榜首, 并且逐步拉开了差距。

       今后,我不看好java语言,原因很简单,不是因为Java语言不优秀,而是属于他的王朝已经开始分崩离析了。原因是他的变种太多,延伸出来的种类太多,多到java程序员内部都自乱阵脚了。做服务器,他远不能够和C/C++的性能相比,而作网站开发的jsp,php必然成为他的最大威胁;嵌入式方面,安卓的应用软件用本是大力支持java的,但目前安卓内部已经开始讨论是继续全力的支持Java呢还是改为其他语言?因为Java之父2011年离开了谷歌。

安卓的底层架构,是用C语言来实现的。安卓系统的版本之多,且版本与版本之间的应用软件都不能通用,这对Java的发展更是一种限制,必然会对google安卓系统的发展带来强大冲击。而各大公司对于java的版权之争,也让程序界一片黯然,苹果当初没有选择使用Java进行应用软件的开发,而是重拾Object C,这有很大一部分原因。

       其次:C/C++语言的长盛不衰,还有其更深层的原因,那就是操作系统的支持。

首先是微软的鼎力支持。可以毫不客气的说,C/C++如果衰败,那微软必然会先衰败。但是在未来一二十年内,我看不出微软衰败的迹象,看看大家用的操作系统就知道了。更何况随着windows8的正式发布,微软必然更加洒脱的傲视其他系统。其次是而作为经常做服务器系统的Unix和Linux,其内核就是用C来实现的,这两个必然里应外合,继续支撑C/C++的王者之路。

       有人说Object C火爆,但可悲的是,乔布斯已经被上帝收回去处理其它业务去了,Object C 目前仅有苹果上的应用支持,这个几经起落的公司,没了乔布斯,很难断定他后面的发展会不再次出现萎缩么?就从Iphone的发布来说,乔布斯走后,苹果还有更进一步的作为么?仅平板电脑一项,苹果的平板在市场的占有率已经下滑了20%。

第二、C/C++是嵌入式语言的首选

       说这个,我必须得简要的提一下计算机技术的发展阶段,注意不是计算机的发展阶段。计算机技术的发展,主要经历了如下几个阶段:

大型机时代——>小型机时代——>网络时代——>消费类电子产品时代,从这里可以看出,消费类电子产品时代是当前发展的主流,而大家的耳朵也快被云服务所填满了。那我概括一下,可以说,现在的电子产品,是以大型服务为主的网络通信类消费产品。服务端作为大型服务器,大多使用Unix操作系统进行架构,那几乎是C/C++独霸的地方,而作为终端类的电子产品,他们有如下几个特点:

低功耗、小内存、高速度、可移动、网络化、小型化。而C/C++之于高性能小内存的特点,又独具优势。这就是为什么一说嵌入式,大家首先想到的就是C/C++的原因。

       而微软Windows8的推出,也必将引起一次革命,他甚至将会终结PC机、平板电脑和移动电子产品之间软件的二次开发。也势必会再次助推C/C++的鼎盛时期的延长,其鼎盛期再延长个一二十年是毫无问题的。而苹果的操作系统必然会开始萎缩下滑。

        也许你会说,一二十年之后呢?不好意思,我看不了这么远,但对于想进入程序界的你,你会等过了一二十年看清形势后再学习这门语言么?更何况,如果一二十年后还是有无休止的争论呢?既然这样,那让我们抓住当前吧,因为我们要活呀,还梦想着很好的活呀。

有人说,游戏开发基本不用C/C++; 那你大错特错了,几乎每一个成功的大型游戏,都难以不用C/C++去做,大家所熟知的星际争霸、暗黑破坏神、魔兽争霸、古墓丽影、FIFA等等,哎呀,不说了,说起来几乎比天上的星星都要多了。

第三、我们身边用C/C++开发的产品

     既然嵌入式、游戏开发都离不开C/C++,那比较火爆的多媒体和一些网络工具呢?这更是C/C++的天下了,随便举例如:

图形图像工具:PhotoShop, Adobe Reader,3DMax、DreamWeave、Flash、AutoCAD等。

网络工具:QQ、IE、传奇、flashget等。

多媒体播放工具:暴风影音、金山影霸、WinMap等。

      实在是太多了,为什么会如此之多呢?归根结底还是因为Windows系统和Linux系统的底层处理函数都是用C/C++封装的,用其他语言做起来,必须进行复杂的二次封装,效率当然就低了。更何况,今后的软件市场,是向着以服务为主的方向发展。成熟的通信业务,大多是C、C++开发出来的成熟的东东。

第四、C++遭遇的“不公平”待遇

       我想单独把C++来拉出来为其鸣不平, C++自诞生以来,遭到了诸多不公平的待遇,可依然没把他打倒,反倒是在不停地争论之中,其他语言却一路倒塌。甚至于很多语言的推崇者,为了大力的推自己所用的语言而肆意批判C++,拿自己所推崇的语言的优点来和C++的缺点去做比,试图以此来显示其所推崇语言的优越性,可批判来批判去,反倒显示出来他们自己对C++的无知,我们来看一下它所遭受的不公平待遇:

1、使用C++还是pb            1994~~1997

2、使用C++还是VB          1997~~1999

3、使用c++还是dephi     1999--2001

4、使用c++还是java       2001-?

5、使用c++还是c#        2005-2010

6、使用C++还是object c     2010-?

第五、外包市场分析

       为什么要分析市场呢?因为有了市场,才会有程序员的用武之地,老板是要挣钱的,不可能是把你叫过来,写个程序让他消遣的。一种语言的市场占有率,决定了从事这门语言的程序员的走向和工资的高低。

       程序员几乎都知道,平均来说,C/C++程序员拿到的工资会比其他语言拿到的工资高,许多人把其归为C/C++语言比较难学,令人望而却步上。这不是根本原因,谁不愿意为了高工资而努力学习一下呢?归根结底,还是因为软件的市场占有率,说起软件,我们不得不提外包,什么是外包?这个概念太广泛了,我不想做详细解释,但外包绝对不是把软件开发单单包给你做就了事。可以说,我们从事的软件开发,几乎大多说都和外包密不可分。

        我国的外包市场,主要面向对欧美和对日外包,对欧美外包主要使用的是C/C++语言类,对日外包主要是Java语言。在这两类外包公司混迹过的程序员会发现,对欧美外包做起来远比对日外包舒服、且价值高的多,对日外包又累,又烦。我不愿意鄙视日本德贪婪特性,但现实就是这样,不鄙视他都不行。更何况,随着钓鱼岛之争,对日外包的份额可能会陷入停滞发展阶段。

       好了,说了这么多,是否坚定了你学习C/C++的信心呢?选择从C学起吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值