所有的Java小程序去哪儿了?
当java年轻的时候,人们对写小程序感到兴奋。 他们很酷,很受欢迎,一会儿。 现在,我再也看不到他们了。 相反,我们有Flash,JavaScript和其他networking应用程序构build技术。
为什么网站不再使用Java小程序?
我也很好奇:从历史上看,你为什么认为这发生? 为了保持Java小程序的活跃,可以采取什么不同的措施?
我认为Java小程序被Flash和ActionScript(双关语意)所掩盖,更容易用于当时使用的Java小程序(animation+有状态应用程序)。
Flash在这方面的成功又归功于其小得多的文件大小,并受益于Sun与微软的诉讼,导致微软在IE浏览器巨大支配地位的时代,微软从Internet Explorer中删除了MSJVM。
1)AWT为可怕的用户界面。 Swing在这方面有所改进,但已经太晚了,因为…
2)微软在浏览器(它的专有MSJVM)中放弃了对Java的支持,而在此之前,它只支持它发布的最后一个版本,大致与JDK 1.1兼容。
3)所以今天你不能确定一个小程序将运行在大多数非开发人员的机器,不像闪光灯。
顺便说一下,ActiveX也可以这么说。
对于它的价值,Sun再次将资金和资源投入到小程序中。 他们已经在JDK 1.6.10上做了一些非常重要的改进,以减轻很多用来展示的“笨拙”小程序。 例如,通过此更新,您可以在加载小程序时显示自己的自定义加载图像/animation,并且插件已被放在主要饮食中以提高性能。
他们还开始直接与Flash和Silverlight – JavaFX竞争。
市场是否会对此作出反应仍有待观察,但鉴于Flash在市场上的主导地位,这对Sun来说肯定是一个有趣的举动。
到Java的GUI API停止吸吮时,每个人都在使用Flash。 即使在今天,Java在做花哨的graphics方面也不如Flash。
我认为这是因为Java是一个“真实的”,即。 通用语言。 要创build一个小程序,你必须编写代码,而且没有任何快捷方式。
现在,闪存等已经出现,你几乎可以通过制作一个很酷的animation为你的网站拖拉和放下你的方式。 这是一个低得多的入口障碍 – 你不必知道如何编程,以获得Flashanimation工作。 所以flash增长了,Java小程序已经不再使用了。
我认为小程序是微软和Sun之间的战争中的附带损害。
起初,JVM的加载非常缓慢,并且需要太多的内存。 然后,当计算能力的增加使JVM成为可能的时候,Sun试图控制Java的所有东西,
作为Sun 3月份针对微软提起的另一起私人反托拉斯诉讼的一部分,Sun寻求一项初步禁令,要求微软在Windows XP操作系统中包含当前的Java虚拟机(JVM)。 微软公司表示,本周joinJVM的决定是与Sun最新的法律纠葛的直接结果,但微软计划在2004年1月1日之后解散Windows对Java的支持。 微软反向课程将在Windows XP中包含Java VM – 目前
他们花了不less时间在浏览器中加载,然后为很多人工作。 当他们终于加载,界面是丑陋的,笨重的。 我认为糟糕的用户体验是使applet过时的一大步。
所以要回答原来的问题,我有一个自己的问题 – 你问“为什么网站不再使用Java小程序”,我的回答是“为什么会有人想?
我在acedemic环境中看到了很多东西(在部门或教职工网站上),但是你说得对,因为他们不是很受欢迎。
但是请记住,Java的重大承诺已经实现了。 我们有Flash,Java Applets,Silverlight和不断改进的JavaScript框架。
现在,如果我添加个人意见 – 我认为Java小程序是不雅观的。 他们往往看起来丑陋,Java运行时在操作系统中的存在(在运行时的视觉效果,更新和丑陋的安装程序方面)太过为人所知。 其丰富的媒体环境和其透明(无处不在)的部署,Flash更好。
人们仍然使用小程序。 但是你是对的,那里有很多不同的解决scheme。 例如,看看javafx
我认为兼容性问题是一个大问题。 最值得注意的是IE和微软的Java VM,它不像标准兼容。
即使使用Sun JVM,也可能会出现问题。 我已经玩得很开心,因为我有两个第三方小程序需要不同版本的Java,导致各种各样的问题。 Sun已经试图通过用Java Web Start取代Applets来解决这个问题,它在浏览器中给你一个链接,在它自己的窗口而不是在浏览器内启动应用程序。 (从理论上讲,使用JWS你可以使用不同的虚拟机来创build不同的应用程序,但是它似乎永远不会为我工作。)
JavaScript的进步也使开发更为丰富的网页成为可能,所以过去许多只能在小应用中做的事情现在可以简单地通过AJAX来完成。
首先,他们没有走。 你仍然可以在网上find很多小程序,很多人特别用它来演示algorithm等等。
优点:可以利用现有的库(math,物理,sorting,graphics等),它比Flash更快。
不方便:以最近的JVM为目标可能是有风险的(虽然Sun在自动更新方面做得很好,看起来好像很多人已经在使用Java 1.6),但是加载时间有点慢(即使已经取得了很大的进展) 。
你仍然可以find很多游戏小程序,比如书虫(Bookworm) ,也许还有一部分工作已经完成,可以在手机上运行它们。
其次,我可以预测重新获得对JavaFX的兴趣。 对类固醇小程序,能够打破“小程序是丑陋的”传奇… 🙂
最后,像Processing这样的库可以非常容易地创buildgraphics密集的applet,并且你可以在网上find很多,例如。 在OpenProcessing最差的地方(编程初学者)接近最好!
我想知道JVM究竟有多广泛? 在Flash的情况下,IE5预装了它,给它一个庞大的自动用户群。 但是除非JVM包含在操作系统安装中,否则用户不会拥有它。 我想作为一个开发者,你的目标是最大的安装基础,也就是selectFlash over Java。
有Java小程序在这里和那里; 绝对不是普遍的。
我相信这是他们的丑陋,使他们远离现代networking。 flash带来的devise,javascript带来了一个方便的方式,让客户端上一些很酷的东西。 作为一个浏览器内的盒子(就像闪光灯一样,但是更加丑陋),applet技术被放弃了。
实际上,唯一可能会被忽略的是在web内部有一个“客户端 – 服务器”types的通信的可能性,因为java applet可以有一个有状态的连接。 另一方面,你将不得不把一些服务器放在另一边,打开一个端口,这对于共享主机环境来说太过分了。
小程序仍然生活在一些不同的领域,如道路,隧道,发电厂和类似的东西的控制中心。
人们仍在使用小程序,至less对于我正在使用的公司来说。 小程序主要由内部用户使用。
我觉得applets有它们的好处,因为在服务器端使用Java的公司,很可能会拥有一大批擅长Java的人才。
虽然也许其他技术,如Javascript,HTML / CSS或Flash更stream行或更奇特,但人才库可以更好地用于创build与Java小程序的Web应用程序,因为它是一种语言,他们已经熟悉了通过他们的工作服务器端的东西。
Java人才库能够以比其他任何技术更高的准确性提供Java applet解决scheme的变更请求。
有时候,技术解决scheme中最重要的是它的function,以及需要为他们提供支持的人能够多快地对变化做出反应。
JVM是非常普遍的,特别是在公司领域,至less在我工作的地方总是安装一个JVM。
我目前正在开发一个Java Applet,但总的来说,除非必须,否则我绝对不会使用applet。 但是再一次,我也不会使用Flash或Silverlight。 小程序的加载时间很慢,而且在网页中看起来不合适。 而且,Macromedia / Adobe已经推出了好的小程序。