John Jiang

a cup of Java, cheers!
https://github.com/johnshajiang/blog

   :: 首页 ::  :: 联系 :: 聚合  :: 管理 ::
  131 随笔 :: 1 文章 :: 530 评论 :: 0 Trackbacks
Java Applet不适用于这样的应用?
    在基于浏览器的应用中,为何Flash大大流行于Java Applet?Java Applet是否真的不适用于这样的应用场景?John O'Conner有话要说...(2008.03.29最后更新)

    我已正与一个公司一起创建一个聊天系统,以帮助该公司能够在线地销售出它们更多的产品。后端全是Java,还有Spring,Servlet,...都是些好东西。前端是...好吧,是Flash。
    当有可能时,我更喜欢在每个地方都使用Java,故我就这个面向客户的应用--一个真实的聊天客户端程序选择使用Flash而提出了一些问题。这个谈话进行起来就像这样:
    John:哇,这个产品在每处都使用了Java,但前端除外,而这正是客户与之实际交互的地方。为什么在那儿选择Flash?
    Dev mgr:是的,Flash很容易。使用这样一个简单的UI也是很容易的。
    John:我明白,但使用Java也可十分简单地做出这个聊天UI。现在,Swing的布局管理器已很容易使用,特别是当你使用像NetBeans这样的IED来布局UI时。
    Dev mgr:那可能是对的,但这种选择不仅仅是基于简易地创建UI。
    John:哦?那是什么呢?
    Dev mgr:每个客户端浏览器中都有Flash。我们不必再安装一个运行时程序了。
    John:Java也将会那样,不是吗?大部分的PC制造商都包含它了。
    Dev mgr:也许,但我们知道Flash肯定是那样的。Flash遍及网络,而且很可能客户已经有了Flash的运行时程序。如里没有的话,下载与安装这个运行时程序也是很快、很容易的。
    John:是的,但Java也将易于安装。
    Dev mgr:但是Java会花费很长的安装时间。它太大了。
    John:我不知道现在是否还是那样。为了使运行时程序更小也更加的模块化,已经做了很多工作。所以你仅需要下载你所需要的部分。
    Dev mgr:我们所需要的就是非常、非常的简单。一个非常简单的UI,它有着非常简单的功能去中转聊天文本。Flash可以做得很好。
    交谈继续着,但我不想弄得太长。可能Flash做小应用时会比Java做的更好?在Sun工作了如此长的时间,我就很自然地想像Java无处不在,而且其它的每个人也都喜欢它。我一直都能把事情做好...但很显然,不是每个人都能做到。下载文件的大小从未烦扰过我...但它确实烦扰到了其它的一些人。
    另外,我发现感觉与现实一样重要。所以,如果Java现在更快,更轻巧,而且在浏览器中工作得极好,那将会怎样呢?不知何故,这还是没有用。旧有的感觉仍就在那儿--Java很慢,很大,而且很难在浏览器中工作。更令人惊讶的是,你会发现有些人在那种情况下就再也不把Java当作他们的解决方案了。
    我联系了一些朋友,他们一起搭建面向客户的网站。他们也是使用Flash。那么Java呢?当然...都是在后端的业务逻辑中。那么对于客户将会使用到的应用呢?如果这些应用是嵌入到浏览器中的,它们就会使用Flash。哇!
    这样,你如何对待这种感觉呢?Java需要做些什么以反击这些旧有的感觉?为什么Flash在基于浏览器的应用中更为流行?我们如何才能使那些应用转而使用Java?

posted on 2008-02-26 14:07 John Jiang 阅读(2432) 评论(9)  编辑  收藏 所属分类: Java翻译AppletGUI

评论

# re: Java Applet不适用于这样的应用?(译) 2008-02-26 16:29 杨一
Because Flash never wished to be the server side application and Java never be treated as first-class middle ware by the OS that the vast majority use.   回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译) 2008-02-26 17:43 Sha Jiang
由于目前我在从事Swing的开发(部署利用Applet),在java.net上看到John的这篇文章,确实有些共鸣,故翻译在了此处。
在上述"谈话"中所涉及的问题主要是:[1]Swing构建UI是否简易?[2]Java的性能是否高?[3]系统是否默认安装JRE?[4]JRE是否很大?[5]JRE的安装是否方便?

对于问题[1],无论根据现实世界中的实际项目,还是根据我个人来亲身体验,使用Swing进行UI开发是不难的。如"谈话"中所提到的,可能布局管理器算是有些复杂,但在实际中可以规避一些复杂性。而且大多数应用不会产生严重的复杂性。

