最近关于.NET和java平台之间的争论似乎又热起来了,就我关注的两个社区,先是老赵的《为啥老赵不喜欢Java*语言*》。引发了博客园的大讨论,最近csdn又有人发博.Net与J2EE的快餐型比较,引发了空前的大讨论。从论调来说感觉对java不利。虽然csdn得那个篇博文深度不够,但确实引发了
大量了讨论,虽然很
多人都说,这个话题没啥好讨论的,既然引发了大讨论,自认有其内在原因在驱动,所谓空穴来风。。。。
关于两个平台的
优劣已经讨论的够多了,我在这里就不多说了,我在这里提个现实的问题供大家思考:
国内外用.NET做的大型系统确实java的要比.NET的要多,这是客观的事实,我们研究.NET的专家们有没有反思过,为什么?
我大致总结了
几点或许可能的原因,请.NET的同仁评判(.NET比java好的地方就不多说了:)
1)是因为linux unix系列的操作系统更加稳定安全?通常java的程序都是部署在unix家族的服务器上
unix系列的服务器(大,中,小型机)发展这么多年,确实口碑很多好,有sun,ibm,hp等大公司全力推动,甚至垄断。基于unix的HPC服务器也是很多年就有了,而微软的HPC也就这两年的事,还没有怎么有大型的应用,据说有些HPC已经部署在华尔街的投行了,据说亚洲最快的服务器“魔方”也是用的微软的HPC。希望微软的HPC一路走好。
但unix是需要大把银子的,动辄几百上千万的,不过能用的起的机构也不在乎这点钱。。。。
至于说linux,稳定性或者安全性比最新版的Windows server高,我认为未必,关键看用的人的水平。。。。
2)java跨平台?
我个人认为这里理由在大多数公司都是不成立的,一个系统一但选定了一个平台,再换平台的可能性微乎其微
3)linux操作系统免费?
这个在某些情况下确实,但Windows server却是也不贵,只有在很大规模部署的时候,才能显示出成本优势来
4) java的开源项目多? SSH,Jboss,Seam,tomcat,OpenJMS, ActiveMQ,HDIV,......
这个做.NET的同仁不得不承认,但现在.NET上没有一个被广泛使用的开源MVC框架,虽然我
觉得WebForm也不错,但是看了ROR,Grails这些框架后,还是觉得ASP.NET还有很多东西需要完善,需要追赶。祝愿ASP.NET MVC2.0可以全面赶超......
消息系统,.NET似乎只有MSMQ一个,据说ActiveMQ也出.NET版了,但谁在用呢?
至于ORM,.NET确实也有NH,iBatis.NET等产品,但最新的版本总是java得优先出来,.NET的版本都是感觉是没妈的孩子,话又说回来,真正把HN,iBatis.NET的用的好的有
多少呢?但是Linq to Sql出来的时候大家那个热情啊,微软出品,一定要好好研究,要不然就落伍了,兄弟们,睁开眼吧,我们要向java学习,要自己创造,不要什么都等微软做好了,才去研究。.NET圈内好像有个不成文的约定,所有的技术或组件,优先使用微软提供,微软只要有,那就是
最好的,就一定要用。我个人觉得这不利于.NET平台的大发展。。。
5)java起步早,有些系统已经用java在做了,同时
精通java的人才多?
这是我个人的感觉,算是一个因素,从我招人的经历来看,java的高级人才确实比.NET好招,难道国内.NET的高级人才这么抢手。。。。,或许吧,恭喜大家了。
希望做.NET的哥们,都尽快成长起来,成功一方高手!!
6) java的商业化工作做得好?
个人感觉,SUM,IBM,ORACLE。。。等公司
借助其平台产品和品牌的优势,在一些mission critical的系统上投入了很大的公关,如电信,银行,金融,能源等。
微软在这么方面起步比较晚,产品线还在OA,Exchange上,他的HPC,SQL Server,包括分布式组件WCF,WF等企业产品线需要大力提高。
以上是我个人的观点,这里主要想总结一下java比.NET的可能优势,或者说.NET那些地方还需要追赶,有些东西的发展不是我们能左右的,但希望我们能认清形势,尽量弥补,也许不久的一天,事情已经不是今天这个样子了。