永别了,Java的“小苹果”!

1995年, Java之父James Gosling和Sun公司科学办公室主任John Gage一起前往蒙特利,去参加一个TED会议,两人要在那里展示一个划时代的技术, 号称向能把枯燥的静态网页变得栩栩如生,美轮美奂。 

不知道James Gosling当时的心情如何,是忐忑不安?还是满怀信心?在C++统治的年代中,Java要杀出一条血路来,一定要一炮打响。 

演示开始了,James Gosling 把鼠标指向了浏览器中的一个3D分子模型,来回地旋转它,台下的观众发出阵阵惊叹声,他们被镇住了,从没有人想到在浏览器中也能实现这么“美轮美奂”的效果 ! 

 (注:这是后来用Applet Viewer看到的效果) 

Java 火了! 

这个演示所使用的技术就是Applet。 

1

我对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一家来控制,这对于开放的互联网来说是不能容忍的。 

后来的事情大家都知道了,AJAX抢班夺权,彻底统治浏览器,前端界面使用HTML+CSS+JavaScript可以做得美轮美奂,比桌面应用都漂亮,Applet的优势消失殆尽,只剩下一些遗留系统在使用了。 

2

随之时间的推移,各大浏览器开始嫌弃Applet,不再支持。

然后连JDK也不要它了, 从JDK9 开始,Applet 已经被声明为“废弃”的了, 从JDK 11开始,浏览器的Java插件也从JDK中删除了。如果还想在生产环境中使用Applet,只能从Oracle 那里继续购买JDK 8 的订阅和更新服务了。 

Applet这个让Java大火的技术彻底死了。

技术的发展就是这样,各领风骚四五年,很多看起来很酷的技术都消失在短暂的IT时代的河流中,这里边有技术的原因,有标准的原因,有时代的原因,但有一点是肯定的:一定要走开放之路,这样成功的可能性才会大一些。

多年以后,出现了一个叫做Webassembly的技术,定义了一套类似Java的字节码, 可以用各种语言(C/C++/Rust/Java)来开发,编译以后像Applet那样放到服务器端, 浏览器下载执行,和Applet不同的是,不再需要插件了,执行WebAssembly的程序是浏览器内置的能力了! 

一定意义上来说,Applet 也算后继有人吧!

往期精彩回顾

我是一个线程

我是一个Java Class

面向对象圣经

函数式编程圣经

TCP/IP之大明邮差

CPU阿甘

我是一个网卡

我是一个路由器

一个故事讲完HTTPs

编程语言的巅峰

Java:一个帝国的诞生

JavaScript:一个屌丝的逆袭

负载均衡的原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值