我想我该纠正一下。还是犯了以名臆断的毛病,没认真调查就发表意见。j2s 其实并非由Java 动态生成 Javascript,而是直接用js 编写了一套基础的jvm(lang,io.util)以及 swt 库。完全同 java 和 swt 的package/class 名字匹配。和国内一个名为jsvm的项目思路相似,只不过完全遵从jvm和swt的命名规范。javascript 写成这样,确实不容易。所以它不应该叫Java2Script,而应该是JavaScript2。对这样的方式,忍不住又想举个例子,犹如一座山挡在路前,上有一条近捷的山路,旁有一条环山的远路,都能到达山对面。你会选择哪条路。我是愿意上山的,为了可以远眺的风景。

解决方案 »

  1.   

    这样的东西,要是微软或某大公司支持就能发展,思路和jsvm是一个样子,jsvm好像在多线程方面有个瓶颈,另外一个方面,js的性能,安全,知识保护方面还有些问题
      

  2.   

    J2S更多注重的是复用已有的Java代码,这个或许与JSVM有点不同。J2S不是重新去实现那些代码已经实现的功能(甚至不拷贝修改源代码),而只是重新编译。而J2S提供的编译器,这一点更像是一套语言了。虽然这只是一种语言到另外一种语言的转换。性能我认为一个大问题,JavaScript的性能确是不怎么样,譬如空循环50000次,则Java字节码运行大概1~10ms,而JavaScript无论在Firefox还是IE还是Opera都需要大概100~500ms之间,相差大约100倍!多线程,我不知道在web应用有没有很大必要,但是Desktop版的应用总是不知不觉就已经用了多线程。个人觉得关键是代码复用,复用已有Java代码直接转移到Web应用上,这是J2S的最大亮点。不知道各位对复用Java代码有什么看法。
      

  3.   

    有两个人说“不懂”,不知道“不懂”是指不懂“Java”呢?还是不懂“Java2Script”要干什么?还是不懂“Java2Script”可以干什么呢?
      

  4.   

    编译器的作用一般也就是混淆和缩小尺寸,好点的开源代码都带编译器。另外你说的复用应该是code层次的复用吧,应该是和jsvm一个意思,就是做一个WEB上的虚拟机。就和LINUX里的MONO类似吧
      

  5.   

    我的理解:
    Java2Script是Java to JavaScript,而JSVM是JavaScript for Java。一个是2,一个是4。这两者的本质(或者说出发点)我觉得有点不一样。JSVM是自己实现了一套运行的环境,包括很多API函数。而J2S更多的是提供一个底层的*.js文件,然后其它的代码都是由已有的Java代码来生成(有可能需要稍微做点小改动),也就是说Java2Script更多地站在Java开发者而不是JavaScript开发者的角度来发展的。当然如果就虚拟机的层次来说,其实两者是相似的。而真正地站在Eclipse JDT这个巨人的肩膀上,我觉得这个是J2S的最大亮点。但是就复用的效率而言,就如前面有人说的,J2S的命名更加规范化,也就是能够更好地复用已有的code(更重要的是复用已有的工具,例如J2S tutorial使用到的Visual Editor一样)。
      

  6.   

    Java2Script发布0.3.0了,增加的特性提供内置的运行J2S应用(从Java代码转换而来)的视图,还包括简单运行环境的配置。有点像直接把JavaScript应用当作是Java应用来运行的味道。其站点还新发了两篇教程演示如何使用新的特性:
    #1 Tutorial of J2S in Eclipse (1): Hello J2S World
    http://j2s.sourceforge.net/articles/tutorial-hello-j2s-world.html#2 Tutorial of J2S in Eclipse (2): Hello Simple User -- More about Hello World
    http://j2s.sourceforge.net/articles/tutorial-hello-j2s-user.html
    有兴趣的可以去看看