对于问题[2],这是一个历史很"悠久"的问题,也似乎是制约Java在桌面领域发展的主要原因之一。我虽然是Java阵营的忠实成员,但也不愿盲目地跟随Java guru们以十分肯定的口吻说"Java性能一点都不比传统的编译型语言慢,在某些方面甚至更高"。但根据自己亲身经历来看,Java桌面程序的性能应该是"足够"高的。肯定不需要较长的启动或响应时间。

对于问题[3]、[4]和[5],都与JRE有关。必须承认的是,即有的JRE确实很大,约有十数兆之巨。官方也已经注意到了这个问题,所以即将正式发布Java SE 6 Update N(原称Consumer JRE)。这个新的JRE,很小,高度模块化,解决了Java Applet浏览器插件之前的一些长期性问题。
其实在所有的提到的问题中,我个人认为"系统是否默认安装JRE"最为关键。Flash能够长足发展,与主流系统/浏览器默认就支持它是密不可分的。
如果绝大多数系统都已经默认安装了JRE,那么又有多少人会关心它"文件太大,安装太慢,安装不方便"之类的问题呢。就好像没人关心IE的"安装文件会有多大,安装会花费多少时间,安装时是否方便"这类问题一样。
如果用户要使用一个基于Java的UI软件,发现要先下载、安装JRE,这确实很麻烦。无论这个过程有多快捷,都是在阻碍用户使用这个UI软件。
但平心而论,与安装众多的客户端软件(如,QQ)相比,安装JRE的过程其实算不了什么。而且可以只安装一次。  回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译) 2008-02-27 16:26 蕲春人
谢谢你的文章  回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译) 2008-02-29 20:19 Java.net
个人比较看好Applet...首先jre的问题目前已经得到sun的关注,并且有了即将发布的消费版jre..这样就解决了客户端下载的问题,应该会控制在4M以内.IE等主流浏览器预装的可能性不太大,但至少企业级的应用会大量使用起applet..毕竟是大多企业应用都是通过局域网在跑...  回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译) 2008-02-29 22:16 Sha Jiang
> 但至少企业级的应用会大量使用起applet..毕竟是大多企业应用都是通过局域网在跑...
对此吾不敢苟同 :-D
许多大型国际金融机构使用的客户端软件就是基于Applet并应用于Internet。  回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译)[未登录] 2008-04-15 09:37 javapon
好,关于Applet在客户端运行时,如果没有jre会下载安装jre的问题,以下的这段代码能够实现如果没有jre1.5.0_09则会下载安装:

<object classid = "clsid:CAFEEFAC-0015-0000-0009-ABCDEFFEDCBA"
codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5_0_09-windows-i586.cab#Version=5,0,90,3"
WIDTH = "500" HEIGHT = "400" >
<PARAM NAME = CODE VALUE = "HelloWorld" >
<param name = "type" value = "application/x-java-applet;jpi-version=1.5.0_09">
<param name = "scriptable" value = "false">
<comment>
<embed type = "application/x-java-applet;jpi-version=1.5.0_09"
CODE = "HelloWorld"
WIDTH = "500" HEIGHT = "400"
scriptable = false
pluginspage ="http://java.sun.com/products/plugin/index.html#download">
<noembed> </noembed>
</embed>
</comment>
</object>


/////////////////////////////////////////////////////////////////////////
可这安装的过程是要人工参与的,就像你提到的问题:([3]系统是否默认安装JRE?[5]JRE的安装是否方便?)。这安装的过程并不是很方便,因为要人工参与,并不是默认在后台自动安装那种,如果是学过java的人会知道是怎么回事,并能安装成功,可是你的程序如果拿给客户使用,他们不一定会JAVA,这下载安装的过程可能会让他们不知道该怎么办,他们会很害怕~~~,
能不能有什么办法,让这安装的过程不需要人工参与,能让它在后台自动默认安装啊?  回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译)[未登录] 2008-04-15 09:48 javapon
@java.net
他所提到的消费版jre,大概是什么东东啊?免安装的那种吗?现在发布没?  回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译) 2008-04-15 11:03 Sha Jiang
> 能不能有什么办法,让这安装的过程不需要人工参与,能让它在后台自动默认安装啊?
不可能完全不让用户手动安装任何东西。
Java SE 6 Update N(原称Consumer JRE)可以自动检测并安装应用程序所需要的文件。
但前提是,用户要先手工安装Java SE 6 Update N。

> 他所提到的消费版jre,大概是什么东东啊?免安装的那种吗?现在发布没?
可以关注一下JDK 6在java.net中的站点,
https://jdk6.dev.java.net/
https://jdk6.dev.java.net/6u10ea.html
尚未正式发布。  回复  更多评论
  

# re: Java Applet不适用于这样的应用?(译)[未登录] 2008-04-16 16:04 j2ee
>Sha Jiang
或>javapon

Java web start设置自动下载JRE的代码知道吗?(没有的话自动下载--本地的JRE或官方网上的JRE都可以)  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: