posts - 256, comments - 1315, trackbacks - 41, articles - 8
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

一切变得越来越有趣了

Posted on 2006-12-17 01:52 FantasySoft 阅读(3230) 评论(24)  编辑 收藏 所属分类: All About SoftThought Ware

     之所以写下这样的标题,是因为最近的两则新闻。一是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。看变形金刚长大的朋友们是不是有些心动了呢? 

Feedback

#1楼    回复  引用  查看    

2006-12-17 05:00 by fitnet [未注册用户]
hehe, “咱们的.net平台”。
虽然现在工作中.net下用的多了写,但作为一个程序员,还真没体会到你的java,我的.net是什么感觉。

#2楼    回复  引用  查看    

2006-12-17 09:57 by anikin      
"我们可以使用GWT在Java语言编写前段代码,然后GWT编译器帮助我们将Java类转化为烦人的JavaScript和HTML。"

这并没有太大新意,只是把javascript封装起来了,我们的.net不是也可以用asp.net ajax + ajax control toolkit 来生成javascript的吗?

#3楼    回复  引用  查看    

2006-12-17 10:29 by Cat Chen      
GWT和Script#几乎是同一个星期发布的,目标都是直接将Java/C#编译为JavaScript,因此都自带了一个JavaScript Library用以实现原本Java/C#基础类所拥有的全部功能。唯一差别是,GWT得到了Google官方支持,Script#只是“个人作品”。

#4楼    回复  引用  查看    

2006-12-17 10:54 by neuhawk      
java /c#都快要比c++复杂了.

#5楼    回复  引用  查看    

2006-12-17 11:03 by neuhawk      
现在GWT用的人很少呢,到javaeye上,没什么人关注.
至于脚本,已经java有很多开源的脚本了.

#6楼    回复  引用  查看    

2006-12-17 11:37 by 壮志      
关注一下

#7楼    回复  引用  查看    

2006-12-17 13:42 by 木野狐      
恩,我关注 GWT 能否在 .NET 下使用?或者用纯粹 js 的方式去调用 Google 封装的 UI 控件?

#8楼    回复  引用  查看    

2006-12-17 14:37 by Anders Cui      
It takes 5!

#9楼    回复  引用  查看    

2006-12-17 15:22 by abeen      
.net 的使用人群在不断的增长的!

#10楼    回复  引用  查看    

2006-12-17 15:35 by Cat Chen      
@木野狐
GWT的JavaScript Library应该可以在.NET下用,就如Atlas的Library也可以分拆出来用,不过那应该没什么意思吧。

#11楼 [楼主]   回复  引用  查看    

2006-12-17 15:41 by FantasySoft      
@anikin
其实会有些不一样。GWT在一定程度上有些类似若干年前流行的CGI和Servlet,当时所有的HTML都是由服务器端代码直接输出的。这个特点在当年被众多开发人员所诟病。

技术发展通常都存在着这样那样的返朴归真。在Ajax大热的背景下,one page one application的理念以及控件的思想被众多开发人员所接受,那么由服务器端代码直接输出前端的HTML和JavaScript又变得有价值了。因为这降低了开发人员开发web应用程序的门槛。

而asp.net ajax + ajax control toolkit还是前后端代码结合的方式。

#12楼    回复  引用  查看    

2006-12-17 16:43 by Jeffrey Zhao      
要C# -> JavaScript的话其实可以使用Script#,但是说实话,Java和C#的表现能力都远远小于JavaScript,所以我还是更加推荐直接写JavaScript,能够大大发挥程序员的创造力。

#13楼 [楼主]   回复  引用  查看    

2006-12-17 18:04 by FantasySoft      
@Jeffrey Zhao
我觉得这些产品还是会有很大需求的。针对web应用程序的开发而言,如果要求开发人员对前后端代码都有充分了解,那么这个要求就过高了。

