Posted on 2007-03-16 13:51
鋒出磨礪 閱讀(334)
評(píng)論(2) 編輯 收藏
EJB用自己的悲劇人生警告Sun,不可對(duì)新技術(shù)的推廣掉以輕心,但Sun還是再次犯下同樣的錯(cuò)誤。與Microsoft和Intel成功的商業(yè)推廣策略截然不同的是,Sun 完全沒(méi)有估量到,JSP作為一項(xiàng)成功技術(shù)的價(jià)值和影響力,在JSF的推廣上,出現(xiàn)了令人痛心的失誤。如果JSF以JSP3.0的名義推出,那么JSF的日子恐怕要比現(xiàn)在好過(guò)得多。
??? 1. JSF沒(méi)有站在JSP巨人的肩膀上
??? 前文說(shuō)過(guò),EJB是Sun的傷心往事,它用自己的悲劇人生,警告Sun,不論技術(shù)也好,商務(wù)也好,凡事應(yīng)該有一個(gè)全盤的規(guī)劃,再也不能想到什么是什么了。一項(xiàng)好的技術(shù),如果不加以適當(dāng)?shù)耐茝V,最后可能逃脫不了被束之高閣的命運(yùn),大把的資金投入,自然也難免竹籃打水一場(chǎng)空。
??? 當(dāng)然,如何進(jìn)行商業(yè)運(yùn)作,Sun比我高明得多了,似乎輪不到我在這里說(shuō)三道四,不過(guò),Java已經(jīng)不單單屬于Sun了,Java已經(jīng)成為全世界的Java,所以,所有的Java程序員,都有發(fā)表自己意見的權(quán)利。未必都是真知灼見,但Java世界就是因?yàn)橛羞@些不同聲音的存在,才顯得無(wú)比的精彩。
?? 其他的技術(shù)我不敢妄加評(píng)論,就JSF這項(xiàng)技術(shù)而言,Sun的商業(yè)策略實(shí)在是不敢恭維。在JSP已經(jīng)深入人心的時(shí)候,為什么不繼續(xù)沿用JavaServer Pages的這個(gè)如雷貫耳的名稱,而要標(biāo)新立異地推出一個(gè)JavaServer Faces的怪物呢?你看人家Microsoft,在ASP流行開來(lái)之后,推出ASP.NET,是多么的順理成章。?
??? 暫且不論這兩項(xiàng)技術(shù)的區(qū)別有多大,就沖著似曾相識(shí)的名稱,Microsoft就讓大批的ASP用戶,自覺(jué)自愿地加入ASP.NET的陣營(yíng)。沒(méi)有任何抵抗,Microsoft兵不血刃,不費(fèi)一槍一彈就完成了從ASP向ASP.NET的過(guò)渡。
??? 同樣的策略Intel也曾使用過(guò)。第一代“奔騰”芯片推出后,獲得了巨大的成功,“奔騰”一詞,一時(shí)間名噪天下。Intel看到了這一點(diǎn),并且立刻明白了該怎么做,所以,當(dāng)下一代芯片制造出來(lái)時(shí),Intel完全沒(méi)有在命名上費(fèi)什么腦筋,直接冠以“奔騰II”的名字,馬上令一大批“奔騰”的愛好者趨之若騖。此后,“奔騰III”“奔騰IV”,Intel將“奔騰”一詞的所有油水都榨干了,才心滿意足地構(gòu)思下一個(gè)名字。
??? 相比之下,Sun則完全沒(méi)有估量到一項(xiàng)成功技術(shù)的價(jià)值和影響力。令多少對(duì)手眼紅的JSP背后龐大的用戶群,Sun卻視若無(wú)物,不知道Sun是沒(méi)有看到這一點(diǎn)呢,還是不屑利用這一優(yōu)勢(shì)。
??? 不管怎樣,當(dāng)JSP如日中天時(shí),不知借JSP之勢(shì)點(diǎn)燃JSF的大火,反而暴殮天物,另起爐灶,Sun簡(jiǎn)直就是在自毀JSF的前程。也許Sun主觀上并不存在這樣的故意性,但客觀上造成了這樣一種局面,也是不可原諒的失誤。
??? 2. JSF唯有一切從頭再來(lái)
??? 如果JSF沒(méi)有叫做JSF,而是叫做JSP 3.0,情形會(huì)是如何呢?
??? 可以想見,首先,大批的JSP愛好者會(huì)蜂擁而至,慶賀JSP的新版本;然后,一批“牛人”們很快發(fā)現(xiàn),JSP的新版本,引入了他們期待已久的組件模型和事件驅(qū)動(dòng)模式,JSP終于有了和ASP.NET抗衡的資本;接下來(lái),“牛人”們必定奮筆疾書,以超凡的熱情四處撒播JSP 3.0的種子。
??? 于是,網(wǎng)絡(luò)上、論壇里,到處充斥著為JSP 3.0唱贊歌的文章,JSP 3.0成為炙手可熱的名詞,而Sun專家們借JSP 3.0的名義推銷的JSF組件模型和事件驅(qū)動(dòng)模式,說(shuō)不定現(xiàn)在已經(jīng)成為Java Web編程的新貴。
??? 將JSF以JSP3.0的名義發(fā)布,絕非戲言,是完全可行的。從技術(shù)上來(lái)看,JSF是建立在Servlet/JSP基礎(chǔ)之上的,和JSP有著天然的聯(lián)系,將JSF作為JSP3.0的一個(gè)嶄新的擴(kuò)充部分,隨JSP3.0一起發(fā)布,即符合從JSP到JSF的平滑過(guò)渡的要求,同時(shí)也能滿足程序員對(duì)于JSP3.0新特征的期待。
??? 實(shí)際上,JSF和JSP融合的趨勢(shì)越來(lái)越明顯,例如在JSF1.2版本之前,JSP和JSF各有一套獨(dú)立的表達(dá)式語(yǔ)言(EL,Expression Language),而從JSF1.2開始,這兩套不同的表達(dá)式語(yǔ)言已經(jīng)統(tǒng)一為Unified EL,并且從JSF和JSP規(guī)范中分離出來(lái),自成一體。所以,讓JSF搭上JSP的快車,一起前進(jìn),其實(shí)是很自然的事。
??? 可惜,這些只能發(fā)生在Sun的夢(mèng)里了。JSP與JSF,一字之差,Sun將一項(xiàng)頗具潛力的Java Web框架技術(shù),親手打回到娘胎中,讓其以一個(gè)初生嬰兒的身份,光著身子降臨到Java Web世界。這個(gè)本來(lái)可以衣著光鮮地與ASP.NET一起獨(dú)步江湖的漢子,現(xiàn)在唯有恨恨地拋下一句“君子報(bào)仇,十年不晚”,然后黯然離去了。