其实java和.net之间的竞争比我们想象中的还要复杂,到底谁会赢,实在很难说。java是sun的,sun本来是搞硬件的,现在主要的也还是硬件和服务。而微软号称软件帝国,有非常丰富的开发软件的经验,有非常经典的vc,vb等作品,资金充裕,软件研发能力在全球是数一数二的。还有两点很重要的,一是有操作系统和其他众多的产品作为后盾,可以提供一整套的产品线和服务,并降低成本;而是微软多年来已经有一大群vb,vc,asp的开发人员和用户,他们是最有希望转向.net的用户,这群人的数目在目前来说应该还是稍微比java的用户多(网上说今年在全球的范围内java开发者数目已经超过vb和vc的总和,但是我从国内的观察结果是还有一段距离)。而java呢,他最大的特点是跨平台,不受平台的限制,这对于一般的公司和新的项目是没有多大意义的,但是对于传统的大企业和巨型企业,由于他们多年来积累了很多的系统和数据,并且位于不同类型的机器上面,如何把这些资源结合起来一直是一个使他们头痛的问题,而java真好提供了一个这样的解决方案,从一些银行等大企业的动作可以看出java在大企业是有前途的。.net根据微软的说法是与平台的关系不大的,但是我觉得服务器还是要用nt的,鉴于nt安全性和稳定性等方面的问题,将会影响.net在大企业的推广。而且nt只能运行在intel的机器上,也限制了对一些强大的服务器的选择。而java的性能始终是个问题,在同一台配置的机器上运行c开发的工具和java开发的工具,差别你可以看得出来;而且win, linux, solaris三种版本的jdk中,据说win的版本是最好的了。使用一整套微软的技术,在性能(当然指的是同一种配置)上有优势。而且这进一步影响到成本问题。.net比java晚出现,应该很好地借鉴了他的优点和避免他的缺点;而且java真正快速发展是97年之后吧,所以。net的出现也不算太晚。
所以从性能和技术上看,我是偏向与.net的。但是,java和.net的竞争同时也是开放和非开发的竞争。java现在是比较开放的,sun已经提供j2ee等的源代码,sun只是建立标准(知识产权,商标等还是他的),而其他公司可以根据标准分别实现不同的产品。但是java的开发也带来一些问题,就是产品之间的移植性,把websphere上的ejb等应用移植到weblogic是很不容易的事,所以sun说java可以在不同平台、不同厂商的产品间完美移植是吹水的。而.net真好相反,完全是微软控制的技术(但是好像比以前会开放一点)。
第三点,业界的支持。微软的敌人很多,而且都是强手,包括sun,oracle,ibm,任何一个都在业界举足轻重,所以如果他们联手,那微软只怕难办。而且这些企业在服务器及其应用、服务等方面都有业界最丰富的经验、资源和客户;这正好是微软最缺乏的,对于他们来说,微软只是新手。
第四,垄断。这个问题大家都应该很清楚。2000/xp都已经是这么艰难才能出来,.net只会更加艰难。而java目前还没有这个问题(不过以前曾经听说ibm对sun的java有些意见,想来自己的一套)。
所以鹿死谁手,还很难说。
其实我是很喜欢微软的的(我天生只是喜欢强者),大学时也是以他的技术为主,但是我毕业后走的恰好是一条对立的路线,而且走开了觉得还不错,所以不想回头了。
以上是鄙人的一些想法,不当之处还请指点。同时希望大家研究研究我们应该如何面对目前的情况。
