浪潮之巅IT那点事之三——神奇的规律
“道可道,非常道”是老子在《道德经》中的开篇第一句话,这句话的意思是:万事万物其真理是可以探索并道说得出来的,但这些真理并非是永恒的,天道轮转,没有永恒不变的真理(来自百度百科)。在IT行业的发展历史中,也有一些它自身的发展规律,成为IT定律。摩尔定律、安迪-比尔定律和反摩尔定律三大定律完整地表示出计算机行业的发展规律。
摩尔定律最初的提出者是英特尔公司的创始人戈登·摩尔博士。早在1965年,他就提出,在至多10年内,集成电路的集成度会每两年翻一番。后来,他家把这个周期缩短到18个月。现在,每18个月,计算机等IT产品的性能会翻一番;或者说相同性能的计算机等IT产品,每18个月价钱会降一半。不仅如此,计算机类的相关配套产品也遵循摩尔定律,甚至增长的速度更快,例如存储容量增长速度大概每15个月就翻一番;网络的传输速率几乎可以达到每年翻一番。对此比尔·盖茨感慨如果汽车工业能够像计算机领域一样发展,那么今天,买一辆汽车只需要25美元,一升汽油能跑400公里。
摩尔定律从提出到现在已经过50年,人们多次怀疑它是否还适应时代的发展,但是直至今天,摩尔定律依然发挥着作用主导者IT行业的发展。首先,IT公司为了满足摩尔定律的规则,必须在比较短的时间内完成产品的开发。公司必须投入大量的资金,这样小公司的竞争力就非常的弱。美国在主要的IT市场都只有一大一小两个主要竞争者,而小公司的存在完全是因为反垄断法案的威慑下禁止大公司一统天下。例如计算机芯片方面,只有英特尔和AMD两家;在服务器领域,只有IBM和SUN(已被甲骨文公司收购);在3G手机处理器,只有高通、博通、德州仪器和Marvell一大三小共4家。
其次,由于有了强有力的硬件支持,以前想都不敢想的应用会不断涌现。
第三,摩尔定律使得各个公司现在的研发必寻针对多年后的市场。
任何事情都有两面,摩尔定律的存在逼迫现有的IT公司不断前行,每18个月就必须使价格降一半,否则的话,就会面临市场无情的淘汰。
安迪-比尔定律中的安迪指的是英特尔公司的CEO安迪·格罗夫,比尔就是众所周知的微软公司创始人比尔·盖茨。因为摩尔定律决定了硬件的价格每18个月就会下降一半,精明人想着过一年半再买同样性能的产品,价格便宜一半,多好的事啊!这样的情况一旦发生,那么意味着计算机的消费能力大大降低,IT产业也就变成了传统产业。
精明的IT人是不允许这种情况发生,因此安迪-比尔定律应运而生,其字面的意思就是比尔要拿走安迪所给的(What Andy gives, Bill takes away.)。通俗来讲,就是软件的升级吃掉硬件提升的所带了性能。因此虽然硬件的性能翻了一番,但是软件越来越大,越来越慢,因此人们不得不升级硬件系统以迎合日益庞大的软件系统。
因此在个人电脑工业整个的生态链上是这样运转的:以微软为代表的软件开发商吃掉硬件提升带来的全部好处,迫使用户更新机器,让惠普和戴尔等公司收益,而这些PC整机厂再向英特尔这样的半导体公司订购新的芯片,同时向Seagate等外设厂商购买新的外设。在这中间,各家的利润先后得到相应的提升,股票也随着增长。各个硬件半导体和外设公司再将利润投入研发,按照摩尔定律预定的速度,提升硬件性能,为微软的下一步更新软件,吃掉硬件性能做准备。华尔街的投资者都知道,如果微软的开发速度比预期慢,软件的业绩不好,那么一定不能买英特尔等公司的股票了。
随着智能手机的流行,Google的Android系统扮演了微软的角色,而高通、博通、三星等扮演了英特尔公司的角色,就这样,安迪-比尔定律把原属于耐用消费品的电脑、手机等商品变成了消耗性商品,刺激着整个IT行业的发展。
Google的前CEO埃里克·施密特曾在一次采访者说到,你如果反过来看摩尔定律,一个IT公司如果今天和18个月前卖掉同样多的、同样的产品,它的营业额就要降一半。IT界把它称为反摩尔定律。反摩尔定律的消极的一面是逼迫所有的硬件公司必须赶上摩尔定律规定的更新速度。因此所有的硬件和设备生产厂商都活得非常辛苦。但它的积极一面就是促进了科技领域质的进步,并为新兴公司提供了生存和发展的可能。同所有事物发展一样,IT领域的技术进步也有量变和质变两种。在科技进步量变时,新的小公司无法和老的大公司竞争,因为后者在老的技术方面拥有无与伦比的优势,但是,在抓住质变机遇上,有些小公司会做的比大公司更好而后来居上,因为它们没有包袱,也比大公司更灵活。
三大定律就像一只无形的手,时时刻刻影响着IT行业的发展,摩尔定律决定了硬件性能每18个月翻一番,安迪-比尔定律决定了在IT的生态链中,处于上游的是“看不见摸不着”的软件和IT服务业,而下游才是“看得见摸得着”的硬件和半导体。反摩尔定律则给新兴的小公司打开了一扇窗户,只要能够抓住技术创新质变的机遇一飞冲天, “金麟岂是池中物,一遇风雨便成龙”就是对IT创新驱动的最好写照。
IT行业的发展有其自身定律来决定,那么我们的学习也有一些自身的规律可循,在我们教育实践过程中,经常会遇到,很多的学生抱怨学不会软件编程,一看到各种各样的编程语言就头大,一遇到各类的错误则不知所措。,尤其是第一次接触到编程的新生,往往对于编程课程畏惧心理极大,除去学生学习兴趣不高,缺乏积极性等客观因素外,根本的原因,我觉得在教学实践过程中没有找到编程之道,缺乏对于编程规律的掌握。
在教学实践过程中,老师过多地去讲各种语法结构,各种例题,缺乏对学生计算机思维的培养,学生上机实验时,从来不想如何解决问题,或者说不用编程,这个问题解决的步骤流程是什么,学生在这些都不清楚的情况下,直接坐在电脑前,脑子里面一片空白,又如何能够学得进去,写得出来?
目前各种编程宝典秘籍满天飞,但是真正直指大道,能够修炼成仙的又有几人。对于编程的初学者来说,提倡采用“编程四部曲”来培养学生的计算机思维能力。编程四部曲第一部曲要求学生在写代码之前用自然语言描述设计思路,对于初学者来说,写得越详细越好,用学生熟悉的语言来理清自己的解决思路。第二部曲要求学生根据设计思路画出程序流程图,其目的在于将整个实现过程分解成各个阶段,简化问题难度,学生在编程调试过程中一旦出现问题,可以缩小问题出现的范围,便于更快的解决。第三部曲提倡学生撰写伪代码,利用半程序语言和自然语言混合的描述方式,书写解决过程,一旦学生熟练掌握,对于更换不同的语言编程,伪代码的通用性会起到很大的帮助。第四部曲,即在编程调试完成后要求学生及时总结,汇小集大,帮助学生养成一个良好的习惯。
以上只是一家之言,欢迎大家批评指正。