很久沒關心Eclipse基金會的動作了,只是不斷在使用,不斷在開發(fā),不斷在教別人使用和開發(fā),然后就是等待Eclipse的下個版本。那么,Eclipse基金會究竟在干什么呢?我不想寫篇很長的Blog了,只是隨便談談最近的幾個映像:
1。Eclipse 3.3如果我的推算沒有問題的話,今年的第三季度我們就可以拿到正式版的3.3了,3.3好像沒有什么太大的動作了,我只記得3.2的時候搞了一個MDC(百萬下載挑戰(zhàn)),據(jù)說在預訂一半多的時間里就實現(xiàn)了百萬下載量。回頭看看Firefox好像幾乎沒花什么精力下載量就達到千萬級別了,不是一個類型的軟件確實沒法比啊。
看了3.3M6的一些表現(xiàn),F(xiàn)orms包的外觀有些改善,但是不知道有沒有結構上的調整;Application擴展點的API改了很多,名字也比原來合理了,不過最近正在開發(fā)中的一些項目又要重構了,呵呵;最令人激動還是View終于可以折疊到一邊了,而不是原來那樣最小化了之后還占很多位置,而且最大化也更酷炫了,得益于View的新折疊方式。
2。越來越重視MacOSXSWT 3.3的“New and Noteworthy”可以看到這個趨勢。記得我去年與Sun公司的James Bai談到Eclipse與NetBeans時,我就表達了自己的觀點,好像Blog里面也有。事實上,“慣用法和外觀”在MacOSX系統(tǒng)上的重要地位是沒用過蘋果電腦的人無法想象的,Eclipse在Windows確實很漂亮,但是之前的版本在MacOSX上還是遠不如NetBeans的。我自己也遇到了這樣的問題,我們在Windows上開發(fā)有“助記符”的問題,比如文件菜單,應該寫成“文件(&F)”,這樣F下面有條小橫線,用戶按Alt-F就可以直接打開文件菜單,但是在Mac上沒有這樣的設計,Eclipse展示出來仍然是這樣,就顯得有明顯從Windows移植的痕跡。除了Mac的菜單外,Mac的窗體、Mac的工具欄、Mac的任務欄、Mac的快捷鍵都有很多與Windows不同的地方,Eclipse要加油了啊~~
回到說SWT,3.3在MacOSX上有了不少改善,增加了TrayItem,增加了彩色鼠標指針,還改了一個reparent的bug。
3。Ajax是大方向前段時間炒作了一條新聞,說Eclipse基金會同時發(fā)布了三款用于Ajax開發(fā)的插件,這個說法是欠妥的。因為這三個項目都是很久以前就有的,現(xiàn)在把他們拿到一起來說,根本原因就是為了回應現(xiàn)在炒作很兇的Ajax。其中“Dynamic Languages Toolkit”沒什么稀奇的,NetBeans也已經做了,但我相信Eclipse在易用性方面一定又是做到最好;“Ajax Toolkit Framework”也就是ATF是三者中最紅的,現(xiàn)在要合并進WTP了,是為Dojo、Rico、Zimbra這些API的開發(fā)人員提供集成,套用行話說,就是“Ajax開發(fā)人員終于有了自己的IDE了(歡呼+大笑)”;唯獨只有“Rich Ajax Platform”(RAP)最值得一提。
這是一個與眾不同的項目,非常具有前瞻性和遠見性,這也是Eclipse一貫的做事風格。RAP的縮寫是來自于RCP的,RCP已經家喻戶曉了,很多知名項目比如Lotus Notes 8和RSSOwl都是基于RCP的,RCP的程序員也很多,“如遇危難,RCP可以將兵!”但是面對Ajax一夜來襲,很多Rich Client應用程序開始希望自己能夠搬到Web上去的,可是怎么搬呢?把Java代碼翻譯成javascript嗎?我們都知道真正偉大的程序員都是在Java平臺上的,而Java程序員大都不喜歡javascript這樣高效但不嚴謹?shù)娘L格,尤其是不好調試這一項,使得javascript項目的成本隨規(guī)模成幾何級數(shù)遞增,這種事情放在Google這樣錢花不掉的公司身上還行,但是要放在小公司上就捉襟見肘了。
所以行業(yè)內的專家經過這幾年的反復斟酌,得到的結論是,終極的解決方案還是要讓程序員手寫Java代碼,出來的卻是javascript效果。那如何實現(xiàn)這樣的轉變了,有兩個方案。一是寫一個編譯器,首先給出一個限定的Java API庫,只有utils包、io包、lang包的少數(shù)功能和標準控件,最好是SWT式的,大家都很習慣了,如果程序員僅用這些API(和自己編寫的API)寫代碼,就可以被這個編譯器絲毫不差的編譯成javascript代碼,在本地執(zhí)行和在Web上執(zhí)行達到相同的效果,這樣完全可以調試,也可以擴展這些API。這種解決方案以Google的GWT為代表。二是寫一個服務器,這樣就可以用全套的Java API,但是不能用AWT和Swing,再給出一組標準控件,(最好是SWT式的,大家都很習慣了),程序員所寫的Java代碼其實是在服務器上運行的,服務器根據(jù)這段代碼的操作,把相應的結果反饋給Client端也就是瀏覽器,而瀏覽器以javascript的方式展現(xiàn)和接收事件。這種解決方案的代表,就是RAP。
還要說的一點就是后者其實有個幫手,也算很多Ajax網站的訣竅,就是JSON。JSON是把一個Map(名值對組)序列化成XML的工具,如果這樣解釋好像沒什么新奇的。。。那么好,應廣大JSON粉絲的強烈要求,我把JSON的解釋改成:“JSON就是一個你在服務器端把JavaObject給它,就能在瀏覽器端取出一個javascript object的神奇而又強大的工具,而它的實現(xiàn)機制,只不過是把一個Map序列化成XML”!
這兩個方案有明顯的差別,可以說根本不是一種技術,但是他們很可能都有前途,都是王者之道,一個齊桓公一個晉文公,都有機會成為霸主,也完全有可能鼎足而立,開發(fā)人員選擇誰,完全是根據(jù)項目的情況,甚至有可能。。。開發(fā)一個聯(lián)合的方案。。。把GWT封裝成一個Eclipse RAP的插件。
4。看看Summer Of Code不小心點進了Google的Summer Of Code,之前就已經關注過一些,但是好奇心還沒有驅使我點Eclipse Foundation進去看,今天終于按奈不住了。。。先簡單介紹一下Google SoC[http://code.google.com/soc/],其實是這樣的,很多開源軟件基金會想花錢請一些比較牛的大學生來開發(fā)一些代碼(這些都是最著名的開源軟件,也是最肥的),但是不知道去哪里找大學生。Google的影響力比較大,所以就挑了個頭,先把這些開源項目的ideas登上去,讓學生們挑,學生再把自己的簡歷投給Google,Google安排一個統(tǒng)一的時間由開源組織去選,選中的學生由Google撮合雙方見面或不見面開發(fā),主要是利用了學生在暑期的80天空閑時間,然后老板把錢付給Google,Google付給學生,中間40天的時候Google還要搞個“期中考試”。。。看了一下Eclipse的ideas,挺驚訝的,雖說這不是Eclipse項目發(fā)展的主流,但是也從一定程度上顯示了Eclipse的不小野心。
其中我最感興趣的是“Eclipse Open Office Integration”,它旨在把OpenOffice.org的組件嵌入到Eclipse的編輯器中去,而在此之前,Eclipse已能方便的嵌入Microsoft Office的組件了(得益于ActiveX)。這樣的功能如果能實現(xiàn),對我們平時的開發(fā)也是很有好處的。另一個我感興趣的就是“Eclipse install based manager”,現(xiàn)在的RCP沒有自己的安裝程序,只是在Eclipse的幫助文檔中有一篇制作RCP Install的指南,但這是遠遠不夠的,我花在做安裝程序上的時間太多了,不值得,因為這些都是共性的工作。除此之外,我還對“RCP real-time collaboration based upon ECF and Google Talk XMPP-based messaging service”感興趣,如果Eclipse不做,我們也要做這樣的功能。最后要提到的一個好玩的功能就是“NetBeans in Eclipse”,兩種插件接口對Java陣營還是不利的,如果我為NetBeans編寫的插件能夠跑在Eclipse上的話,那NetBeans的新特性就會都變成Eclipse的新特性了(夠自私了吧!)
5。RCP仍是無冕之王Eclipse官網的黃金位置還是留給了RCP,RCP在全球還是有大量忠實粉絲的。不久前發(fā)現(xiàn)匯豐銀行某個分行的CRM系統(tǒng)是基于RCP的(客戶端),不久前又發(fā)現(xiàn)英國一個咨詢公司專門提供RCP開發(fā)的咨詢業(yè)務,不久前IBM正式進入公測階段的Lotus Notes 8/Hannover也是基于RCP的,只是為了外觀重寫了Workbench,不久前。。。被人發(fā)現(xiàn)我們的軟件也是基于RCP的,而且隨時提供RCP方面的咨詢和培訓。
6。跟Mozilla結個親家吧忘了提Eclipse 3.3的又一大特性了,叫做“Moziila Everywhere”,是指在任何平臺上都可以創(chuàng)建一個Browser控件但是使用Mozilla內核(及時該平臺上沒有安裝Firefox)。這是怎么實現(xiàn)的呢?其實很簡單,它要求你必須安裝一個xulrunner,后者是Mozilla的全部內核,包括Gecko布局引擎、Javascript解析引擎、XUL解析引擎和XPCOM,其中每樣東西都足夠寫一本書,有了這些,僅用XUL+Javascript就可以寫出一個Firefox來,Eclipse洽是利用了這個特性,用Java連接XPCOM所以創(chuàng)建了一個Mozilla的Browser,但是沒有任何行為,包括右鍵菜單。
這個Browser控件和缺省的Browser控件是不一樣的,我們平時見到的缺省Browser控件,在Windows上用的是IE內核,在MacOSX上用的是Safari,在Linux上。。。不知道,所以它是最最簡單的瀏覽器,不具備任何可以定制的功能,除了顯示一張HTML頁面外,沒有任何用處。(你該不會想用Eclipse寫一個傲游出來吧)
但是Mozilla內核的瀏覽器控件就不同了,它意味著如果程序員平時為Firefox寫插件的形式,也可以被應用到RCP應用程序上來,設想一下我們擁有一個RCP+xulrunner的平臺吧,RCP接收Java擴展,xulrunner接收xul和javascript擴展,那我們的平臺——要么叫Fireclipse,要么叫Eclifox——就所向披靡了。即使不利用它的可擴展性,單單就是能保證在不同平臺上提供對Web應用程序的一致性展現(xiàn)一條,就足夠臭美的了,更可以用寫Eclipse插件的形式來限定瀏覽器的行為。。。。。。唉,剛才是不是說過一個NetBeans in Eclipse啊?把那玩意扔了吧~~
總結。活活,還真是好久沒有寫B(tài)log了呢。本來只想談談Eclipse基金會的,沒想到越說越多,連MacOSX、JSON、Google、Mozilla都說了個遍,是不是說了你的偶像什么壞話,我常干這種事,直接跟我聯(lián)系吧,我愿意分享我的一切感受和看法。忙了,再聊!
下一個大泡泡(轉載本文需注明出處:Brian Sun @ 爬樹的泡泡[http://www.briansun.com])
posted on 2007-04-18 18:53
Brian Sun 閱讀(5491)
評論(18) 編輯 收藏 所屬分類:
軟件