记得以前PC的种类还是很多的, 虽然IBM/X86 PC最后胜出, 但是同时出现的还有Apple和很多小型号, 估计可能有人也在Z80系列上面动过脑筋. 不过当时是PC和主机(MainFrame), 小型机等等在搏斗, 没有窝里斗的问题.
看看现在市场上面的手机, 硬件虽然基本上被ARM的各个系列统治, 但是OS品种太多了, 主流一些的有SymbianOS, WM, Linux, PalmOS等等, 此外各个手机厂商都有自己的传统OS: 日系, 韩系, Moto…
这种多样性对于保持市场竞争, 促进技术发展很有帮助, 但是对于应用开发人员决不是一个好事情: 为了保证应用的通用性, 争夺市场和用户. 一个应用不得不开发各个平台的版本, 举个应用软件的例子, 有个国内软件叫做”掌上书院”, 同样的软件开发了SymbianOS, WM和Java版本. 再说个系统软件的例子, 开源软件gnubox, 其版本包括:
- SymbianOS – UIQ的各个型号. 包括SE P80X,90X, P910, Moto A1000,920,925等, 开发了不同的版本;
- SymbianOS – S60的各个小版本. (1)S60v1, 包括N7650; (2)S60v2, 包括N6600; (3)S60v2FP1, 包括N7610, N6670等; (4)S60v2FP2, 包括N6680/81/82; (5) S60v2FP3, 包括N70, N90
而这些平台也仅仅是众多手机平台中的很小一部分, Sun给出一个Java手机列表, 列出了主流手机的基本信息, 估计有几百种的样子和30家通过认证的厂商列表. 如果计入WM和Linux手机, 简直不敢想像啊…
虽然目前应用开发的情况已经比PC混战时代强了很多, 程序设计人员可以使用高级语言开发软件; 以前是汇编语言. 但是面对现有的多种平台, 以及不断出现的新平台, 程序员还是力不从心. 不少开发人员因此选择了Java, BREW或者WIPI(韩系), BREW应用需要Qualcomm的测试, 或许兼容性会好一些, 但是成本也更高; Java的情况就不乐观了, 最早的Personal Java现在还有使用, J2ME热潮正起, J2SE的嵌入式版本又要冒头…
真是一个纷乱的世界, 混水摸鱼, 急流勇进还是风紧扯乎呢~