主题:【原创】新时代新潮流WebOS 【1】 -- 邓侃
to be among the aforementioned two Gurus.
and
When it rains, it pours.
and
LOL
恭喜:你意外获得【通宝】一枚
鲜花已经成功送出。
此次送花为【有效送花赞扬,涨乐善、声望】
一边看两位gurus的帖子,一边回帖,一边还要写自己的帖子,真是忙不过来,昨天折腾到凌晨2:00AM才睡。今天7:00AM又醒了,看来快癫狂了。
【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等等外强中干的对手决一雄雌。
比较这两种策略,谁能最终一统江山呢?老蒋名言,“是非审之于己,毁誉听之于人,得失安之于数”,所谓“数”就是天命。
多年前从Sun的人那里听来的。当初某人(忘了是不是Gosling哥哥)喜欢上班的时候下棋。但是棋友用的机器什么型号牌子的都有,更不用说机器上的OS的版本了。该大牛一怒之下用了几个晚上写了个程序,此下棋程序竟然能在所有机器的所有版本上同时运行。后来McNealy正在找跨平台的工具,正是瞌睡碰到枕头,立马找人开发,就是Java。
还记得Sun的同学讲完上述故事后,我等仍旧对Java一头雾水。他又打了个比喻:好比市场上的磁带(那年头还没光盘呢)有大有小各种各样,只有特定的录音机才能放,Java就好比是个小巧的录音机,我卖磁带给你的时候送你个录音机,你只用插上耳机就可以听啦。我等似懂非懂也。
上花
馅儿还分层次的,包得辛苦!上花支持!
没得什么待见,后来正赶上web流行,就改行做applet了,按理说近年流行的RIA (rich internet application),Java应该是老祖宗了。倒是后来在web上不顶用,反被成就了后台的大神J2EE,这是后话了,当然这与IBM从战略需要出发的倾力支持是分不开的。其实,java是语言是平台都不如说它是一种信仰更确切。 最有意思的是以前看过的一篇把各个语言比拟成各个宗教的,其中java是基督教还是塔利班就见仁见义了。
既然这么搞了是不是给QUALCOMM的BREW开了一扇不小的门?GOOGLE的CHROME究竟有没有一个跨平台(PC和手机Android)的统一策略?
实在是让人费解,不过这个问题有点跑题。
我就是喜欢html+css+js咋地!
为什么说这么多Android,1. 借Android体系架构,解释WebOS的定位。2. Android与WebOS有没有可能融合。
有好几个人抱怨“前戏”太长。哈哈
你这几篇是前戏,羊那篇《我就喜欢》写着写着成跑题了,唉,还得想辙忽悠回来,要不都不好意思在信息版冒泡了。。。
到处都是能够拯救web应用的银蛋,到处都是能够拯救程序员的方案,俺说,就不劳驾啦,俺们就是喜欢html+css+js,这哥仨,如果web应用跑的还是http协议,如果http协议还没有质的变化,那还就是喜欢定了。
副科级木匠张三儿一句话说透了:
“他们是不是还有IDE要卖给我阿”
HTML+CSS+JS 的广阔天地
鲜花已经成功送出。
此次送花为【有效送花赞扬,涨乐善、声望】
我在你最近的帖子里已经得仨宝了~~~
我最近得宝率比较低,应该和《我就喜欢》那个帖子扯淡扯到跑偏有极大关系。。。
可怜的JVM,为了当年的初衷,还是栈架构。汽车比自行车跑的快,很自然吧。