![]() |
|
Spaces home Think then doPhotosProfileFriendsMore ![]() | ![]() |
|
Think then doJune 28 【译】RIA:VM Runtimes or Browser Standards?摘要Apple宣布在其即将上线的服务中使用Sproutcore JavaScript framework,这一举动引发了大量的争论。它们大多围绕着在开发Rich Web Apps 时使用一个基于虚拟机的运行时环境还是依赖于浏览器标准,哪一种方式更好的问题。 正文现在,很多服务端的应用都是面向虚拟机编写的,例如Java虚拟机或是Microsoft的.net运行时。从应用程序的角度看,虚拟机不仅仅是减轻了不同硬件的差异所带来问题,同时它也具备了那些直接为本地机器所编写的应用程序(译注:直接生成本地代码,而不是生成中间代码)所不具备的好处。 以即时编译器为例,它可以访问运行时信息,并且可以使用这些数据来影响应用程序的执行情况(Application performance),这是静态编译器无法做到的。虚拟机的另外一个好处在多语言编程时得到体现,它简化了用不同语言编写的代码之间的交互。然而虚拟机最大的好处是它为各种不同的硬件和操作系统提供了一个相似的运行环境。 基于虚拟机的这种方式是否给客户端应用程序开发提供了类似的好处呢?在几个主要的虚拟机出现之前,(浏览器实际上给)客户端的开发提供了一个与服务器端(虚拟机所提供的环境)非常类似的环境。虽然说浏览器的开发商声称他们会遵守标准,然而他们所开发的浏览器却差别迥异。 就像10年前服务器端的开发一样,现在开发客户端程序的程序员使用两种主要的方式来简化客户端的开发:使用一些屏蔽了环境区别的库,比如Prototype,script.aculo.us,Dojo等,或者使用更加智能的编译器,它们能产生在不同环境下使用的高度优化的代码,比如Google GWT. 这两种方式消耗了大量的开发人员的智慧,与此相比,Microsoft, Sun,和Adobe相信未来客户端程序将会依赖于虚拟机。利用Silverlight,微软意图为客户端开发提供一种多语言的开发模式,类似于我们在服务端使用多语言开发.net应用。Sun已经更新了其对applets的兴趣,并且提供JVM作为富客户端应用的运行时环境。Adobe的Flex是一个面向Flash的虚拟机,基于开源的许可协议,目前已经到了第三版。BlazeDS已经有了一个引人瞩目的服务端集成案例。 当Apple上月宣布它将会在未来的在线服务中使用Sproutcore——一个新兴的Ajax框架时,有些人就猜测Apple此举意在表现其在RIA领域的分量,以及说明在“基于库实现跨浏览器富户客户端应用”这种方式背后有很多很多的支持者。RoughlyDrafted的 Daniel Eran Dilger在他文章“Cocoa for Windows + Flash Killer = SproutCore”中表示App这一举动可能有更广泛的含义:
很多开发服务端程序的开发者很愿意将他们自己与虚拟机绑定,因为虚拟机帮助他们轻松地实现了当前的目标,比如开发和部署跨平台的应用程序。而客户端应用开发者他们利用Flex可以收到同样的效果。 尽管跨浏览器的Ajax库发展的越来越好了,Tim Anderson仍然觉得现阶段的Sproutcore要想支持主要的浏览器也还有一段相当长的路要走:
除了跨浏览器的能力,虚拟机还提供了使用Ajax库所无法达到的功能。据Adoe的John Dowdel写到:
换句话说,像Java虚拟机,.net运行时和Flash这样的虚拟机可以给富客户端应用程序带来好处,就像它们给服务器端开发带来的好处一样。 基于虚拟机的环境让浏览器与标准的兼容性变得不那么重要了。JavaScript2的发布可能会是件好事:虽然Mozilla承诺会支持更高版本的JavaScript,但是JavaScript的创造者、Mozilla的CTO Brenda Eich却表示对于短时间内IE会支持JavaScript2他并不抱太大的希望。这不单是库和浏览器特性的问题,如果JavaScript2没有得到广泛的支持,开发者可能被迫编写旧版本的JavaScript程序,而无法真正利用JavaScript2的特性。他们要么为两种JavaScript分别编写应用程序,要么依赖于编译器将JavaScript2的代码降级,让那些不支持高版本JavaScript的浏览器可以运行它们。 Eich在最近的一次采访中写到开发人员可以通过插件ScreamingMonkey让IE运行JavaScript2的程序,该插件获得Mozilla和Adobe的支持。ScreamingMonkey依赖于Flash播放器,它的编译器Tamarin已经支持最新的JavaScript草案:
我不确定是不是应该绝对地使用基于虚拟机的方式还是让浏览器遵循标准。对于个人项目,我们可能需要在技术上做决策。基于我个人的经验,在客户端提供虚拟机会比使用Ajava库有更多的好处,包括YUI或Dojo这样的库。比如Flash虚拟机提供了更好的调试和分析支持,并且具有即时编译能力用于运行Flex程序。 那么对于构建富客户端程序,你会选择使用虚拟机还是让浏览器遵循标准呢? 【原文地址:Rich Internet Applications: VM Runtimes or Browser Standards?】
June 15 java.lang.Object cannot be resolved. It is indirectly referenced from required .class filesToday, I get an error message as the title of this post said when I open a project which I will work on in next two weeks. It's a J2EE application developed with MyEclipse 5.5.1 and I checked out source code of it at the end of the last week. Although it's my first looking to the source code, I do believe it is right because the project is now running on our client's site. So there must be something wrong with the environment. Google leads me to the developer community of Eclipse. And I am very lucky to find a topic related,can't resolve java.lang.Object .
I decide to check the project's build path at Snjeza's suggestion. Quickly, I find a suspect. In tab "libraries" of Java Build Path view, I see that the project requires JDK1.5 which can't be found on my laptop because the version of JDK installed on my computer is 1.6. I think that may cause the problem. So I add a new JRE System Library "MyEclipse 5.5.1 GA" come with MyEclipse IDE. Build the project again and errors' gone. June 13 Annual Goal Setting in short sentences
June 11 来看看咱们仙桃今天看到高中同学的qq zone上贴出了我们仙桃的好多靓图,心理突然有种莫名的冲动。我已经离开这个城市好多年了,虽然期间也回去过几次,不过仅限于在车站里出出进进的,没有仔细地看过它,真是没想到现在居然大变样了,变得这么好看了。我脑海中的人、物都还是读高中时候留下来的印象,从高中毕业到现在已经8年了,时间过的真快,转瞬之间的事情。 大家上这里来看看美丽的仙桃吧,我顺便再补两张:) June 10 Emonic 插件和 NAnt 为 Eclipse 提供 .NET 和 C# 能力Emonic(Eclipse Mono Integration) 是允许您用 Mono 或 Microsoft .NET Framework 构建 C# 程序的 Eclipse 插件。您可以通过此插件来使用项目向导创建 C# 项目。图 1 显示了带有 Emonic 插件的 C# 项目。 这里有一篇介绍将 .NET 应用从 Visual Studio 迁移到 Eclipse 的文章
|
|
|||||||||||||||||||||||||||||||||||||||
|
|