對於AWT而言,Java 1.1到Java 1.2最大的改變就是Java中所有的庫。Java 1.0版的AWT曾作為目前見過的最糟糕的一個設計被徹底地批評,並且當它允許我們在創建小巧精致的程序時,產生的GUI“在所有的平台上都同樣的平庸”。它與在特殊平台上本地應用程序開發工具相比也是受到限制的,笨拙的並且也是不友好的。當Java 1.1版納入新的事件模型和Java Beans時,平台被設置——現在它可以被拖放到可視化的應用程序構建工具中,創建GUI組件。另外,事件模型的設計和Bean無疑對輕松的編程和可維護的代碼都非常的在意(這些在Java 1.0 AWT中不那麼的明顯)。但直至GUI組件-JFC/Swing類-顯示工作結束它才這樣。對於Swing組件而言,交叉平台GUI編程可以變成一種有教育意義的經驗。
現在,唯一的情況是缺乏應用程序構建工具,並且這就是真正的變革的存在之處。微軟的Visual Basic和Visual C++需要它們的應用程序構建工具,同樣的是Borland的Delphi和C++構建器。如果我們需要應用程序構建工具變得更好,我們不得不交叉我們的指針並且希望自動授權機會給我們所需要的。Java是一個開放的環境,因此不但考慮到同其它的應用程序構建環境競爭,而且Java還促進它們的發展。這些工具被認真地使用,它們必須支持Java Beans。這意味著一個平等的應用領域:如果一個更好的應用程序構建工具出現,我們不需要去約束它就可以使用——我們可以采用並移動到新的工具上工作即可,這會提高我們的工作效率。這種競爭的環境對應用程序構建工具來說從未出現過,這種競爭能真正提高程序設計者的工作效率。