主题:【原创】新时代新潮流WebOS 【1】 -- 邓侃
【4】Java逐鹿中原
Figure 1. Java Virtual Machine
Courtesy http://www.javacoffeebreak.com/articles/inside_java/dec99figuretwo.gif
为什么Android需要Dalvik?
猛一看,这个问题似乎很幼稚。回想1990年代初,Sun Microsystems的CEO,Scott McNealy给James Gosling布置一个奇怪的任务,“Give me something cool”。1995年,James Gosling完成任务,他的作品是Java。当人们问他,与C/C++相比,Java的优势在哪里?他的回答很简介,“write once,run anywhere”,也就是说,Java的号召力在于跨平台,如图一所示。
很多人认为,既然Dalvik也是一个虚拟机,那么它的号召力也在于跨平台。
不要忘记,Android的Kernel是Linux,不支持Windows和其它OS。所以,Android Dalvik的任务并不是支持跨平台。再加上Android统一了Linux Kernel和MiddleWare的APIs,所以从使用者角度讲,即便他们的开发语言是C++,也不会有不同版本和APIs的困扰。
既然不存在跨平台和跨版本的需求,Dalvik存在的理由是什么呢?
1995 年Java横空出世,最初的号召力在于跨平台。但是程序员们很快发现,Java语言使用起来非常方便,体现在安装方便,Java语法简单明了,Javadoc查找快捷。于是很多原先是C/C++的程序员纷纷开始使用Java。程序员多了,用Java开发的应用程序随之迅速繁荣。应用程序多了,反过来有促进更多的程序员使用Java。
Java成功的秘诀是什么?有人戏言,是Java tutorial和javadoc写得好。戏言归戏言,但是上手快,容易用,的确是Java的魅力。21世纪什么最宝贵?人才!对于计算机语言而言,谁能吸引更多的程序员,谁就能拥有更多更好的应用程序,谁拥有更多更好的应用程序,谁就能赢得更大的市场,谁能赢得更大的市场,谁就更有可能成为最终胜出的王者。
Android为什么投入巨大人力物力去研究开发Dalvik?因为Android需要一种形式上与Java非常相似的语言,去吸引更多的程序员。
Figure 2. 老蒋与老毛,历尽劫波兄弟在,相逢一笑泯恩仇
Courtesy http://www.cec365.cc/news/edit/UploadFile/200873152910714.jpg
为什么Dalvik不遵循Java规范,不参与Java Community Process(JCP)?
作为虚拟机,Dalvik的实现方式与JVM不同,所以从法律上来说,Dalvik没有义务服从Java规范。Dalvik延用了Java的语法规则,但是 Sun Microsystems没有为Java的语法规则申请专利,所以,Sun Microsystems即便有强制Dalvik服从Java规范的愿望,也没有法理上说得通的理由。
Sun Microsystems控制不住Android,要不要参加自然由Google自己作主。问题是,为什么Google不主动参与Java Community Process (JCP),借这个渠道力推Dalvik成为下一代JVM的标准,从而扩大Android的市场份额呢?
最可靠的答案,估计只有Google高管才知道。坊间的说法有两个版本,1. Google难得理会JCP拖沓扯皮的民主协商。2. Google推广Android的战略不同于Sun Microsystems推广Java的战略。下面详细解说第二个版本。
比较老蒋和老毛,撇开政治理想不谈,两个人都想统一中国,但是战略不同。1920年代,老蒋正式登上政治舞台时,中国当时的局面是军阀混战,势均力敌。老蒋的战略是拉一派打一派,合纵连横,通过权谋先实现名义上的统一,然后徐而图之,通过各种手段逐个打击异己,壮大嫡系,期望最后达成真真正正意义上的统一。而老毛的战略是从建立根据地入手,搞武装割据,然后寻找机会扩大根据地,最后农村包围城市,打过长江去,解放全中国。
Sun Microsystems力求尽快推广Java,所以以它为盟主,设立了JCP这个机制,通过各方妥协,制订出行业标准。一方面借JCP推广Java和 JVM,另一方面,Sun Microsystems私底下的小算盘是,鉴于自己在OS方面,尤其是虚拟机方面的技术优势,在JCP这个貌似各方平等的委员会,自己可以掌控更大的话语权,从而保障自己的利益。
而Google呢?凭借Android的技术优势,凭借把整个Android源代码统统公开的骑士风范,通过 Open Handset Alliance(OHA)争取更多手机制造厂商,采用Android作为它们手机的OS。同时,借助Dalvik,吸引广大的Java程序员,为这些手机开发更多的应用程序,从而促成手机制造商和应用开发商双赢的局面。一旦这个双赢的局面成为现实,就会有更多的手机制造商,和Java程序员入盟。最后,与Symbian等等外强中干的对手决一雄雌。
比较这两种策略,谁能最终一统江山呢?老蒋名言,“是非审之于己,毁誉听之于人,得失安之于数”,所谓“数”就是天命。
- 相关回复 上下关系8
🙂Java OS,Sun现在垂死挣扎的最后一根稻草了 2 yueyu 字286 2009-03-05 11:26:33
🙂sun + apple ? 1 羽羊 字40 2009-03-05 17:42:04
🙂JavaFX Mobile 1 邓侃 字89 2009-03-05 15:29:24
🙂【原创】新时代新潮流WebOS 【4】
🙂好棒的文章,解了我多时之惑,邓大可以为师耶 1 戈山 字0 2009-06-25 23:23:52
🙂兼容,然后扩展 3 美人他爹 字187 2009-03-04 22:56:00
🙂透彻 1 邓侃 字19 2009-03-05 02:53:48
🙂俺看Dalvik不是什么好招,纯粹是机会主义。 5 素里太守 字198 2009-03-04 20:33:39