Web脚本开发语言比较(2)
发布时间:2007-08-22 17:32:00
Sun微系统公司一直努力地普及它的JSP脚本语言,并给Apache组织贡献有关JSP和Java Servlet引擎的代码。Apache组织将这些代码发布为一个Apache产品,叫做Tomcat。
JSP相对来说还是一个新技术,但是已经有了明确的市场方向。
然而,由于JSP基于Java(并且几乎能做到Java可以做的任何事情,这就开放了一个巨大的API库以及类库)而且由于被称为标记库的JSP扩展使JSP能模仿ColdFusion的标记类型API,因此我们有理由认为,在未来几年中,JSP将成为Web脚本语言的核心。
还有更多种类的产品支持JSP,它们适用于高端应用服务器,这就让JSP开发人员能更容易地考虑扩展性和容错性。
由于JSP基于Java,而Java是一个功能强大的类型语言,所以当需要时我们就必须定义变量的类型。对于非程序员学习起来,这就是一个困难,尽管了解一些Java的人认为JSP几乎可以很快上手。
利用Java数据库连通性,Java具有一个灵活且完整的访问数据的API集。
在服务器端,我们测试了Apache 组织的免费 Tomcat 3.2 Beta 5版本。测试服务器是Linux的情况下,Tomcat的速度大约是每秒13页。
很不幸,Tomcat只具有很基本的性能监视器和管理工具(在Web上我们也许能找到一些beta产品),这与PHP类似。位于高端的基于Java的应用程序服务器则提供了丰富的管理工具。
尽管Sun的Java 1.0 Community 版本的长处是免费的,而且非常适于JSP开发环境,但实际情况是,在JSP领域,开发工具通常很短缺。
对于企业级开发,我们相信,JSP技术尽管很新,但仍旧是正确的选择,因为它使用了Java,而且许多应用服务器产品都支持JSP。
Microsoft ASP
在团队开发环境中,微软公司的ASP(active server pages)语言是众所周知而且非常好的Web脚本技术,这也意味着ASP开发人员非常容易发现。由于ASP是随Windows NT 服务器和Windows 2000 Web服务器安装自带的,所以这项技术也是非常流行的。
由于支持未定义类型变量(untyped),ASP使得编程很简单。而且通过支持Microsoft COM(Component Object Model:组件对象模型)标准,它提供了访问巨量Windows API集的简单方法。这也是一个 * 剑,在提供简单访问强大的COM对象同时,ASP代码也很复杂而且难于编写。微软公司的ADO(Active Data Objects)COM接口提供了全面数据库访问API。
微软同样投入大量资金在ASP的clustering技术上,并且即将到来的微软应用程序中心服务器将提供对ASP站点的clustering技术和内容管理功能
编写ASP时使用VBScript语言,我们希望它具有try/catch关键字。没有这些,编写错误处理逻辑程序是非常讨厌的,因为我们必须手工检查看看是否发生错误(ASP也支持Jscript,它具有try/catch关键字)。
ASP开发工具是很多的,而且通常是很成熟的。我们使用微软公司的Microsoft Script Editor(随Microsoft Office自带)编写页面,发现这个工具非常有价值,因为它具有一个方便的编辑环境以及一个完整的调试器。
我们的ASP站点是运行Windows 2000的服务器,速度大约是每秒43页。
另见:ASP与JSP的比较
PHP
Php做为首选的Linux Web脚本语言迅速浮现出来。随着今年PHP4的发布,它尤其具备了大量的新功能,其中包括一个新脚本引擎和语言的标准化关键字部分(比如HTTP会话管理),这在以前是以add-on模块的形式存在的。
PHP开发小组的PHP语言是开放式的,并且可以安按照源代码形式下载。适用于Windows的预编译二进制码也是可用的,而且PHP可以工作在许多Web服务器上,包括Apache和微软的IIS。
PHP确实是几种强大功能的混和物,包括Perl、C、Java,甚至某些ASP,并且支持未定义变量使得开发工作简化。PHP非常易于扩展,由于源代码可用,使得各种各样的模块扩展程序被一大群人开发并贡献出来,这些扩展程序包括:数据库链接、邮件应用、XML解析器等等。
丰富的扩展也导致了缺乏API方面的一致性。用户们必须努力约定他们使用的PHP组件,从而有效跟踪相关的改变。
我们重点关注PHP在标准数据库API上的匮乏:为了访问Oracle数据,我们就必须直接编写调用Oracle8 API的代码,这使得页面很不轻巧并且增加开发费用。在这个领域正在进行一些研究,其中包括将Micorsoft的ADO转向PHP。
同样,PHP缺乏完整的开发环境工具以及调试程序(我们只能找到一个,就是Ives Development 公司的Nexidion Designer,它还停留在1.0版本)。
在测试的Linux服务器上,PHP拥有大约每秒47页的速度。
猜你喜欢
- 迭代器模式迭代器模式(Iterator Pattern)是一种常用的设计模式,用于遍历集合中的元素,不暴露集合的内部结构。迭代器模式将集合和
- 空白双边距是一个极容易误解的CSS特性.它不是CSS的bug,但如果我们一旦误解,将会给你带来很多麻烦.先看如下demo代码:<!do
- 下面是代码,如果看不懂,建议先把表格的一些<tr><td>的表格原理弄清楚了,就可以了代码如下:<table&
- 数据库计算机 databasecomputer 实现数据库的存储、管理和控制的一种专用计算机系统。它能十分快速而有效地完成各种数据库操作,并
- 1.字符串函数 长度与分析用 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 substring(ex
- 1. RS.OPEN SQL,CONN,A,B,C2. CONN.EXECUTE(SQL,RowsAffected,C)参数含义:SQL的值
- 在SQL查询中,关键词Like可提供模糊查询功能,它通常与通配符一起使用。1 Like条件适用数据库字段类型 &nbs
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,可替换XML成
- 本文给出了MySQL数据库中定义外键的必要性、具体的定义步骤和相关的一些基本操作,供大家参考!定义数据表假如某个电脑生产商,它的数据库中保存
- 常规循环引用内存泄漏和Closure内存泄漏 要了解javascript的内存泄漏问题,首先要了解的就是javascript的GC原理。我记
- 之前说过要聊聊 干职业设计经理的活 的问题,貌似有些朋友对这个事情还挺关心的,我理解为一方面是掌握对付猎头时候的标准答案,一方面是
- 很久之前就对jQuery.animate的实现非常感兴趣,不过前段时间很忙,直到前几天端午假期才有时间去研究。jQuery.animate的
- zhanglunray 问:我在mzzx_pic这个层设置了左边距,在ie里显示是正常的,但是在ff里显示时margin-left却没有起到
- 【原文地址】New C# "Orcas" Language Features: Automatic Properties
- 调用很简单 Readkid.motion.tween(target,duration, vars)target: 要缓动的DOM对象dura
- 使用本文给出的方法就可以制作出一个简单的rss阅读器了。用xmldom方法打开xml文件,如果是本地的没有问题,就是用Server.MapP
- Oracle提供了不少方法用于数据空间的使用、监控和维护,同时也在各版本中陆续对这方面的功能进行了增强,目的在于简化这方面工作的复杂度,提高
- Google以其简洁的搜索框引领着互联网,搜索系统似乎成了每个网站必备品,甚至于是那些本身几乎是由静态页面组成的企业网站都要来个搜索功能,这
- 数据库镜像是将数据库事务处理从一个数据库移动到不同环境中的另一个数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问,它只用在错误恢复的情况下
- 代码如下:USE TestDB declare @conversation uniqueidentifier while exists (s