最近的关于对.NET失望的讨论,我到没有直接参与,但借着这些文字,自己也在思考这些年.NET开发的种种情况,似乎还真有点彷徨。
01年开始使用.NET,02年接到第一.NET的项目,令人难忘的项目,倒不是项目本身有什么振奋人心的地方,而是这个项目最终失败了。原因当然多方面,有市场的问题,也有第一次用.NET写程序很多不成熟的地方。想起来,还真有点对不起老板,把别人的Project当自己的试验场了。
从那以后就一直没有离开.NET开发的领域,算算也3年多了,借着这场讨论回头一看,感觉是空荡荡的,我们从.NET得到了什么?有失去了什么?好像得到的完全没有失去的多。
基于应用程序的网站开发模式,.NET的开发完全把Windows应用程序开发的那一套模式移过来了。现在的.NET网站完全成了有整体结构的,基于事件驱动的应用程序。可以建立出高度复杂而又可控的网站系统。
但我们失去了快速原型开发模式的灵活特点,特别在中小型项目中,开发的复杂度,大大提高了,一方面是对程序员的要求提高了,应一方面也是开发模式本身的要求。再也不会出现短平快的项目开发模式了,当然我们可以不用VS.NET提供的项目管理功能,而沿用ASP的零散开发方式,那就是第二问题了。
.NET丰富的函数库,预编译能力,是系统的能力大大地提高了,当然这也包括性能。而副作用也是明显的,代码臃肿,Framework对硬件平台的高要求也拖了性能的后腿。所以我们看到的并不是速度上有明显的优势。Rich Internet Application 的概念使得网页客户端要求提高了(带宽,处理能力,浏览器版本,权限设置),AutoPostBack的属性带来很多优势的同时,让客户端和服务器的负担都大大加重。
到底有什么是.NET能做得比ASP要好,要快的呢?
JSP,PHP(以及其他的Script语言)可以跨平台,就凭这一点它们就有存在的理由,但是.NET出现的理由是什么呢?仅仅是因为M$和SUN的一场开发语言的较量的结果吗?
我们是不是都上当了?