evoup 在 4/20/2006 9:54:22 PM 说:搞了半天,都没精通一样,最多只是纸上谈兵
| 犬者 |
| “说了你又不听,听又不懂,懂又不做,做又做错,错又不认,认又不改,改又不服,不服也不说,那叫我怎么办?!” |
|
【电脑】几种主流网页开发语言的思考(上) 在开始学网页开发的时候,我学的是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并不了解。) 问天 @2/22/2005 11:30:48 PM View blogs in this category:电脑 Wuvist 在 8/19/2005 1:24:12 PM 说:突然发现我这篇东西只是写了(上)…… 最近在一直在学j2ee/orm…… 对web 开发的理解又跟以前全然不同,不知道啥时候会来写(下)……或者……(中)…… Wuvist 在 8/19/2005 1:22:35 PM 说:写了这篇东西之后,我也是开始有使用php做几个项目……还是觉得php跟asp还是在一个级别…… 同意楼下的楼下,这篇东西“太肤浅了”…… 至少,我现在认为asp/php都是可以编译的…… Please leave your comment here |
Navigation
Blogwind犬者首页 Contact 个人档案 ![]() “说了你又不听,听又不懂,懂又不做,做又做错,错又不认,认又不改,改又不服,不服也不说,那叫我怎么办?!”
Categories
死结(27)电脑(171) 心情(175) 天影(25) 乱弹(204) 博客(80) 音乐(18) 饕餮(30) 读书(19) 电影(27) 网摘(5) 希望(31) 汕头(10) 经济(5) 苹果(19) 跋涉(3)
Archive
2008年8月2008年7月 2008年6月 2008年5月 2008年4月 2008年3月 2008年2月 2008年1月 2007年12月 2007年11月 2007年10月 2007年9月 2007年8月 2007年7月 2007年6月 2007年5月 2007年4月 2007年3月 2007年2月 2007年1月 2006年12月 2006年11月 2006年10月 2006年9月 2006年8月 2006年7月 2006年6月 2006年5月 2006年4月 2006年3月 2006年2月 2006年1月 2005年12月 2005年11月 2005年10月 2005年9月 2005年8月 2005年7月 2005年6月 2005年5月 2005年4月 2005年3月 2005年2月 2005年1月 2004年12月 2004年11月 2004年10月 2004年9月 2004年8月 2004年7月 2004年6月 2004年5月 2004年4月 2004年3月 2004年2月 2004年1月 2003年12月
My Links
5Gbloglines 时尚摄影师奇科的博客 我们的漫画 颜如玉 最爱卫斯理 |