代码改变世界

一切变得越来越有趣了

2006-12-17 01:52 FantasySoft 阅读(...) 评论(...) 编辑 收藏

     之所以写下这样的标题,是因为最近的两则新闻。一是Google宣布GWT(Google Web Toolkit)开源;二是Java 6的发布。这两条新闻本身确实平淡无奇,特别是对于.NET社区而言。新闻始终还是新闻,最大的作用就在于吸引眼球。不同的新闻有不同的效果,有的会让你两眼放光,目不转睛,有的则会让你眼睛咕噜一转,脑筋开窍。我想这两则新闻都属于后者,眼睛咕噜咕噜转的同时,还会让人喜上眉梢。

    让我从第一则新闻说起吧。我没有用过GWT,之前也只是听说它是Google发布的一个Ajax框架。既然是Ajax框架,那么我很自然地将它和ProtoType、Dojo、JQuery之流等同起来,也就没有怎么去理会它了。然而,这则新闻的发布让我再次将目光投向了GWT。这下子,我发现之前的判断是错误的,因为GWT远不止Ajax框架那么简单。在GWT的官方网站上,我们可以看到这样一句话:You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML原来,我们可以使用GWT在Java语言编写前端代码,然后GWT编译器帮助我们将Java类转化为烦人的JavaScript和HTML。噢,这确实与ProtoType等Ajax框架有很大的不同,因为我们不再需要去拨弄了JavaScript了。更重要的,这种开发方式再一次模糊了服务器端开发和前端开发之间的界线,让服务器端开发人员也能够承担起实现前端功能的任务。这让我不由得想起了ASP.NET。遥想当年,ASP.NET横空出世,事件驱动和服务器控件是它最大的特点,让我这个只会一点点HTML和JavaScript的前端开发者轻松进入了服务器端开发的世界。也许把GWT和ASP.NET放到了同等位置有些抬举GWT了,不过两者的设计思路是不是有着异曲同工之妙呢?

    是不是觉得有些乐趣了呢?好,我们接着看第二则新闻。Java 6发布了,这对.NET社区来说,估计也是八辈子拉不上关系的新闻。但是如果你多一些好奇心,去看看Java 6的新特性,或许你会找到一些感兴趣的内容。是的,就是它了,这个让人眼前一亮的新特性就是脚本引擎现在你可以在Java代码中运行Javascript的脚本了!虽然Java 6只是基于Rhino提供了对Javascript的支持,但是由于脚本引擎的开放性设计,在其基础上增添对其它脚本语言的支持是完全没有问题的,也就是说在不久的将来,Java不仅可以和Javascript一起协作,还能够和Python、PHP、Ruby等语言进行协作。这不得不让人大呼过瘾啊!说到这里,你又想到了什么呢?没错,就是咱们的.NET平台。.NET平台从诞生那一天开始,就肩负着让各种各样的语言在统一的平台上相互协作的重任。可惜的是,在这样美好的蓝图之下,很多语言都提供了基于.NET的实现,但还是MS提供的官方语言VB.NET和C#在唱着独角戏。不过,话说回来了,即使其它.NET语言真的得到了长足的进步,能够和VB.NET、C#相提并论,但它们之间的协作都只是限于IL层面上,和Java和Javascript在代码层面上的协作相去甚远。说到这里,喜爱.NET的你是不是有些沮丧呢?不要紧,正所谓“无独有偶”,还好我们的牛人Jim Hugunin从开源社区中带来了可爱的IronPython,我们也就看到了IronPython和C#之间很多奇妙的协作。

    是的,一切变得越来越有趣了。然而——你被耍了。每当微软发飚,一口气发布30、40个新产品,你还真以为,那是微软一个人干的。不过说真的,技术都是相通的。信不信由你。^_^   (以上的“微软”可以用Google、IBM、Borland等等替换,悉随尊便)

    PS:最后额外送上一条新闻:微软在12月13日正式推出了机器人制造软件Microsoft Robotics Studio。看变形金刚长大的朋友们是不是有些心动了呢?