PHP窜红:革命尚未成功 Java仍需努力

相对于Java由简入繁的演变趋势,PHP忠于简单易学原味的坚持受到广大开发者的欢迎,近年来声势大涨,而简单就是力量,这句话套用于近日PHP异军突起,再适合也不过了。老实说,原本觉得它不会太厉害,看到它最近的成长和茁壮,直攻Java阵营输于经营之处,让人对它刮目相看。
Netscape前CEO Marc
Andressen在Zend/PHP大会上预言,简单易学的描述语言PHP将会比Java被更多人用于Web应用的开发上;再引用Cnet台湾报导的数据,全球大约有2200万个网站使用PHP,而且数量还在稳定增加中。
为什么PHP会如此受欢迎呢?我想简单好用是最大原因。如果网站只是提供使用者搜寻资讯的入口,网际网路上有许多现成、免费的、容易拿到,且已经做好的网站软体,如行事历、网站管理、新闻、报名系统、电子报、天气预报等免费的应用模组供下载安装使用,如此好康的事情,何乐而不为?而且只要买一本书,装一装,简单的设定就有讨论区,不用写任何程式,这对没有程式经验的人来说是好的进入点,也符合中小企业低成本建置网站的需求。作为Java人士,PHP的窜起给了我三个启示:
Web 开发:PHP夹缝中求生存之道
这些网路应用软体Java做不到吗?PHP夹在JSP(JavaServer Page )和ASP(Active
Server Page
)中间,说实在的,应该一点生存的机会都没有,因为他们的难易度、观念和架构、程式语法这三样差异不大;如果从弹性的角度来看,ASP可以去呼叫COM
元件,JSP是呼叫Java
Beans元件,从开发延展性和系统的扩充性来说,都比PHP好太多,软体应用空间也相对更广阔。
当然,这些语言因为各有特长,都各自有发展,而PHP在众多网站开发工具市场中没有变得比较差,反而变得比较大,软体是免费虽然是主因之一,但我认为更重要的是,PHP社群很专心地开发动态网页技术,而且这个点作对了,而如果要学ASP就还要再学VB,学元件开发,Java领域除了JSP外,还可以作Severlet,作Severlet就会想说把EJB结合在一起,所以体系会越来越复杂,越复杂就筑起更高的学习门槛,如此一来,学习意愿低,人才少,成本相对较高,直接影响企业采用意愿。
现在的软体世界不只是应用之争,也是平台的拉锯战;过去开发人员会比较哪种程式语言比较棒,组合语言、Cobol、PL1、Ada、LSPER、C等语言陆续问世,到最后只剩下C语言能留下来,连Pscal都需要有Delphi撑下来才能存活;如果要问说受欢迎的程式语言要具备什么特色,这些特色还真难归纳,例如开发弹性、功能强大、限制少、容易开发、使用性高等,每个语言先天都有这些特色,如果这些条件是程式语言存亡的关键因素,我想上述语言应该都不会结束,但随著技术演进和环境的改变,不适用或不符开发者需求的语言将逐渐被淘汰。

在开发动态网站时,离不开服务器端技术,服务器端技术主要有CGI、ASP、PHP、ASP.NET和JSP。

目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(Java Server
Pages),
PHP (Hypertext Preprocessor)。

1、CGI

CGI(Common Gateway Interface
通用网关接口)是最早用来创建动态网页的技术,它可以使浏览器与服务器之间产生互动。它允许使用不同语言来编写适合的CGI程序,该程序被放在Web服务器上运行。当客户端发出请求给服务器时,服务器根据用户请求建立一个新的进程来执行指定的CGI程序并将执行结果以网页形式返回给客户端的浏览器上显示出来。虽说CGI是当前应用程序的基础技术,但这种技术的编制比较困难,且效率低下,因为每次页面被请求时,都要求服务器重新将CGI程序编写成可执行的代码。在CGI中最常用的语言有C/C++、Java和Perl。

简 介

2、ASP

ASP(Active Server Page
动态服务页面)是一种很广泛的开发动态网站的技术。它通过在页面代码中嵌入VBScript或JavaScript脚本语言来生成动态的内容。但必须得在服务器端安装了适当的解释器后,才可以通过调用此解释器来执行脚本程序,然后将执行结果与静态内容部分结合并传送到客户端浏览器上。对于一些复杂的操作,ASP可以调用存在于后台的COM组件来完成,所以说COM组建无限地扩充了ASP的能力,正因为如此一来本地的COM组件,使得它主要用于Windows
NT平台中。它的优点是简单易学,并且ASP是与微软的IIS捆绑在一起,在安装WIndows操作系统的同时安装上IIS就可以运行ASP程序了。

ASP全名Active Server Pages,是一个WEB服务器端的开发环境,
利用它可以产生和运
行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB
Script(Java script.
)作为自己的开发语言。

3、PHP

PHP(Hypertext Preprocessor
超文本预处理器)的语法类似于C,并且混合了Perl、C++和Java的一些特性,它是一种开源的Web服务器脚本语言,与ASP一样可以在页面中加入脚本代码来生成动态内容。对于一些复杂的操作可以封装到类或函数中。在PHP中提供了许多已经定义好的函数,例如提供的标准数据库接口,数的数据库连接方便,扩展性强。PHP可以被多个平台支持,但被应用最广泛的还是UNIX/Linux平台。由于PHP本身的代码对外开放,经过了许多软件工程师的检测,因此,该技术具有公认的安全性能。

4、ASP.NET

