最近在收集一些关于AWT, Swing, SWT之间比较的文章,中间接触到一些关于这三大GUI开发工具包的历史,觉得挺有意思,就用自己的文字记录下来。我想,这对于那些从事Java GUI开发的同志们来说,应该是不可缺的一堂历史课。
话说20世纪中期,IT界也出现“三国”,他们都用Smalltalk作为武器在IT界打自己的天下,其中有大家今日熟悉的蓝色巨人IBM,还有就是Digital Talk和Parc-Place. IBM和Digital Talk坚信采用本地化组件的战略来打天下,而Parc-Place却坚持采用仿效机制来自绘组件天下。
虽然在建国理念上存在冲突,三国之间却一直风平浪静,你走你的独木桥,我走我的阳关道。直到有一天,枭雄IBM揭竿而起,迅速发展国力,军事上逐渐超越另外的两个潜在对手。感觉无法招架IBM的强大威慑力,Digital Talk和Parc-Place决定联盟,组成一个更强大的国家来对抗IBM的强势入侵,起国号为Objectshare。虽然D和P郎情妾意,欢欢喜喜结成连理,哪知道两者性格理念上的差异,为之后的联姻破碎埋下了祸根!
婚姻有七年之痒,D和P却从一开始就进入了家庭纷争,但最终还是以Amy Fowler为代表的Parc-Place方,赢得了组件仿效战略的胜利。可此时,IBM已经通过他的本地化组件策略赢得了大片的国土和子民。这能怪谁呢?P和D本来就是不合的一对,为了所谓的理念追求,两者啥事不做竟窝里斗,白白折腾了整整一年!而这,恰恰为IBM的壮大提供了契机。直到有一天,Objectshare因为经济不济,被赶出了历史舞台!似乎此时,IBM已经统一了组件开发的河山,本地化组件的策略似乎也大行其道。
历史上没有真正的王者,IT界也是如此。Sun公司此时凭借他的Java AWT开始打江山。殊不知,AWT也采用了IBM本地化组件的策略,但是做出来的效果却不敢恭维,破绽百出。正在此时,处于流亡状态的Amy Fowler得到了SUN的青睐,被委以重任去修复这个破破烂烂的AWT。当然在前面大家都了解到Amy Fowler这个人,他是一直拥护防效机制建立组件的。得到SUN高层的信赖后,Amy开始笼络并召回以前Parc-Place的一些旧部下,开始实施他们的仿效组件策略,创造了另外一个GUI开发标准,也就是我们熟悉的Swing.
当然,IBM也没有落后,他的Java开发工具Visual Age也是用Smalltalk写的,当然,也是基于本地化组件策略。由于Java的兴起,他们开始从Smalltalk移植到Java开发页面组件。IBM的那些将士们基本上都是用Smalltalk的,他们都很讨厌基于仿效机制的Swing,讨厌它的丑陋,笨重,破绽重重!于是乎,他们用Java开发了一套本地化组件,也就是我们后来熟知的SWT。后来SWT被移植到Visual Age形成了现在的航空母舰Eclipse。
历史就是如此,AWT, Swing和SWT的历史之争就这样一直持续到了现在。天下大势,分久必合,合久必分,希望有一天,有一套通用的Java GUI规范,造福我们这些一直以来用Java武装的将士们。
分享到:
相关推荐
java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包
生命游戏javaGUI实现界面十分美观
图形程序设计所用类层次结构图,使你能更好地从整体去把握java GUI!
Java GUI程序设计
内容概要:通过程序注释带着读者了解GUI界面构建过程,初步了解 java GUI的使用,理解GUI框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:登陆确认、随机出题、题目文本导入等内容实现。 适合人群:具备...
Java GUI 窗体的美化包 以及使用方法 希望对大家会有用
JAVA GUI
java入门:java写的一个界面,画了个棋盘,实现panel,button的事件监听
java GUI万能
JavaGUI编程入门
利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...
Chinese Chess game made by Java GUI. Java-GUI制作的象棋游戏 Chinese Chess game made by Java GUI. Java-GUI制作的象棋游戏 Chinese Chess game made by Java GUI. Java-GUI制作的象棋游戏 Chinese Chess game ...
java GUI notepad java GUI notepad java GUI notepad
javaGUI五子棋代码
JAVA-GUI学生管理系统
javaGUI编程基础源码 javaGUI编程基础源码 所加源码全部调试通过 javaGUI编程基础源码 javaGUI编程基础源码 所加源码全部调试通过
【JAVA】GUI+控制台双程序 学生成绩管理系统,涉及java swing库JMeauBar菜单栏,JTable表格的增删改查,JButton事件绑定,和各种按钮事件的绑定
Java gui 页面 跳转页面的示例代码,也包含了Java gui 界面 的基本写法
Java GUI File 源码实例 Java GUI File 源码实例 赞!!!
Java GUI时钟程序,Java GUI时钟程序