java与c#学那样好,谁更有前景些?
C#与Java,单从语言角度来讲,C#可能更强一点。
但是,需要选择的是platform,而不仅仅是语言本身。c语言好吧,但现
在不选择他,因为他不适合开发大型的分布式的应用程序。J2EE和.NET,选
择是J2EE。
java的成功,应该说是jcp成员的良好协作的结果。基于J2EE specification,
各个公司提供了scalable, available, high-performance的产品,因为他们是在implementation上的竞争。java的成功,是一种商业运作模式的成功。java,已经不能单纯的理解为java language,而应该是java technology。
任何一个平台的成功,需要有四个基本要素consistency, adoption,openness , specification。
Consistency
java的write once,run anywhere,无疑是一致性方面的最好的明证,其中的好
处,我就不讲了。
Adoption
微软总是希望别人买他的产品,不管他是好的,还是坏的。一旦选了.net
,就被绑定到了windows的平台,除了操作系统,还有开发工具,服务器,等等。也就是说,一揽子的方案,都是微软的,好像没有了别的公司。如果有一天,想换成unix了,那么,开发的产品,或许只有写在纸上的文档还有用。这个代价太大了。如果用J2EE,操作系统,你换吧,不想用WebLogic了,你就用Websphere好了,tomcat+jboss也可以。j2ee给了我们很好的选择性,而且在交换平台的时候也减少了我们的费用。我总是想不通,为什么微软在走IBM 80 年代的老路,总是提供封闭式的系统。
Openness
良好的开放性提供了更好的协作性。J2EE的Specification都是公开的,也就是说,所有的接口都是标准的,对于大型项目,每个人,甚至一个公司,都只能担当一个小角色,我们开发的产品需要和别人协作。我觉得在Specification级别上的开放,比开放源代码要好,(如果说现在微软公开了他的操作系统的源代码,有多少人去看呢。我对微软的观点,开放源代码遏制了创造性,某种程度上表示赞同),因为源代码只提供了一种实现形式,并不一定是最好的。Oracle的总裁说,在公开标准的时代,没有那个产品今天是最好的,明天会还是。看一看
WebLogic和Websphere的竞争,还有Oracle9i Application server 中的许多好的特性,可以看到,基于实现的竞争是有很大的优势的,在得到最好的性能以外,还可以和别的工具无缝的集成。难道这不是很好的方案吗?
Specification
对于开发人员来讲,有许多人都多多少少希望了解一点系统底层的结构,所以
,有一份平台的Specification是很重要的。我们需要详细的了解平台api,policy,interface。
java这门语言也经过了这么多年的发展,也已经很成熟。J2EE已经有了3年的使用,可以说已经很成熟了,而且已经占据了大量的市场份额。微软的.net到现在还是概念,真正平台的推出,也要在一两年以后。.net平台到底这么样,有没有那么好,我们还不知道,必尽需要时间的检验,也就是说,选择.net,我们有一定的风险。
我承认客户端技术方面,没有公司可以跟微软比。无论是传统的windows界面,还是浏览器的表现形式,都非常的丰富,使用也很方便。但是,在服务器端应用,微软的应用好像市场份额不大,无论是操作系统,数据库,还有他的Transaction server,而且集中在低端。所以,就让微软提供客户端吧。
我个人认为,5年之内,java不会输的。5年以后,说不定还有 A#,B#,D# 呢。
posted on 2010-09-17 08:48 ttlin2010 阅读(4126) 评论(25) 编辑 收藏 举报