wuvist

几种主流网页开发语言的思考(上)

原文网址:http://www.blogwind.com/Wuvist/comment.aspx?Article_id=7245

在开始学网页开发的时候,我学的是ASP。

后来,慢慢的,总是对php想入非非。

书也买了不少,可惜,偶笨笨的,总是搞不太订php的安装,一看到需要自己手动修改文件、配置,就觉得头大。

相比之下,在windows下,玩ASP则是太简单了,安装一下IIS/PWS,一路next,便可以玩了。

对于很多windows用户,是很不能习惯直接修改ini文件这样的配置方式的,包括我。

或者,可以这么说吧,php的初学者会逼asp的初学者高级那么一点点。玩php的,好歹会懂得如何自己折腾着安装php。

php安装上的折腾过程,可以说是一个学习的过程,也可以说是入门的一个很小很小的门槛吧……偏偏这么个小门槛,有些人,可能永远都不能够、或者是不愿意跨过去。

不过,现在也应该有一些apache/php/mysql的安装包,应该也是一路next就可以玩了。

用jsp的人比较少,偶虽然偶尔也对jsp有点好奇,但是一直没有理由、心情去学习它。

今天,因为自己摆了个大乌龙,终于还是把tomcat 5.5.8当下来,居然,也就一路next之后便可以用jsp了。

而且,好像还是apache tomcat。

well,这也许是说明asp/php/jsp这三种网站开发语言的“门槛”都已经变得一样低了。

asp.net也是差不多低,windows 2003是默认支持asp.net,反倒是asp需要做过设置之后才可以支持。


或者,我应该这样子划分一下,asp跟php(php 4,不讨论php 5)是属于同一个档次,而jsp与asp.net在另一个档次。

asp跟php其实用的还称不上是语言,他们只是脚本,并且是弱类型的脚本。

他们都是不分数字与字符串不分。

变量a,b的值都是1,那么a+b究竟应该是“11”这个字符串,还是2这个数字?

(我知道asp有&,php有.这两个操作符,但请看下去。)

在asp/php里面,是没有严格的方式对这些情况做很好的控制,有的时候,便会出现这样那样的问题。

我们经常可以看到结尾类似“?id=1”的网址,asp/php的初学者,便经常犯没有验证id是否为数字的错误,给SQL注入攻击大开方便之门。

这一方面是初学者没有经验或者是说懒惰;但另一方面造成这样问题的根源之一是asp/php是弱类型语言的缘故。

asp/php都是脚本,所以,他们背后有着强大的函数库。

很多事情,直接调用相应的函数名称就是。

代码短小、精悍。

对asp/php熟悉了之后,巧妙的将他们的代码插入在html代码中,便可以做出很多精彩的动态网页了。

asp/php与html的代码混和在一起,看起来很乱,但是,熟练的asp/php程序员是不会觉得乱的,他们知道应该在哪里插入些什么,并且这样子的插入、混和代码有的时候是很方便的。

杀鸡焉用牛刀?

不过,企图使用鸡刀杀牛的时候,便很痛苦了。

原因之一,asp/php都是脚本,你没有办法编译他们。

compile error/run time error/warrning等等,都是要等到你在浏览器中查看的页面的时候才会知道。

并且,浏览器给出的错误信息并不是非常有用。

特别是asp,有的时候,便只是一个笼统的500 error,开发者是没有办法很快的知道错误究竟在哪里,只能依靠血与泪换来的经验。

“ASP会使人疯狂”在很长的时间里面是我在各种论坛上的签名,指的便是这个问题。

php相对而言,会比asp好一点,但也只是一点而已。

举个例子吧……

在默认情况下,asp/php里面变量是不需要声明的。

当你第一次调用的时候,便会自动生成。

那么在程序中,你不小心把变量data或者是$data打成了deta或$deta。

当这个错误的变量名隐藏在数以百行计的代码中时,你有可能抓狂至死也没法把它揪出来。


asp与php各有支持者。

个人觉得php好一些。

第一个理由::<??>比<%%>容易输入。

我不知道天杀的asp/asp.net/jsp设计者们为什么要选如此难以输入的:<%%>。

第二,php默认带的函数库比asp丰富。

至少,它可以处理文件上传。asp便需要组件,或者写无组件上传类了。

对于asp/php这样的脚本来说,函数库的丰富与否,是相当重要的。它决定了什么事情是你可以做的,什么事情是你不可以做的。我是说,不是每个人都会懂得如何写asp的无组件上传类。