在Ajax还没有诞生之前,Front Controller模式被认为更灵活,而Page Controller模式则相对死板一些。但是现在Ajxa火了,Page的地位上升到了一个前所未有的高度,大家的焦点也相应转移到了控件上。基于此,如果有统一的Ajax控件库,那么大家开发的门槛就会降低很多了。事实上,像dojo就提供了很多这样的控件,基于ProtoType的控件也是数不胜数。但不管怎样,对于不熟悉前端代码的开发人员来说,这些控件只是提高了开发效率,却没有真正降低使用的门槛。这一点,GWT做到了,我想这是革命性的。

#14楼    回复  引用  查看    

2006-12-17 20:27 by Wisdom-zh      
确实, "咱们的" 这种说法有点意思!

#15楼    回复  引用  查看    

2006-12-17 20:43 by neuhawk      
其实,java里这样的框架很多,比如echo2,

#16楼 [楼主]   回复  引用  查看    

2006-12-17 21:33 by FantasySoft      
@neuhawk

很早就听说了echo和echo2,当时没有怎么在意,因为迷上了WebWork :P

刚刚在您的指引下,跑到了echo2的官网。果然,echo2的特性和GWT是很相似的。我确实孤陋寡闻,在这里班门弄斧了,呵呵~~

不过,这也正好说明了新闻的效应,吸引了大家的眼球。echo2这个那么cool的框架,之前都没有看到什么介绍,估计用的人还是少啊~~

感谢您的指点。 :)

#17楼    回复  引用  查看    

2006-12-17 22:31 by neuhawk      
其实echo2出来的很早,也相对成熟些,我以前花了很大精力学习java,后来才转到.net的.其实java优秀的框架太多,比如我以前很喜欢tapetry,但是想做点深入的东西就有点麻烦了(要自己写控件,而且不方便).我始终觉得,ajax只能是锦上添花,而不能说是种革命,ajax毕竟是保皇派的(加点洋务运动的味道),而wpf wpf/e flex才是革新派的.
不过很多时候,技术受商业的控制太多了.

#18楼 [楼主]   回复  引用  查看    

2006-12-17 22:57 by FantasySoft      
@neuhawk
呵呵,我和您正好相反。我先学习了.NET,后来转到了Java。不过,转得不够彻底,对.NET还有些恋恋不舍,当然主要还是因为IronPython了。

一开始,我也是非常喜欢Tapestry。因为03年我转向Java的时候,只有Tapestry和ASP.NET最像。

对wpf wpf/e不了解,不过也从朋友的赞叹中听出了这种革命性。我还是比较喜欢open的东西,似乎这几个产品都没有满足这个要求。

#19楼    回复  引用  查看    

2006-12-17 23:01 by huangyi[匿名] [未注册用户]
我看好多评论者误会 GWT 了,编译和生成是不同的。
ps: 这里有一个 gwt 的 python 版本:http://pyjamas.pyworks.org/

#20楼 [楼主]   回复  引用  查看    

2006-12-17 23:11 by FantasySoft      
@huangyi[匿名]

又是您啊,欢迎,欢迎! :)

看了您给出的link,不禁要大叫一声COOL!

#21楼    回复  引用  查看    

2006-12-18 13:58 by Renard [未注册用户]
呵呵,一看便知楼主原来是个篮球迷。

#22楼 [楼主]   回复  引用  查看    

2006-12-18 14:03 by FantasySoft      
@Renard

嘿嘿,我确实很喜欢NBA,当然也很喜欢打篮球,每个周末都会去打,虽然打得很烂~~

#23楼    回复  引用  查看    

2006-12-18 14:19 by 蛙蛙池塘      
老套了有些。

#24楼 [楼主]   回复  引用  查看    

2006-12-18 16:00 by FantasySoft      
@蛙蛙池塘

此话怎讲?恳请指点。 :)

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-12-17 14:47 编辑过
 
历史上的今天:

另存  打印
最新IT新闻:
· 雅虎首页大变脸 阿里风格上身
· 万名Linux使用者向暴雪请愿Linux版《Diablo III》
· 56.com我乐网将全面转行 退出视频行业
· Joost借道TOM在线 将正式进军中国
· 微软副总裁公开承认Vista存在问题