<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Thinking in XiaoQiang
    世人皆有悲哀,只有你不明白
    posts - 56,comments - 150,trackbacks - 0

        本文來自straight_talking_java@yahoogroups.com討論組,已經是一年多前的文章。Alan WilliamsonJava Developers Journal的編輯,下文來自他在IBM的一個消息來源。SWTSwing的論爭我見過不少,NetbeansEclipse的也同樣多。譯者翻譯此文并不是要激起什么爭執,也不是支持哪一方(雖然我的確是站在SWT一邊的),更不是要攻擊Amy。我最重要的理由是,這是一篇有趣的文章。里面有內幕、線人、公司政治、壟斷巨頭、美女、商界風云……足夠拍一出電影。有趣,這就夠了。不過此文反映了IBMSwing的看法和SWT的由來,還是有一點營養的。

     

      要想弄清楚為什么一切都被弄得如此混亂,要從幾年前只存在AWT的時候說起。SUN當時已經建立了一套基本的可移植控件類,這些類映射到不同操作系統上的原生窗口組件(native widget),顯然下一步應該繼續增強這套模型,除了初始的CUA 92組件(文字、按鈕等等),再繼續加上表格、樹、記事本、滑塊等等……當時的AWT還滿是漏洞,遠不能稱為可靠,還需要SUNcoder們去修補。SUNdeveloper們如GrahamOtto總是習慣于公開把他們的bug歸咎為操作系統的差異,比如“WindowsOS/2的焦點次序不同”或者“在……之間Ctrl-X的行為不一樣”,以及其他蒼白的托辭,好讓批評的火力從SUN太早釋出代碼這個問題的真相上移開。然后Amy Fowler來到了SUN。不是我大男子主義,Amy是個聰明的美女,大多數呆頭呆腦只懂技術的開發人員都要被她捏在手里。 Amy來自一家Smalltalk公司,叫做Objectshare,在那里她負責搞UI類庫。

     

      跟Java相比Smalltalk的歷史有些悲慘,曾幾何時有3家龐大的Smalltalk公司——IBMParc-PlaceDigitalk。在90年代初期3家公司的市場份額大致相等,生活是美好的。Parc-Place采用仿窗口部件(emulated widgets)的設計(即Swing的設計),IBMDigitalk則采用原生窗口部件(native widgets)。后來IBM壓倒了另外兩家,因此他們打算合并成一家,假設叫做Parc-Place Digitalk。隨后當他們試圖將他們的產品融合到一個叫做Jigsaw的計劃中時爆發了一場大戰,計劃由于政治原因失敗了(開發人員實際上已經能讓它運轉起來),就因為原生和仿造兩派的死戰。

     

      Amy贏得了精神上的勝利,不過在IBM我們贏得了他們所有的生意,因為這兩家公司在一整年里除了吵架什么都沒做。當塵埃落定之后PPDParc-Place Digitalk當時已改名為Objectshare,跟Windscale改名為Sellafield的原因相同——讓人們淡忘之前發生的災難)的股票價格從60美元掉到了低于1美元1股。他們因為偽報收入被NASDAQ摘牌,從此消失。此時SUN正走上與PPD類似的技術方向,于是PDD的技術人員都把他們的簡歷投到了SUNAmy被雇傭了,她承諾通過輕量級方案解決所有窗口組件的問題,因此說服SUN管理層讓她當了GUI開發部門的頭頭。她是拿著“這里原來的人都搞砸了,我是來解決的”的鑰匙進來的。隨后Amy雇傭了所有她過去在Parc-Place的舊朋友,讓他們來開發Swing

     

      顯然Swing應該做的是僅僅成為一個繪制框架,給那些希望創建地圖軟件或者繪圖軟件的人們使用,無論如何,應該圍繞AWT類庫來建造它,按鈕之類的東西仍然交給AWT來管。SUN的人比如PhilipMark已經讓AWT能夠處理表格、樹和記事本(notebook,?),所以Swing的方向應該說很明顯了。但那些毀了PDD的人不干,他們非要把一切都弄成輕量級的。由于SUN管理層的無知,再加上Amy無情的政治手段,造成了我們今天所見的混亂局面。Amy還使SUN相信Swing是作為Mozilla項目的一部分與Netscape聯合開發的,事實上這只是她的宣傳伎倆。

     

      在IBM,我們從第一天起就憎惡Swing。龐大、滿是錯誤,而且難看至極。原先我們的工具如VisualAge for Java都是用Smalltalk(用的是原生窗口組件)寫的,所以當我們將這些工具向Java代碼庫遷移時,我們需要一套窗口組件。IBM這邊的開發人員都是原來搞Smalltalk的那一批人,我們對管理層要求用Swing來構建WebSphere Studio工具都非常不情愿。Swing是個可怕的充滿缺陷的怪獸。

     

      在WebSphere Studio最初的預覽中,當與Microsoft Visual Studio作對比演示的時候,我們所有的客戶都討厭它,就因為它的外觀,而不管它的功能有多強。大多數消費者都不會買一輛讓人覺得難看的車,哪怕這車有一臺出色的引擎。因此我們開始了一個項目,是把我們的Smalltalk原生窗口組件移植到Java上去。這個項目是加拿大的Object Technology International小組做的。這個項目獲得了成功,被運用在在我們發布的VisualAge Micro Edition產品中,VisualAge Micro Edition后來成為J2ME開發方面一個非常成功的IDE。但是OTI的人發現,Swing在讀取Windows事件方面有極嚴重的缺陷,我們甚至無法進行SWTS開始是Simple的縮寫,不過后來變成了Standard的縮寫)和Swing間的互操作。他們在讀事件隊列的時候用了一種可能留下內存漏洞的方式,所以我們不得不采用我們自己的查詢Windows事件隊列的循環,以糾正這個錯誤。

     

      我們試了一次又一次讓SUN修復這個錯誤,但Amy就是聽不進去,所以我們才決定SWTAWT/Swing不能共存。我們甚至在SWT中定義了自己的PointRectangle類——整個工具包對AWTSwing都沒有任何依賴。我們把這個工具包放到了Eclipse中,這是一個工具平臺,它的總體設計目標就是要戰勝MicrsoftVisual StudioEclipse是開源的,所以任何人都可以在上面構建自己的東西,我們已經有像TogetherSoftRational這樣的公司移植到了上面。我們的競爭者是Microsoft,所以我們所有努力和注意力都是從正面針對Microsoft

     

      不管怎么說SUN對此非常不滿。他們的NetbeansEclipse做的是相同的事,因此他們向IBM高層抱怨。他們認為SWT是要將你綁到Windows上,這純粹是胡說,因為SWT能通過GTKMac/Linux上運行,以及一大堆嵌入式平臺。他們拒絕讓Eclipse獲得Java認證,因為里面有原生代碼,所以Eclipse產品必須很小心地使用單詞“Java”這個SUN的商標。Eclipse甚至不能把自己稱為一個Java IDESUN已經威脅過要采取法律行動來制止IBM在任何時候把Eclipse稱作一個Java IDE。結果之一就是IBMEclipse上創建的GUI設計工具,允許你構建Swing/AWT GUI,卻不讓你往里面拖放SWT窗口控件。

     

      將SWTEclipse中分離出來是完全可能的,只需要把DLL摳出來放到路徑中,并使用窗口組件工具包來給你的銀行或者保險或者其他什么應用程序開發GUI。再次說明,我們無法更進一步,因為SUN把我們的雙手綁上了。雖然作為Eclipse開放源碼協議的一部分,CPL允許我們提供這樣的解決方案,但SUN已經很清楚地表明他們不希望我們這樣做。 對于用戶社區來說,無論IBMSUN的最終動機是什么,我發現有一點總是很有趣:喜愛Swing的人總會說“一旦你花上幾年時間去掌握它,你就能正確地使用它”,這基本上是他們在試圖證明和維護他們辛苦得來的用途有限的專門技術;而SWT的擁護者們說的是“哇,這真快,這跟原生的一樣,還可以用XP皮膚……它還又輕又小”。有一句話是我喜歡的,我們的一個用戶說,Swing就像Java決定不通過操作系統來實現原生的IO,而是通過磁頭馬達API自己來讀磁盤的扇區。Swing基本上就是這樣的,它拿著個底層的“paint(Graphics)”方法,自己來繪制所有的窗口組件。
    posted on 2005-09-29 16:14 小強 閱讀(529) 評論(0)  編輯  收藏 所屬分類: eclipse plugin

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲成电影在线观看青青| 亚洲人成色7777在线观看| 亚洲一区二区免费视频| 99在线热视频只有精品免费| 精品亚洲综合久久中文字幕| 国产JIZZ中国JIZZ免费看| 亚洲午夜激情视频| 免费国产污网站在线观看| 久久亚洲AV无码精品色午夜麻| 日韩免费无码一区二区视频| 久久精品国产亚洲AV忘忧草18| 亚洲av永久中文无码精品综合| 男女超爽视频免费播放| 免费人成视网站在线观看不卡| 亚洲国产另类久久久精品黑人| 亚洲午夜精品在线| 性生交片免费无码看人| 久久久久亚洲国产AV麻豆| 亚洲AⅤ永久无码精品AA| 国产黄色片免费看| 亚洲乱码一区二区三区在线观看 | 亚洲日本国产精华液| 日本在线看片免费| 亚洲国产成人久久三区| 四虎国产精品免费久久影院| 一个人看的免费高清视频日本| 成人影片麻豆国产影片免费观看| 亚洲免费日韩无码系列 | 亚洲a在线视频视频| 日韩精品无码一区二区三区免费 | 日韩电影免费在线观看| 亚洲av激情无码专区在线播放| sss在线观看免费高清| 久久亚洲熟女cc98cm| 国产高清在线免费| 美女被cao网站免费看在线看| 国产精品黄页在线播放免费| 成全视成人免费观看在线看| 亚洲国产成人资源在线软件| 亚洲AV永久无码精品一区二区国产| 亚洲人成7777|