在很多网站上,网友都会问一个相同的问题,到底是学Java还是.net,个有个的见解。$ f, X2 N8 s; H! R) g& ^
自从.Net问世以来,程序员都很关心的一个问题是「该学Java或.NET」。我也在挣扎,该「该继续Java的研究,或者该开始准备培养.NET的知识」。
7 v, Q3 |) i) v: l2 U |0 ]2 ~ 最好是能两者兼顾,但是每个人的时间都很有限,想要兼顾两者,其实不太容易。投入在.NET的时间越多,所能花费在Java的时间自然就少了,反之亦然。在信息爆炸的时代,重要的不是信息的取得,而是信息的抉择。信息太多,时间太少,如果不能慎选适合的技术,只会平白浪费许多时间,斫丧自己的竞争力。) r0 g+ o! K% h1 c1 ]' y: Y3 l
一 开发效率方面:: L7 p" I# `3 F4 [! r+ ]; O
对我们来说选择开发工具的最需要衡量的就是这一因素:
$ i) F! h3 }+ K+ |& Q 表现层开发:J2EE这方面非常欠缺,把这一任务丢给了应用服务器厂商和编程人员,不象.Net拥有很牛的.Net Studio,不过Jbuilder 6已经出来了,支持EJB2.0 也不算太落后,但一直没有解决方案的就是页面用户控件(当然Turbine的Action Event也算一种),缺乏可视化设计和Servlet应用程序框架生成。我期望的一种方式是具有象.Net Studio一样的可以所见即所得的编辑模板(Template),绑定用户按钮事件处理。目前可以通过javascript库,模板库及宏库略微缓解一下Servlet的开发。ASP .Net和Servlet都支持动态更新表现层。
4 o/ Y" k8 ]! w) R 二 XML支持能力:, A6 @; y ], r: E5 O* H
.Net一直叫嚣的就是我集成了XML和Web Service,但JDK1.4也搞出了XML规范,这方面已经差不多了,不过.Net的易用性好得很,而且就此一家,程序员不必费心思选组件或产品。
4 G9 [5 k7 w9 i8 ] 在采用XML和XSLT的开发模式中:微软的SQL Server 2000直接提供了HTTP Query到XML数据的功能,不过我用dbxml也能做得这一点嘛,还适用于大多数的主流RDBMS,更牛!这种开发模式应该是未来的方向。2 b- b+ }, W3 b0 x: J% p
三 理解的两者本质 p$ [6 g2 ]7 {5 ^8 G' g6 Y
Java是绑定于一种语言的跨系统的平台,是一个有多家供应商提供竞争性产品的规范。, ?. y7 \2 l( Y; k& j4 r! L% R
.net是绑定于一种系统的多语言平台,是一个规范性较弱的垄断性产品。9 r6 Q0 q t' p
一个是规范一个是产品,本来就不同。于是.net的发言人说,规范和产品没得比,要比就比具体产品。但,Java天生是规范,这不是Java的错,.net生来是迎战Java的,孤军奋战是他的命。 ?- \6 Y# M4 V8 d0 J& G4 H x
随便问一个稍有头脑的Java程序员,Java最大的好处是什么,他会毫不犹豫地告诉你:“简洁”。Java为Internet而生,也为自己“简单易用并提高生产效率”的理念而活。
! B3 D! S0 Z; J5 ~' \* j' U Java讨人喜欢,因为他把家底亮出来,鼓励大家发挥聪明才智帮他进步。那么多开源项目,都在竞争中求发展,对Java的发展贡献巨大。 Java作为规范,吸收成果不计出身,善于否定自己、自我扬弃的优点有目共睹。EJB3.0就是一例,EJB是Java 2企业版(即J2EE)的杀手锏,在企业级应用中广受推崇,占据大型企业应用的高端市场。但EJB2.x也因其不易开发、部署受到批评。新近通过的EJB 3.0几乎是对EJB2.x的全盘否定,丢弃了重量级的EJB2.x,引入轻量级开源项目Hibernate的设计理念,公布不久就获得多方支持。为了理想,Java不惜付出代价,要不然哪有Highway帖子里.net设计师的评价:“Java发展到现在,还能相对那么紧凑精干,不容易!”
5 c6 S( [2 Q/ Y2 t .net不同,出生于老牌商人世家,什么理念啦,原则啦,对商人来说不重要。重要的是要保住市场,抢占市场。0 Z* M) R4 H2 f6 H' Z3 o \
他的主人以操作系统雄霸桌面电脑,曾经对互联网不屑一顾。当终于发现自己犯了原则错误,不得不迎头赶上时,.net应运而生。.net世交多,要尽量保持亲戚关系,还要让亲戚的支持者原windows平台开发人员保住饭碗,象EJB3.0那种过河拆桥痛下杀手的事情还没干过。新功能要加,历史物件也要留。但他和自家亲戚关系紧密,外人从亲戚家拐个弯就到他家,自在,没有陌生感,也没有路费。人留住了,市场就留住了。至于跨平台,有违家族利益,不符合祖训,所以理论上的跨平台,他不打算认真对待。但中小企业应用的市场,他占住了。- V' ]$ B4 o9 A+ t2 w
于是呢,Java阵营继续为理想而战,.net阵营继续为市场而战,各得所需,都忙得不亦乐乎。 |