本文将对目前最常用的四种动态网页语言perl(practical extraction and report language)、php(hypertext preprocessor)、asp(active server pages)、jsp(javaserver pages)进行一些技术性的比较。 perl perl(practical extraction and report langu
本文将对目前最常用的四种动态网页语言perl(practical extraction and report language)、php(hypertext preprocessor)、asp(active server pages)、jsp(javaserver pages)进行一些技术性的比较。
perl
perl(practical extraction and report language)是一种很古老的脚本语言。最初的web应用大多是用perl编写的,perl很像c语言,使用非常灵活,对于文件操作和处理具有和c语言一样的方便快捷。
也正是因为perl的灵活性和“过度”的冗余语法,也因此导致许多perl程序的代码令人难以阅读和维护,因此使用的人在逐渐减少,并且目前有被python替代的可能。
另外perl对于cpu的消耗似乎较高,效率似乎有一些不足。
perl开发的成功案例:
movable type — 世界上使用最多的blog系统之一,功能强大的足以和一个cms系统相比拟。
awstats — 非常经典的日志系统,速度极快,功能也非常强大。
结论:perl在部分应用中能发挥很大优势,但其维护性差使得其普及变得很困难。
php
php(hypertext preprocessor)是一种嵌入html页面中的脚本语言。它大量地借用c和perl语言的语法, 并结合php自己的特性,使web开发者能够快速地写出动态产生页面。
php是完全免费的开源产品,不用花钱,apache和mysql也是用样免费开源,在国外非常流行,php和mysql搭配使用,可以非常快速的搭建一套不错的动态网站系统,因此国外大多数主机系统都配有免费的apache+php+mysql。通常认为这种搭配的执行效率比iis+asp+access要高,而后者的使用还必须另外交钱给微软。
php的语法和perl很相似,但是php所包含的函数却远远多于perl,php没有命名空间,编程时候必须努力避免模块的名称冲突。一个开源的语言虽然需要简单的语法和丰富的函数,但php内部结构的天生缺陷导致了php不适合于编写比中小型业余网站更大的网站。
php开发的成功案例:
mediawiki — 著名的维基百科(wiki)程序,如此庞大的条目居然只用php+mysql就能够支持,真是不可思议。
wordpress — 著名的blog系统,功能上丝毫不输于movable type,不少用户都纷纷从movable type转移到了wordpress。
结论:php语法简单,非常易学易用,很利于快速开发各种功能不同的定制网站,php因为结构上的缺陷,使的php在复杂的大型项目上的开发和维护都比较困难。
asp
asp(active server pages)微软的windows iis系统自带的脚本语言,利用它可以执行动态的web服务应用程序。asp的语法非常类似visual basic,学过vb的人可以很快上手,asp也是这几种脚本语言中最简单易学的开发语言。但asp也是这几种语言中唯一的一个不能很好支持跨平台的语言。
因为asp脚本语言非常简单,因此其代码也简单易懂,结合html代码,可快速地完成网站的应用程序。
asp在国内异常流行,因为国内大多使用的是盗版的windows和盗版的sqlserver,而asp+com+sqlserver实际上也是一种不错的搭配,其性能也不输于php+mysql,特别是windows系统和sqlserver都有图形界面,比apache和mysql易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。
不过,正因为asp很简单,所以单纯使用asp所能完成的功能也是有限的,好在com(component object model)技术拯救了asp,微软提供了com/dcom技术,极大拓宽了asp的应用范围,使得asp几乎具有无限可扩充性。
结论:和php一样,asp简单而易于维护,很适合小型网站应用,通过dcom和mts技术,asp甚至还可以完成小规模的企业应用,但asp的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。
jsp
jsp(javaserver pages)是sun公司推出的一种动态网页技术。jsp技术是以java语言作为脚本语言的,熟悉java语言的人可以很快上手。
jsp本身虽然也是脚本语言,但是却和php、asp有着本质的区别。php和asp都是由语言引擎解释执行程序代码,而jsp代码却被编译成servlet并由java虚拟机执行,这种编译操作仅在对jsp页面的第一次请求时发生。因此普遍认为jsp的执行效率比php和asp都高。
jsp是一种服务器端的脚本语言,最大的好处就是开发效率较高,jsp可以使用javabeans或者ejb(enterprise javabeans)来执行应用程序所要求的更为复杂的处理,但是这种网站架构因为其业务规则代码与页面代码混为一团,不利于维护,因此并不适应大型应用的要求,取而代之的是基于mvc的web架构。mvc的核心思想是将应用分为模型、视图和控制器三部分。模型是指应用程序的数据,以及对这些数据的操作;视图是指用户界面;控制器负责用户界面和程序数据之间的同步。通过mvc的web架构,可以弱化各个部分的耦合关系,并将业务逻辑处理与页面以及数据分离开来,这样当其中一个模块的代码发生改变时,并不影响其他模块的正常运行,所以基于mvc的web架构更适应于大型应用开发的潮流。
因此,不少国外的大型企业系统和商务系统都使用以上的mvc架构,能够支持高度复杂的基于web的大型应用。
结论:jsp对于网站开发来讲不像php和asp那样易学易用,支持java的主机也少于支持php的主机,这从一定程度上限制了java技术在网站上的发展,不过在企业软件应用上来讲,mvc还是拥有相当大的优势的,虽然其配置和部署相对其他脚本语言来说要复杂一些,但对于跨平台的中大型企业应用系统来讲,基于java技术的mvc架构几乎成为唯一的选择。