Flash真的优于Java applet吗?[关闭]


14

我还是一个学生,没有太多编程方面的实际经验。我从来没有写过超过〜5k行的代码。我已经用Flash和Java编写了代码,但我不明白为什么人们在Flash中编写诸如视频播放器(YouTube等)之类的Web应用程序,而不是在编写Java applet。因此,我想请具有实际经验的程序员在这个问题上说一些明智的话。

我看不到Flash优于applet的真正好处,但另一方面,至少在我看来,它似乎像地狱般的越野车。我知道在Flash中制作内容的速度更快,并且可以理解为什么这对于快速制作原型将是一件好事,但总的来说,这值得吗?每当YouTube发疯时,我都会诅咒开发人员使用Flash编写它。而且,如果您将Linux与Opera结合使用,则这种情况一直存在。

那么,基本上,为什么人们使用Flash而不使用Applet?


4
Java applets,呃……
安托

Answers:


34

Flash为用户提供了更加无缝的体验。Java小程序非常慢,因为Java VM必须先启动,然后才能运行。作为网站访问者,我讨厌Java虚拟机弄清时机冻结了片刻。如果我没记错的话,当我离开使用它的网站时,它也不会卸载,而当我真的不想它首先运行时,它会四处徘徊。

我在Flash和applet开发方面的经验(绝对有限)还告诉我,在Flash中开发动画更加容易。

再有历史。微软并没有通过开发自己的JVM并使Java的行为不同于Sun的Java小程序。结果,同一个applet可以在一个浏览器中工作,而不能在另一个浏览器中工作,这使得创建Java applet的可行性降低。

Java确实具有免费工具,可与制作Flash视频所需的专有Flash编辑器相对使用,但最终,其笨拙的做法使其劣势。


4
同意,JVM预热时间很可能是Flash吃掉Applet午餐的原因

1
此外,Flash最初主要是为了创建具有大量图形内容,声音和动画的出色交互体验。Java是一种通用语言,不一定是创建Web内容的最佳选择。
Martin Wickman

3
Sun成功地与尝试使用MS的程序抗争,从而使Applet在法庭上的责任降低了。没有MS-Java了,这是被禁止的。
用户未知,

1
可能有人会说,Sun的法律成功导致了该领域的技术失败。在Windows(市场上分布最广泛的最终用户操作系统)中没有默认JVM的情况下,Flash就有机会成为事实上的标准并抓住了这一机会。微软耸耸肩并创建了.NET以响应JVM的裁决,然后是Silverlight以响应Flash。现在,HTML 5已准备好淘汰大多数这些客户端解决方案。生活圈子。
Jesse C. Slicer 2012年

4

Flash音频和视频的播放就像地狱般的漏洞,但是Java并不总是更好。当Sun在次要版本之间引入一个错误,导致Applet生命周期恶化时,我在Java游戏中遇到了一些令人沮丧的问题。大约一年前,他们才真正开始将自己的行为与小程序结合在一起,即使那样,情况也不是很顺利。

就游戏而言,Flash的最大优势可能是更专业的开发环境和对矢量图形的良好库支持。Java的最大优点可能是能够使用签名的applet和JOGL / LWJGL进行真正的3D。


2

Java Applet的运行时开销(至少在Windows中)比Flash慢得多,并且更慢(以我的经验),并且我相信Actionscript语言比Java更高,因此这使得诸如动画和资源处理之类的事情(例如音乐/视频)更易于开发。


3
ActionScript只是具有不同名称的JavaScript。我敢肯定,有需要的人可能会就它是否比Java更高的级别进行长时间的辩论,但是在语言级别上,IMO的最大区别是动态类型与静态类型。
彼得·泰勒

2
如今,“ Actionscript”通常是指AS3,它比Java更像Java,而不是JavaScript,并且由于VM JIT(与仅解释的AS2 VM不同)而与Java更相似。
fenomas 2011年

2

Java从来没有非常吸引人的UI。他们甚至花了很多年才有了抗锯齿功能,使得文本难以阅读。afaik从未在主要的Java UI库中实现多线程渲染/交互。这些UI库本来就很迟钝的感觉。

由于Java是为大型项目而设计的,因此使用浏览器中的现有代码具有明显的优势。

HTML功能在过去几年中已得到显着提高。跨浏览器的兼容性已被淘汰,并且增加了一些功能,例如客户端存储和画布。

GWT提供了相当不错的API,可以使用面板和小部件的高级类和接口来创建UI。它将其转换为javascript,从而成为Java小程序和Flash的强大竞争者。


2
自1.2以来,抗锯齿一直在Java中进行。我认为更多的情况是人们没有花时间学习如何将其打开。
彼得·泰勒

Java 1.2始于1998年。关于多线程渲染/交互的废话是什么?Java是通常用于教授线程的语言。就是说,它具有当今所有语言中最方便,最先进的线程模型。(但是,几乎肯定不是最方便的线程模型...)什么是“呆滞感觉”?加载小程序比较缓慢,但是一旦加载,就可以在浏览器中获得最快的响应速度。
Evgeni Sergeev

2

总体而言,Flash开发人员比Java开发人员便宜。并且您可以找到能够在Flash中或在Flash中工作的图形设计师。因此,您可以更便宜地获得更漂亮的产品。


2
没有人值得他们的盐。好的开发商收取好的开发商价格。
MaxSan 2012年

1

简单的答案是.. flash是针对设计师的。Java对于程序员而言,没有比这更容易的了..没有一个比另一个更好..它们只是用于不同工作的不同工具..因此,假设Flash或Java彼此之间是优越的。偏见..它们只是不同的工具,都可以在不同的上下文中完成工作..至于下降表决..我看不出你的意思..说这样的话很重要..不要让偏见陷入困境方式..

你丢下选票了吗?如何以建设性的方式告诉我们所有人为什么?:)


+1是因为您是对的:Flash适用于演变为Web程序员的Web设计人员。Java适用于逐渐发展成为网站的程序员。
克里斯·范·贝尔

怎么样upvoting我的反应,如果你认为它值得+1 :)嘿嘿
马克-安德烈·贝努瓦

1
我自然地做到了。
克里斯·范·
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.