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