1995年, Java之父James Gosling前往蒙特利參加一個TED會議,他要在那里展示一個劃時代的技術 :Java。
![]()
當時Java還默默無聞,為了一炮打響,Java選擇了新興的互聯網這個戰場,準備拿瀏覽器開刀。
在這個時候,互聯網上網站很少,并且都是靜態的HTML頁面,到處“丑陋”的文本和簡單的圖片:
![]()
但是,在James Gosling的演示中,瀏覽器中竟然出現了一個3D分子模型!這太匪夷所思了。
![]()
(注:這是后來用Applet Viewer看到的效果)
這個3D模型還是動態的,James Gosling可以用鼠標來回地旋轉它,展示各種細節,從沒有人想到在瀏覽器中也能實現這么“美輪美奐”的效果 ! 臺下的觀眾徹底被鎮住了,掌聲雷動,發出陣陣驚嘆聲。
大家都在紛紛詢問:“這到底使用什么技術做出來的?用的什么編程語言?”
Java 火了!
1
James Gosling演示所使用的技術就是Applet。
在瀏覽器中,Applet大概長這個樣子:
applet>瀏覽器發現 標簽,就會用已經安裝的Java插件從服務器端下載對應的class,然后在沙箱中執行。
![]()
我對Applet懷著特殊的感情,因為我學會了Java的Hello World之后,第一個項目使用的就是Applet技術。
我有個同事覺得Applet這個單詞怪怪的,總是把它叫做“小蘋果” :你的“小蘋果”開發得怎么樣了?
實際上,人家Sun這么起名的意思是:Application + let, 還有Servlet,指的是Server + let。
這讓我印象十分深刻,后來大江南北都在流行神曲“小蘋果”的時候, 總是讓我聯想到Applet。
我在C/S架構下做過一點桌面GUI程序的開發,后來轉到B/S架構,發現當時的HTML頁面實在是太簡陋了,但是B/S結構又有一個天生的優勢:應用無需分發安裝,只有有個瀏覽器就夠了。
這時候,我就接觸了Applet,不由眼前一亮:無需安裝就可以在網頁運行,又能展示出桌面GUI的效果,相當于結合了C/S 和 B/S的優勢, 這簡直是太酷了。
可是這么酷的技術怎么沒能一統天下呢?
稍微深入開發就會發現,Applet在當時的環境下有幾個致命傷:
1. 用AWT/Swing寫的界面丑陋
Applet的GUI界面需要用Java AWT以及后來的Swing來編寫,這兩個技術確實不怎么樣,寫出的GUI很丑陋,沒有本地應用程序的感覺。
2. 運行速度太慢
上世紀90年代的PC還非常弱,CPU弱,內存更弱,有個32MB的內存都很不錯了。Java剛開始也是弱雞,直到JDK 1.2才有 JIT技術, 在此之前單機獨立運行Java都很慢,一直被C++所嘲笑。更不用說在瀏覽器中用插件的方式來運行了!
3. 網速也太慢
撥號上網的時代,網速只有56K bit/s , 一個Applet程序稍微大點兒就得等半天,等待得時候,確實顯示一個極其難看的大白板:
![]()
如果Applet需要一個特定版本的JRE, 需要從網絡下載,那估計需要一個多小時才能下載下來。
還有一些安全問題, 總之,Applet是一個看起來很美的方案,但也是一個重型解決方案,還是一個封閉的解決方案,由Sun(Oracle)一家來控制,這對于開放的互聯網來說是不能容忍的。
后來的事情大家都知道了,AJAX搶班奪權,徹底統治瀏覽器,前端界面使用HTML+CSS+JavaScript可以做得美輪美奐,比桌面應用都漂亮,Applet的優勢消失殆盡,只剩下一些遺留系統在使用了。
2
隨之時間的推移,各大瀏覽器開始嫌棄Applet,不再支持。
然后連JDK也不要它了,剛剛發布的JDK 26中明確說明:java.applet的package被刪除!
![]()
![]()
Applet這個讓Java大火的技術徹底死了。
技術的發展就是這樣,各領風騷四五年,很多看起來很酷的技術都消失在短暫的IT時代的河流中,這里邊有技術的原因,有標準的原因,有時代的原因,但有一點是肯定的:一定要走開放之路,這樣成功的可能性才會大一些。
多年以后,出現了一個叫做Webassembly的技術,定義了一套類似Java的字節碼, 可以用各種語言(C/C++/Rust/Java)來開發,編譯以后像Applet那樣放到服務器端, 瀏覽器下載執行,和Applet不同的是,不再需要插件了,執行WebAssembly的程序是瀏覽器內置的能力了!
一定意義上來說,Applet 也算后繼有人吧!
全文完,覺得不錯的話請三連。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.