我所指的是默认的函数库,大多数asp/php开发者使用的是虚拟主机,他们是没有办法要求服务商给他们在服务器上安装他们需要的组件/extension的。

asp跟php在分别加上了组件/extension的支持后,能作的事情便很多很多了,没法怎么比较了。

第三,默认数据库支持。

asp一般都是使用Access的,而php则是mysql的。

做web development,数据库是至关重要的,它也可以说是决定了你可以做的事情的范围。

一个日浏览量数万IP的网站是没有可能用asp+Access做出来的。Access支持不了这样数量级的访问量。而mysql则没有这样的问题。

用asp+access的网站做大了以后,一定需要转移到别的数据库上,比方说,MS SQL。php+mysql的网站要做大到需要转移到php+Oracle的情况便少见很多很多了;这个转移有可能不会出现,即使出现也会比access到MS SQL的转移迟很多很多。

不是说Access不争气,而是说Access本来就不是作来给网站用的。靠Access吃饭的程序员跟靠asp+access吃饭的程序员是两个不同的概念。

微软的数据库产品MS SQL与Access之间似乎还应该有多一个东西,这个东西应该是MSDE吧……问题是,MSDE出来得晚,并且非常不普及,微软也似乎从来没有怎么推广过MSDE。

如果,现在普遍的是asp+MSDE网站开发而不是asp+Access;我应该会更加喜欢asp一些。

(个人猜想而已,我对MSDE并不了解。)

posted on 2005-02-23 02:37 问天 阅读(2627) 评论(19)  编辑 收藏

评论

#1楼  2005-02-23 08:55 灵感之源:PSP团队Guru      

windows 2003是默认支持asp.net但不缺省安装,连应用服务器都没有安装,别提asp.net

MSDE是免费的午餐,鸡肋,没有管理器,跟CPU中的赛扬都不可比,起码赛扬很多用户。   回复  引用  查看    

#2楼  2005-02-23 09:02 路过 [未注册用户]

MSDE有管理器   回复  引用    

#3楼  2005-02-23 09:11 gray [未注册用户]

即使日访问量达到数十万的网站也可以基于ASP+ACCESS   回复  引用    

#4楼  2005-02-23 09:49 PC Blog      

这也许是说明asp/php/jsp这三种网站开发语言的“门槛”都已经变得一样低了。

不是很赞成作者的言论!   回复  引用  查看    

#5楼  2005-02-23 09:58 周星星 [未注册用户]

看完,说得不错!   回复  引用    

#6楼  2005-02-23 09:59 Samuel [未注册用户]

MSDE是限制并发用户的版本,说穿了就是个学习版。
M$的安装是好用,但是服务器的效能比起linux/unix还是有一定差距。
我的网站,就是php+mysql的,搭建在rh9as上。   回复  引用    

#7楼  2005-02-23 10:07 知道得越多知道的越少      

MSDE可以用SQL Server中的管理器,不过那个不是免费的.   回复  引用  查看    

#8楼  2005-02-23 10:10 湘南和也      

看的出来,作者对asp的应用并不是很多,了解也不够。asp相当多的web应用是跟sql server结合的,而不是access的。
主要是因为access安全性不够,类似文件,容易被人下载。另外对不支持并发操作,也就是需要等一个处理完了再接着下一个操作。
sql server则相对要好很多,好歹是微软主推的数据库工具,号称企业级应用嘛。
在这点上,mysql应该是没法和sql server竞争的。我认为从数据库角度看asp+sql server要强于php+mysql。   回复  引用  查看    

#9楼  2005-02-23 10:49 Sharper代码人生      

jsp跟asp.net不是同一档次的, jsp/asp/php是类似的   回复  引用  查看    

#10楼 [楼主] 2005-02-23 10:56 问天 [未注册用户]

To 灵感之源:PSP团队Guru:
谢谢指正。的确应该说Windows 2003的设置为应用服务器后,它才会支持asp.net。

MSDE有管理器,记得在Web Matrix里面就可以直接管理它的数据了;而且,我认为,一种数据库的优劣不应该看它是否有管理器吧?mysql,不也是没有管理器?不知道我有没有理解错“管理器”的意思。

To gray:
不是很相信你的话。因为我曾经给一个日流量过万IP的网站做过Access到MS SQL的数据库转换,在升级之前,网站很容易就出现各种莫名其妙的数据库错误。

