主题:【原创】我看:JAVA和.net孰优孰劣?这是个问题。 -- 睡虫
我不做程序员已经2年多了,由于工作的原因现在更多从一个用户角度看问题。对睡虫的观点说上两句。
作为用户,我们对开发工具本身并无成见,但我们对产品是否符合我们的要求很在意,对产品开发周期很在意,对产品的维护使用是否方便很在意。
关于产品的可移植性一直是JAVA框架推销员们津津乐道的东西。但是从用户的角度来看,所谓可移植性基本等于0。用户和开发商在选择系统架构时首先考虑系统的规模。如果需要在小型机以上平台的硬件性能,我们自然不会考虑.net。因为没有在小型机上跑得WINDOWS。如果系统本身就是在IA架构的服务器上运行,问题才出现。一个轻型系统,我们用户希望系统尽快上线取得效益。没有人会规划设计一个系统然后在半年内升级系统的软硬件。而2、3年之后,谁知道JAVA会不会发生改进,而我所需要的功能也可能发生很大变化。所以在我看来可移植性意义不大,因为我的系统需要升级时反正会重新开发的。
从系统开发的过程管理来看。我认为如果一个开发工具能够尽快将用户界面和操作流程展现在用户面前才是好的。大多数情况下用户不懂技术。你把算法和处理过程给用户看是没用的。只有到用户在实际界面上操作,并且处理实际数据他们才能发现问题。在这个意义上.net的快速开发的理念是很好的。不过JAVA其实也不错。在这个问题上我觉得两者胜败在于谁能够在业界产生更多的成熟可用的系统构件。不仅仅是提供数据库中间件、用户界面、业务逻辑之类,还包括安全、系统管理之类的构件。这一点java平台可能略胜一筹。因为在构建异构多平台分布式系统上java会稍好一点。而windows因为安全性不好而受了拖累。
然后是性能及可靠性问题。在实际使用中我觉得由于追求跨平台而导致了java的效率似乎不高,可靠性也一般。这本应是.net的强项,但似乎由于windows自身的原因,系统的故障发生率也不少。两者算平手吧。
.net上手快,程序员容易培养,似乎在人才上容易站上风。但是正因为如此,开发商容易招募新人而对旧人的培养和发展并不热心。我认识的资深程序员和开发者都转到在UNIX上做java了。
胡乱说几句,仅供参考。