在 java 还年轻的时候,人们对写小程序很兴奋。他们很酷,很受欢迎,有一段时间。现在,我再也见不到他们了。相反,我们有 flash、javascript 和大量其他 Web 应用程序构建技术。
为什么网站不再使用 java applet?
我也很好奇:从历史上看,你认为为什么会发生这种情况?有什么不同的方法可以让 Java 小程序保持活力?
我认为 Java 小程序被 Flash 和 ActionScript(无意的双关语)所掩盖,对于当时使用的 Java 小程序(动画 + 有状态的应用程序)更容易使用。
Flash 在这方面的成功反过来归功于其更小的文件大小,以及受益于 Sun 与 Microsoft 的诉讼,这导致 Microsoft 在 Netscape 消亡和 IE 占据主导地位的时候从 Internet Explorer 中删除了 MSJVM。
1) AWT 为可怕的 UI 设计。Swing 对此进行了改进,但为时已晚,因为...
2) 微软在浏览器中放弃了对 Java 的支持(其专有的 MSJVM),在此之前,它只支持它发布的最后一个版本,大约是 JDK 1.1兼容的。
3)所以今天你不能确定一个小程序会在大多数非开发人员机器上运行,不像闪存。
顺便说一句,ActiveX 也是如此。
对于它的价值,Sun 再次将资金和资源投入到小程序中。他们在JDK 1.6.10中进行了一些非常显着的改进,以减轻过去展示的许多“笨拙”小程序。例如,通过此更新,您可以在加载小程序时显示自己的自定义加载图像/动画,并且该插件已被大量使用以提高性能。
他们还着手与 Flash 和 Silverlight - JavaFX直接竞争。
市场是否会对此做出反应还有待观察,但鉴于 Flash 在市场上的主导地位,这对 Sun 而言无疑是一个令人着迷的举动。
等到 Java 的 GUI API 不再那么糟糕时,每个人都在使用 Flash。即使在今天,Java 在制作精美图形方面也远不及 Flash。
我认为这是因为 java 是“真实的”,即。通用语言。要制作小程序,您必须编写代码,并且没有任何快捷方式。
现在 Flash 等已经出现,您几乎可以通过为您的网站制作很酷的动画来随意放置。这是一个低得多的入门门槛——您不必知道如何编程即可使 Flash 动画正常工作。因此闪存激增,Java 小程序几乎不再使用。
我认为小程序是微软和 Sun 之战中的附带损害。
起初,JVM 加载速度非常慢,并且需要太多内存。然后,当计算能力的提高使 JVM 成为可能时,Sun 努力尝试控制 Java 的所有事物:
作为 Sun 在 3 月对 Microsoft 提起的另一项私人反垄断诉讼的一部分,Sun 寻求初步禁令,要求 Microsoft 在 Windows XP 操作系统中包含当前的 Java 虚拟机 (JVM)。微软表示,本周包含 JVM 的决定是与 Sun 的最新法律纠葛的直接结果,但微软计划在 2004 年 1 月 1 日之后取消对 Windows 中 Java 的支持。微软逆转,将在 Windows XP 中包含 Java VM - 目前
他们花了很长时间才加载并开始在浏览器中运行,然后对于很多人来说他们没有工作。当他们最终加载时,界面又丑又笨重。我认为糟糕的用户体验是让小程序过时的一大步。
因此,要回答最初的问题,我有一个自己的问题——你问“为什么网站不再使用 java applet”,而我的回答是“为什么会有人想要?”
我在学术环境中经常看到它们(托管在部门或教师网站上),但你说得对,它们不是很受欢迎。
但是,请记住,Java 的伟大承诺已经实现。我们有 Flash、Java Applet、Silverlight 和不断改进的 JavaScript 框架。
现在,如果我添加个人意见 - 我认为 Java 小程序不优雅。它们往往看起来很丑陋,Java 运行时在操作系统中的存在广为人知(就运行时视觉效果、更新和丑陋的安装程序而言)。Flash 的富媒体环境和透明(且无处不在)的部署要好得多。
人们仍然使用小程序。但你是对的,那里有很多不同的解决方案。例如,看看javafx
我认为兼容性问题是一个大问题。最值得注意的是 IE 和 Microsoft 的 Java VM,它们并没有像以前那样符合标准。
即使使用 Sun JVM,您也可能会遇到问题。我有两个第 3 方 Applet 需要不同版本的 Java,这会导致各种问题,这让我很开心。Sun 已尝试通过用Java Web Start替换 Applets 来解决这个问题, Java Web Start会在浏览器中为您提供一个链接,该链接在它自己的窗口中而不是在浏览器内部启动应用程序。(理论上,使用 JWS,您可以使用不同的虚拟机拥有不同的应用程序,但它似乎对我来说从来没有像它应该的那样工作。)
JavaScript 的进步也使得开发更丰富的网页成为可能,所以很多过去只能在 Applet 中完成的事情现在可以通过 AJAX 完成。
首先,他们没有走。您仍然可以在 Web 上找到很多小程序,很多人使用它们专门用于演示算法等。
优点:可以利用现有的库(数学、物理、排序、图形等),并且比 Flash 更快。
不便之处:针对最近的 JVM 可能有风险(尽管 Sun 在自动更新方面做得很好,看起来很多人已经在使用 Java 1.6),加载时间有点慢(尽管已经取得了很大的进展) .
你仍然可以找到很多游戏小程序,比如Bookworm,还有一个额外的优势,也许是已经完成了在手机上运行它们的部分工作......
其次,我可以预测对 JavaFX 的兴趣会重新获得。类固醇上的小程序,能够打破“小程序丑陋”的传说...... :-)
最后,像Processing这样的库让创建图形密集型小程序变得超级容易,你可以在网上找到很多,例如。在OpenProcessing上,最差的(编程初学者)几乎是最好的!
我想知道JVM实际上有多广泛?在 Flash 的情况下,IE5 预装了它,给它一个庞大的自动用户群。但除非 JVM 包含在操作系统安装中,否则用户不会拥有它。我想作为开发人员,您的目标是最大的安装基础,这意味着选择 Flash 而不是 Java。
到处都有 Java 小程序;虽然绝对不普遍。
我相信正是他们的丑陋让他们远离了现代网络。flash 带来了设计,javascript 带来了在客户端上制作一些很酷的东西的便捷方式。作为浏览器中的一个盒子(就像一个闪光灯,但更丑陋),applet 技术被放弃了。
实际上,唯一可能遗漏的是在 Web 内部进行“客户端-服务器”类型的通信的可能性,因为 java 小程序可以有一个有状态的连接。另一方面,您必须在另一侧放置一些服务器并为其打开一个端口,这对于共享托管环境来说是太多的家务活。
小程序仍然存在于一些不同的区域,例如道路、隧道、发电厂等的控制中心。
人们仍在使用小程序,至少对于我正在合作的公司而言。这些小程序主要由内部用户使用。
我觉得小程序有它的好处,作为在服务器端使用Java的公司,很可能会拥有大量精通Java的人才。
尽管 Javascript、HTML/CSS 或 flash 等其他技术可能更流行或更奇特,但可以更好地利用人才库来使用 Java 小程序创建 Web 应用程序,因为这是一种他们已经通过与服务器端的东西。
Java 人才库使用 Java 小程序解决方案以比任何其他技术更高的准确性来交付变更请求可能会更快。
有时,技术解决方案中最重要的是它的功能以及需要为他们提供支持的人员对变化做出反应的速度。
JVM 非常普遍,尤其是在企业世界中,至少在我工作过的地方,总是安装了 JVM。
我目前正在开发一个 Java Applet,但总的来说,除非必须,否则我永远不会使用 Applet。但话又说回来,我也不会使用 Flash 或 Silverlight。小程序的加载时间很慢,并且在网页中显得格格不入。此外,Macromedia/Adobe 已经超越了优秀的小程序。