澳门新葡萄京官网首页 ,这种建立动态Web应用程序的技术,是.NET框架的一部分,可以使用任何.NET兼容的语言来编写ASP.NET应用程序。使用VisualBasic.NET,C#,J#,ASP.NET
页面(Web Forms)进行编译可以提供比脚本语言更出色的性能。Web
Forms允许在网页基础上建立强大的窗体。当建立页面时,可以使用ASP.NET服务端控件来建立常用的UI元素,并对他们编程来完成一般的任务。这些控件允许开发者使用内建可重用的组建和自定义组建来快速建立Web
Forms,使代码简单化。

PHP是一种跨平台的服务器端的嵌入式脚本语言.
它大量地借用C,Java和Perl语言的语法
,
并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数
据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点([url]]
t)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。

5、JSP

JSP(Java Server
Pages)是以Java为基础开发的,所以它沿用Java强大的API功能,JSP页面中的HTML代码用来显示静态内容部分,嵌入到页面中的Java代码与JSP标记来生成动态内容部分。JSP可以被预编译,从而提高了程序的运行速度。另外JSP开发的应用程序经过一次编译后,可以随时随地地运行,所以在大部分系统平台中,代码无需做修改就可以在支持JSP的任何服务器中运行。

JSP
是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--
脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun
公司借助自己在Jav
a 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet
之外,又有新的硕果,就是Js
p--Java Server Page。Jsp
可以在Serverlet和JavaBean的支持下,完成功能强大的站点
程序。

三者都提供在 HTML
代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。
但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对
JSP 页面的
第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML
代码主要负责描述信息的显示样式
,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而
ASP 、PH
P、JSP
页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到
HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web
服务器的技术
,客户端浏览器不需要任何附加的软件支持。

技术特点

ASP:

  1. 使用 VBScript. 、 JScript. 等简单易懂的脚本语言,结合 HTML
    代码,即可快速地完成
    网站的应用程序。
  2. 无须 compile 编译,容易编写,可在服务器端直接执行。
  3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。
  4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML
    码的浏览器,即
    可浏览 Active Server Pages 所设计的网页内容。 Active Server Pages
    所使用的脚本语
    言 (VBScript. 、 Jscript) 均在 WEB
    服务器端执行,用户端的浏览器不需要能够执行这些
    脚本语言。
    5.Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用
    VBScript.
    或 JScript. 语言来设计外,还通过 plug-in
    的方式,使用由第三方所提供的其他脚本语言
    ,譬如 REXX 、 Perl 、 Tcl 等。脚本引擎是处理脚本程序的 COM(Component
    Object Mod
    el) 物件。
  5. 可使用服务器端的脚本来产生客户端的脚本。
    7.ActiveX Server Components(ActiveX 服务器元件 )
    具有无限可扩充性。可以使用 Vi
    sual Basic 、 Java 、 Visual C++ 、 COBOL
    等编程语言来编写你所需要的ActiveX Se
    rver Component 。

PHP:

1.数据库连接
PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可
以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以
轻松地更改编码以适应这样的变。PHPLIB就是最常用的可以提供一般事务需要的一系列基库
。但PHP提供的数据库接口支持彼此不统一,比如对Oracle, MySQL,
Sybase的接口,彼此
都不一样。这也是PHP的一个弱点。
2.面向对象编程
PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、
提取类等。

JSP:

1.将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使
用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans
组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和
Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内
容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问Java
Beans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)
页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览
器的完全可用性。
2.强调可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise
JavaBea
nsTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操
作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了
总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3.采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer
Page技术封装了许多
功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JS
P标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用
其他方法更难于编码和耗时的功能。
通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以
为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样
的执行特定功能的构件来工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够
支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java
2(企业版体系结构
)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为
Java
Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越
来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更
改工具或服务器并不影响当前的应用。

应用范围

ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统——只能运行于微软
的服务器产品,IIS (Internet Information Server) (windows
NT)和PWS(Personal Web Se
rver)(windows
98)上。Unix下也有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,
必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。

PHP3可在Windows,Unix,Linux的Web服务器上正常运行,还支持IIS,Apache等通用Web服务器
,用户更换平台时,无需变换PHP3代码,可即拿即用.

JSP同PHP3类似,几乎可以运行于所有平台。如Win NT,Linux,Unix.
NT下IIS通过一个插
件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服务器Apache已经能够支持JSP。
由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的运行平台。虽然现在NT操作
系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来
势不小。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节
码都是标准的与平台无关的。

性能比较

有人做过试验,对这三种语言分别做循环性能测试及存取Oracle数据库测试。

在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的循环。而ASP
、PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB)

数据库测试中,三者分别对 Oracle 8 进行 1000 次
Insert,Update,Select,和Delete
: Jsp 需要 13 秒,Php 需要 69 秒,ASP则 需要 73 秒。

前景分析

目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在
国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。
采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺
点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。
首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一
个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开
,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支
持不统一,这就使得它不适合运用在电子商务中。
ASP和JSP则没有以上缺陷,ASP可以通过Microsoft
Windowsd的COM/DCOM获得ActiveX规
模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN
Java的Java Clas
s和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application
Server获得结构支持。

三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用J
SP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;
西方另外一个非常著名的电子商务软件提供商,Intershop。它原来的产品Intershop1
2, 3
, 4占据了主要的电子商务软件份额。它们都是通过CGI来提供支持
的。但去年10月后它推出
了Enfinity,一个采用JSP/Servlet的电子商务Application
Server,而且声言不再开发传统
软件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注