先说说Java,在企业级方面,可以说是绝对的老大,许多企业级技术,开发思想都是由Java发展出来的.缺点是Java开发部署比较麻烦,不太适合超小型的项目。 再说.Net,在1.x时代,.Net可以说基本上没有多少企业级开发的特性,到了 3.0,微软各种框架技术虽然弥补了这些不足,但是相对于Java世界,还是有一定距离。在Web网站方面,.Net服务器控件的优势,变成了弱势,由于服务器空间产生垃圾代码,并且不方便美工调整,导致在前台界面要求较高的门户站点难以使用(虽然有第三方MVC框架,但是没有IDE支持,体现不出.Net的优势) 再说说PHP,他的定位非常明显,就是Web开发,所以有很多适合Web开发的特性,比如部署十分简单,几个文件随便找个虚拟主机扔上去就能运行。在国内因为Discuz , DedeCMS等著名产品的鼎立推广,PHP在中小型网站开发中有很大的优势,最近大量的开源框架出现,给PHP企业开发注入了一些生命力,可以说潜力十足。 综合以上我们可以看到,.Net定位不太明确,微软这个想吃那个也想吃,最后没一个能吃饱吃好..
PHP跟.NET,一个面向个人(php),一个面向大型系统(当然,做小系统也是可以的,只是资源占用相对比较多小点) 离旗鼓相当还有很远. 现在真正在台面上竞争的只有以java为开发语言的J2EE平台和 以C#为代表,多语言的.Net平台.
世界上最大型的100个网站里面, .Net的(aspx和srf)占37个,J2EE的(jsp)比.Net的多(具体多少忘记了), php的有0个,asp的有1个.
Java的J2EE平台在开发架构上优于.Net平台.但是在可用技术种类上差了一些. 因为J2EE比.Net先几年推出,所以现在仍然在第一位. 不过.Net正在缩小差距. 尤其是集成了.Net3.0的Vista操作系统推出,将会有一次大的飞迁..Net 3.0 拥有最灵活强大的工作流(WF),最完整的统一集成管理(WCF),和应该算是最华丽的界面(WPF).
正式的3.0将在2007年出. WF是世界上第一套通用完整的工作流平台,WF将全面和Vista操作系统,Office 2007 和微软的未来各产品完全集合并将成为未来操作系统的核心,这造成其他公司很难与其竞争. WCF是一个框架,用于沟通所有微软的产品的一个通用框架,可以大大减少编程的代码. 这方面我研究不多.但是微软一共有多少产品??? 如果把微软的东西方便地把功能集成起来相互调用,是非常诱人的.WPF是新一代界面技术,架于 OpenGL和DirectX之上, 在网页上使用的话(网页后缀名为xaml), 可以完全把Flash和什么动画视频扔一边,WPF上的xaml可以在网页上实现3D和2D的类似大型游戏那样惊人的动画和交互效果而甚至不需要图片(完全及时演算). 我自己试了一下,做了点xaml的网页,感觉起来跟Flash有点像,(我水平不行,无法用程序代码和标签做出魔兽世界来 ^_^ )php MySql 是个人开发者一个好选择,是MySql是小型数据库,不适合做大型应用.(当然比Access2000要好些, 跟Access2007哪个强就不好说了)aspx SqlServer 适合企业级的开发,VS2005的全套帮助jsp oracle 凭借J2EE平台的优秀架构,在大型开发中如鱼得水.
在网页开发的世界,尤其是背后以数据库直接产生动态资料的网页应用程式,往往都是由这两种语言编写的;微软的asp.net及开放源码的php。Ian Wilson分析人们是如何从这两种语言中作出选择。人们根据什么来选择?Ian认为不外乎以下几个条件:
1.开发工具的成本
2.获取开发工具的容易程度
3.对开放源码的认识程度
由于PHP本身存在的一些缺点,比如PHP提供的数据库接口不统一,这就使得它不适合应用在电子商务中。
ASP.net有什么好处?作为动态网页的开发语言,ASP已经有很多的历史,它把大部分数据库操作的细节隐藏起来,使应用程式连接到Access 或者 SQL Server 的时候得到很大的便利。它也是.net家族的其中一种编程语言,开发ASP.net必须要拥有微软昂贵的Microsoft Visual Studio Programming Suite,这个开发工具套装尽管昂贵,功能却不少,微软也经常为它提供补丁及支援,所以对网页开发人员来说很有吸引力,aspx SqlServer 更适合企业级的开发。
在微软的.NET框架推出后,ASP.NET一度火热,其各方面技术与ASP相比都发生了很大变化。它不像ASP、PHP那样靠解释执行,也不像JSP那样执行中间代码,而是编译为二进制数,以DLL文件的形式存储于硬盘。显然,它的安全性和执行效率都要远远高于以往任何一种动态网页技术。
可以看的出ASP、PHP、JSP本者都有相当多的支持者,ASP.NET更是势不可挡。
随着所谓WEB2.0时代来临,程序员从来没有象今天那样受人注意,很多程序员对于语言的争论也从来没有象今天这样剧烈,Java、C++、PHP、ASP等等,最近又出来一个Ruby,加上Python。无数的FANS在中间进行争论不休,也就是在internet上,如果是在现实生活中,大概会象《倚天屠龙记》里描述的那样,会决战光明顶来定一个胜负,或者说定出天下第一大门派。
人民群众是很爱戴PHP的。至少在我看来。没接触过PHP项目,但是身边的PHP项目越来越多,虽然都是小公司,还听说PHP很火,500W招高级PHP程序员--不知道是不是那CEO前一天晚上洗澡脑子进了水,或者薪水是越南盾之类的~
偶在Google Groups上转,想找到说服自己的答案,找了很多developer问,PHP、ASP与Java,他们之间谁更好?Generally speaking,they would say,ASP out,Microsoft出的垃圾,PHP and Java are good choice,Java适合做大项目,PHP适合做一些短平快的东西。的确,世界上最大的C2C eBAY,就是用Java的,中国最大的社区ChinaRen校友录也是Java---而很多小的网站,初期都是PHP,后来各种原因都必须改到Java上面去。
这种感觉就是像说,如果你想学武功以便出去砍人,或者说在江湖扬名立万,那么军体拳你就不用练啦,这个东西是GOV拿出来强身键体的,五虎断门刀这个东西你用来对付一般的流氓是绰绰有余,但是碰到绝顶高手你就歇了。而Java有点象太极拳,当今武林最大的门派之一SUN的首推武功,是对负高手的不二选择,于是很多人就认定:PHP是低等武功,练到最好的结果也就是给赌场看看场子,只有练就Java才能做武林盟主。
看网上说,很多人都有这种心理,他是使用Java的,而你如果让他写PHP,,很多人会有一种受到侮辱的感觉,不是觉得经理不重视他,就是在想自己什么时候得罪了经理,竟然被发配到PHP这种偏远的小地方去了。越是大公司,PHP的项目越难开展起来,这个让很多技术leaders很是郁闷,但也很是奇怪。所以,下面,咱们一起分析一下形成这种被人民群众认可,却不被很多开发人员看好的语言——PHP。 PHP 进入中国是98,99年,进入的时候,初期应用的典型是Chinaren校友录,还有很多的互动应用,它以开发方便,容错性好,迅速成为很多网站的选择。到了00,01年,互联网泡沫的时候,很多都是PHP完成对网站的开发,它的流行有以下几个原因:
以上四个特点,用PHP开发程序非常得普遍,但作为程序来说,这些看起来非常不错的特征也形成PHP的一些问题,造成在很多资深的程序员对其评价很低。
首先第一条,也是让很多资深的程序员对其尴尬不已的,做了3年以上的PHP程序员,当一个初学者问其一些技巧的时候,他们突然发现,PHP这种语言实在是没有好说的,看它的帮助就能解决问题或者看一下教程。不像Java,一个仅仅写了半年左右的Java开发人员和3 年以上的Java开发人员可以说有本质的区别,后者可以讲很多JAVA的开发架构和分布问题,讲的那个菜鸟满脑浆糊,满脸崇拜。
第二条还是效率的问题。市面上对于WEB语言的效率,PHP快只是感觉,并没有一个非常有力的测试证明它比别的语言快很多,而JAVA和ASP却有一个非常有名的一个测试性能比较。
有人做过试验,对这三种语言分别做循环性能测试。在循环性能测试,JSP用了20000*20000的循环? 共四秒钟。而ASP、PHP测试的是2000*2000循环(少一个数量级),分别用了63秒。PHP测试的是2000*2000循环 84秒 。
一个有意思的测试,说明一个问题,对于大量的运算,PHP看起来不是一个太成功的语言,这个也是很多高手不是很看好PHP的一个实际例证明,然而实际是这个仅仅是一个有点BT的测试,谁会在互联网上写一个循环400万次循环以上的一次请求应用。实际上,在WEB应用中这种循环或者说密集的运算非常罕见,如果有,首先该考虑的也是算法的优化,减少循环的次数,然后才是考虑语言本身。并且就算是必要的,也不是Java、PHP和ASP能够解决的,这个时候,如果用的比较多,C会粉墨登场,再多一点,可以使用汇编,非常多的情况下,芯片的设计我想是比较好的选择,怎么样都不会轮到Java这种语言,所以用这种方法来评价PHP是非常不妥的。
而对于PHP开发中较好的鲁棒性(再次寒一下),你怎么写它都能运行,并且很稳定,从而也造成PHP程序员的散漫,程序的开发非常随意,又加上中国互联网产品开发的紧急性,几乎都没有很好的文档,从而后期PHP程序的维护成为无数项目经理的噩梦。这一点也是很多高手或者说资深程序员对于PHP评价很低的地方,而当很多项目经理需要要规范开发的时候,却又发现无从规范起,Java有Struts、MVC……而PHP却缺乏成体系的开发架构,从而也成为PHP很难成为企业应用系统的选择。至于丰富的函数操作,这个大概是唯一没有被人诟病的地方,但是 Java、ASP以及Perl都有很丰富的函数,PHP在这一点没有非常大的优势,所以只是成为人们选择它的一个不是很重要的理由。