昨天看完李建忠的TechEd2011《WINRT》讲演,随手写了点口水文章记录下来。
回到过去看未来(1)
N多年前有各种大中小主机,那是主机服务器操作系统百花齐放各个厂商各异的岁月。
N多年前有各种品牌的PC。但核心CPU、主板、内存、硬盘都是标准。INTEL的CPU和微软的WINDOWS寡头统治了这个领域。
N多年前有各种品牌的PC级服务器。也是INTEL 服务器级CPU和微软WINDOWS SERVER在进攻。但情况有点变化,Linux泛起了,而且侵入了这块领域。
SUN公司发起自Solaris服务器级操作系统和SUN主机。比IBM\HP之类要轻量级,比INTEL、微软之类重量级。SUN期望打入IBM的市场。而IBM准备转型做服务,通过咨询服务和项目总包来牵引软件产品和硬件产品的销售。
JAVA的发明和身世蹊跷极了,原本是想作为智能(不用嵌入式编程)家电的软件核心。大家都知道,在嵌入式开发这块一直是芯片各异(想象家电、医疗设备、汽车、工业流水线这都是嵌入式开发芯片),虽然大多都用C开发已经提升了不少可移植性,但编程要求的稳定性和移植性仍然难度很高。JAVA发明的目标就是降低编程要求和移植性。
想象当年手机领域,爱立信、阿尔卡特、索尼、LG、MOTO、NOKIA等等,以及繁多变种的山寨机与一体化解决方案的联发科,以及国内的熊猫、波导、联想、TCL等等。那时候有多少种芯片,那时候又没有如今的WP、iOS、Android、Symbian手机操作系统。那时候的手机开发,几乎都是嵌入式编程,编程要求和移植性确实难度很大。和嵌入式设备是一样一样的。
JAVA没有出现在手机纷乱的年代,嵌入式开发至今这个领域也没有多少迈入智能化或者受到广大开发者的热捧以及VC的追逐。但一切的技术先为娱乐服务,这个N多案例跌扑不破的道理一直是好使的突破口。JAVA可以做Applet动画。这在都是文字,甚至只能是静态图片的互联网时代,这是多么需要的啊。互联网发展初期需要的是眼球,如何吸引大家来上网(如同电商如今亏本吸引人们网购)是个大事。JAVA占了先机,JAVA火了。虽然后来很快出现了gif图片、FLASH、眼花缭乱的CSS+JS、以及现在更牛的HTML5。
于是Applet倒了。但JAVA很快赶上了另外一件大事,互联网的兴起,要求网站服务器端WEB开发编程。现在面临两个问题,一个是当年WEB开发技术很单一,CGI是主流;另外一个是服务器硬件和操作系统太多(当年搭建网站还没有多少人使用PC级服务器,当年WINNT还不入服务器级的开发者的法眼)。而JAVA在发明初衷就是为了跨各种嵌入式芯片,所以与生俱来的可移植性考虑。而且JAVA上赶着形势大好赶快支持WEB开发(Applet本身就是嵌入在网页中的)。于是在PHP\RUBY\PERL\ASP还是发展期的时候JAVA已经赶上了形势。
而手机,在2000年的时候我已经有了一部手机。说明在全世界各地手机已经很普及了。而手机也是芯片各异。SUN看中了机会,于是一口气出了J2EE、J2ME。(奇怪,嵌入式开发也用J2ME?)。另外,虽然出了J2SE,但PC是WINDOWS天下,对于做服务器出身的SUN,既没有经验也不看不起,所以J2SE只是装装门面而已。
如今,Linux已成气候,IBM为了推动自己服务转型,所以大量采取业界开放标准,大力推动JAVA和LINUX的发展。这使得这两项技术越来越能接受的住企业应用。IBM亲自做表率在自己的产品中使用这两项技术,而其他的服务器厂商也亦步亦趋的跟进。于是纷杂的服务器端OS乱像消失了。所以说跨服务器OS的需求减少了(几乎现在就是WINDOWS和LINUX两大阵营了),但JAVA作为应用级开发语言却已经承载了太多应用,而且很成熟很多实际成功案例有大量的社区和开发人员,所以JAVA仍然流行着并仍然是主力。
近些年,在服务器端市场,WindowsServer不断扩充自己的份额,而Linux也在更大型应用中占据主力位置。JAVA在服务器端编程遭遇了许多WEB开发技术如PHP、Ruby等。而规模量变引起质变,所以服务器端市场从硬件到软件现在都在研究云的硬件、云的操作系统和中间件。在新的一个层面而非现在传统服务器硬件和传统服务器操作系统层面,所以技术原理、要求也和现在一般的服务器、服务器操作系统的竞争不一样了。
如今,三大手机OS:WP、Android、iOS三雄并起。WP是WINDOWS内核、.NET虚拟机、上面是各种开发语言以及展现层开发技术。而Andorid也是LINUX内核、JAVA虚拟机、上面是JAVA开发语言和展现层开发技术,而iOS是类Linux内核,上面没有用虚拟机,而是采用Object-c作为开发语言。而Object-c虽然不像C#、JAVA是应用级语言那样易用,但傍于苹果各种硬件的大销售热卖以及AppStore的发财神话,所以即使有困难开发人员也咬牙上了。当年Symbian也是手机操作系统,用的类似Object-c的C++,但一直被开发人员诟病为难开发,主要还是NOKIA在开发社区、教育市场没有狠命投入,在赚钱通道上也没有琢磨实现AppStore,所以Symbian缺少应用而萎缩。
如今,三大手机操作系统从手机反控制到平板电脑,未来更会反控制到PC。而三大手机操作系统更会进入游戏机、家电(如TV等等),就是过去嵌入式设备的领域。所以说智能(带操作系统而非嵌入式芯片开发的)设备也会被这三者启动。而这三者支持的大量传感器以后也会更加普及应用到各种智能设备上,于是带有移动功能、带有传感器功能的各种智能设备应用纷纷而生。所以手机、平板、PC、游戏机、家电、汽车、医疗设备等等等,真的是移动无线+物联网(传感器)+云。