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