To 湘南和也:
也许是我的表达不够清楚吧使得你没有看清楚我的话。
我只是在说asp/php在默认情况下使用的数据库,我没有说他们只支持Access或者是MySQL.
Access容易被人下载的问题是很容易解决。
我同意你sql server会比access好很多的说法;事实上,sql server比access好太多了。问题是,sql server是收费的,更要命的是支持sql server的虚拟主机会贵很多!一个个人网站直接使用asp+sql server并不实际,那么等它做大了,它一定得花功夫将access转换成为别的。所以,我的观点是Access跟MS SQL之间少了一个东西。   回复  引用    

#11楼  2005-02-23 13:48 RbmxXx      

为什么还没看到你的“API”的下阿?   回复  引用  查看    

#12楼  2005-02-23 23:59 小残 [未注册用户]

asp+Access做万IP网站也不是不可以,做成产生静态页的不就可以了.
500错误主要是因为浏览器设置的关系,把IE高级设置里面的"显示友好
HTTP错误消息"勾掉就行了.MSDE也就比Access好那么一点!数据库最大也限制在2G,并发数也低...做大也不实用.用MSDE比较明显的好处应该是方便升级么SQL Server吧.MS的东西贵啊.便宜的限制太多.空虚的东西.   回复  引用    

#13楼  2005-02-24 00:00 Klesh [未注册用户]

asp+Access做万IP网站也不是不可以,做成产生静态页的不就可以了.
500错误主要是因为浏览器设置的关系,把IE高级设置里面的"显示友好
HTTP错误消息"勾掉就行了.MSDE也就比Access好那么一点!数据库最大也限制在2G,并发数也低...做大也不实用.用MSDE比较明显的好处应该是方便升级么SQL Server吧.MS的东西贵啊.便宜的限制太多.空虚的东西.   回复  引用    

#14楼  2005-02-24 00:01 Klesh [未注册用户]

asp+Access做万IP网站也不是不可以,做成产生静态页的不就可以了.
500错误主要是因为浏览器设置的关系,把IE高级设置里面的"显示友好
HTTP错误消息"勾掉就行了.MSDE也就比Access好那么一点!数据库最大也限制在2G,并发数也低...做大也不实用.用MSDE比较明显的好处应该是方便升级么SQL Server吧.MS的东西贵啊.便宜的限制太多.空虚的东西.   回复  引用    

#15楼  2005-02-24 00:01 小残 [未注册用户]

asp+Access做万IP网站也不是不可以,做成产生静态页的不就可以了.
500错误主要是因为浏览器设置的关系,把IE高级设置里面的"显示友好
HTTP错误消息"勾掉就行了.MSDE也就比Access好那么一点!数据库最大也限制在2G,并发数也低...做大也不实用.用MSDE比较明显的好处应该是方便升级么SQL Server吧.MS的东西贵啊.便宜的限制太多.空虚的东西.   回复  引用    

#16楼 [楼主] 2005-02-24 00:45 问天      

To: RbmxXx
因为后面部分的不大好翻译。还在奋斗中。

To:Klesh
呵呵,如果要做静态页面,那为什么还要用asp呢?
well……其实,我觉得,在这个问题上,扯远了……
嗯,在我知道可以显示不友好的HTTP错误信息后,我基本上都已经转用ASP.Net了,所以,对于ASP让人抓狂的印象,还是保留在那边。   回复  引用  查看    

#17楼  2005-02-24 09:52 Ariel Y.      

啊,不要再讨论Access下载的问题了!
干脆就不要放在站点目录下面。我用的虚拟主机都是提供www的上一级目录供FTP的。通过网址根本访问不到。   回复  引用  查看    

#18楼  2005-02-26 17:28 chenge      

正好我也接触过几种,asp.net是创新的控件模型,但要掌握控件的使用也不容易,灵活性也会差一些。最近遇到一个不大的程序的bug,没有任何提示信息。我最近也在学习asp.net.

php的重要特征是它是开源的,很容易学,概念也很清楚,我正打算深入学习一下。有一个集成安装包apachefried很方便。

jsp我感觉比较繁琐复杂一些。

  回复  引用  查看    

#19楼  2007-04-01 16:41 亚历山大同志      

其实PHP还是很牛的,起码PHP不应该和ASP放在一个档次上,很多的大型的网站都是运行在PHP之上,而且PHP也出了很多的好产品。   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:
 







<2005年2月>
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112

导航

统计

与我联系

搜索

 

常用链接

留言簿(12)

我参与的团队

随笔档案

积分与排名

最新评论

阅读排行榜

评论排行榜