成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

描述AWT和Swing的歷史

開發 后端
本文描述AWT和Swing的歷史,故事中的歷史有了大概的了解,尤其是SWT。現在你也許會覺得,IBM創建SWT的理由是合理的而Swing應該沿用SWT采用的方式。

Overview概述

Java GUI 工具包一直是一個倍受爭議的話題。同樣的爭論也發生在其他編程語言如Smalltalk。實際上每個平臺無關的語言都存在著這樣的爭論。Java作為當前最受廣泛使用的編程語言而尤為突出。

這場爭論在支持模擬組件(如widgets和control,在下文中也稱之為仿造組件)和支持本地組件(在下文中也稱之為原生組件)的人們之間展開,于是Java開發者形成了兩個不同的陣營,提倡使用模擬組件的Swing,和提倡使用原生組件的SWT。

歷史

Internet上有許多圍繞這一爭論的故事。你可能已經聽說過它們中的大多數了,其中之一有助于讓你理清頭緒,讓我們就從這里開始,Amy Fowler是Swing陣營的一個倡導者。

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

Amy贏得了精神上的勝利,不過IBM贏得了他們所有的生意,因為這兩家公司在一整年里除了吵架什么都沒做。當塵埃落定之后PPD(Parc-Place Digitalk當時已改名為Objectshare,跟Windscale改名為Sellafield的原因相同——讓人們淡忘之前發生的災難)的股票價格從60美元掉到了低于1美元1股。他們因為偽報收入被NASDAQ摘牌,從此消失。

當時,AWT和Swing已經出現了。SUN當時已經建立了一套基本的可移植控件類,這些類映射到不同操作系統上的原生窗口組件(native widget),當時的AWT還滿是漏洞,遠不能稱為可靠,還需要SUN的coder們去修補。然后Amy被雇傭了,她承諾通過輕量級方案解決所有窗口組件的問題,以此說服SUN管理層讓她當了GUI開發部門的頭頭。隨后Amy雇傭了所有她過去在Parc-Place的舊朋友,讓他們來開發Swing。

在IBM,VisualAge for Java最初是用Smalltalk(用的是原生窗口組件)寫的,當將這些工具向Java代碼庫遷移時,他們需要一套窗口組件。IBM這邊的開發人員都是原來搞Smalltalk的那一批人,他們對管理層要求用Swing來構建WebSphere Studio工具都非常不情愿?!癝wing是個可怕的充滿缺陷的怪獸“。因此開始了一個新的項目,把他們的Smalltalk原生窗口組件移植到 Java上去。這個工具集后來被成為SWT,S開始是Simple的縮寫,不過后來變成了Standard的縮寫。這個項目獲得了成功,被運用在發布的 VisualAge Micro Edition產品中。他們當時發現在Swing讀事件隊列的時候用了一種可能留下內存漏洞的方式,而不得不采用他們自己的查詢 Windows事件隊列的循環,以糾正這個錯誤。這促成了他們關于SWT,AWT和Swing不能共存的決定。他們把這個工具包放到了Eclipse中,這是一個來自于早期Visual Age的工具平臺。

你應該已經從上述的故事中對三者的歷史有了大概的了解,尤其是SWT。現在你也許會覺得,IBM創建SWT的理由是合理的而Swing應該沿用SWT采用的方式。這樣的觀點是片面的,當你深入了解到Java的本質之后,你會發現其實并不像你想象的那么簡單。
先決條件

什么才是Java本質的,影響到工具集設計的特征呢?或者說,什么才是Java GUI工具集設計的先決條件呢?

答案來自于Sun對Java的承諾之一:write once, run anywhere(一次編寫,隨處運行)。這是Java不同于其他語言的優勢所在。在Java被創建之前,軟件的跨平臺性能是開發者,特別是那些希望對多平臺提供支持的開發者的夢魘。在當今的生活中Internet的使用已經相當的普遍了,在世界不同角落的人們在不同的平臺上工作著。軟件提供商為不同的操作系統提供支持是再平凡不過的事情。Java的write-once-run-anywhere(WORA)承諾顯然減輕了開發者的負擔,極大地提高了軟件開發的生產力。

然而編寫跨平臺的應用程序,你必須使用支持平臺無關性的標準庫。這些標準庫包括語言支持,公共用途,網絡,I/O和GUI工具集等。所以當Sun開始設計 GUI工具集的時候,首要任務就是考慮一個設計良好的平臺無關的API。AWT和Swing都被小心地設計以保證平臺兼容性。SWT則相反,它在設計之初并不以擴展性為原則,它為一個專有的IDE Visual Age for Java而設計,Windows作為這個IDE的首選運行環境擁有很高的優先級考量。SWT API類似于WIndows,通常它并不如Swing的擴展性好,盡管Steve Northover,SWT之父,辯稱SWT是平臺無關的,你可以很容易地發現許多Windows API的痕跡。

【編輯推薦】

  1. 概述Swing窗體的種類
  2. 淺談Swing線程三種
  3. Swing全屏幕模式
  4. 淺析Swing線程中的LookupEvent
  5. Swing文件選擇器的制作
責任編輯:佚名 來源: 51CTO.com
相關推薦

2009-07-14 15:01:02

AWT和Swing

2009-07-17 09:36:14

SWT和Swing的區

2009-07-17 10:11:55

AWT和Swing

2009-07-16 13:37:33

Swing和AWT

2009-07-15 16:39:51

AWT和Swing

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-10 17:20:38

Swing構件AWT構件

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-14 12:58:49

AWT和Swing

2009-07-16 13:50:28

AWT和Swing

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-17 10:01:14

Swing和AWT

2009-07-10 15:41:27

Swing AWT

2009-07-17 17:16:44

Swing實現的目標

2009-07-17 10:25:41

AWT和SwingSWT

2011-04-15 17:33:39

SWINGAWT

2009-07-17 09:55:02

事件監聽器SWT和SwingAWT

2009-07-17 09:44:28

Look And Fe布局管理器SWT和Swing

2011-05-04 15:21:20

swing
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精精国产xxxx视频在线 | 免费视频一区二区 | 久久夜色精品国产 | 久草.com| 免费小视频在线观看 | 欧美久久久久 | 亚洲欧美日韩激情 | 中文字幕日韩欧美 | 亚州精品天堂中文字幕 | www免费视频| 草草视频在线播放 | 日韩欧美网 | gogo肉体亚洲高清在线视 | 国产毛片久久久久久久久春天 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 日韩精品在线观看网站 | 找个黄色片 | 国产精品国色综合久久 | 婷婷激情综合 | 在线成人 | 久久成人一区 | 四虎最新| 99精品国自产在线 | 欧美一区二区精品 | 国产精品一卡二卡三卡 | 亚洲性爰| 久久亚洲一区二区三区四区 | 成人在线电影在线观看 | 国产日韩久久 | 国产精品久久久久久久久久久久久久 | 国产一区二区精品在线观看 | 亚洲午夜三级 | 美女国产精品 | 91中文字幕在线观看 | 亚洲欧洲在线观看视频 | 久久精品视频99 | 中文一区二区 | 黄免费观看视频 | 91美女视频 | 国产偷录叫床高潮录音 | 欧美精品一区二区三区在线播放 |