文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP艰难回归正统

PHP艰难回归正统

时间:2006-07-04  来源:qiyu15555


HonestQiao

PHP曾经以其小巧灵活,可以自由的嵌入HTML代码之中,构建动态页面,无需多少专业的编程知识,短时间可以快速上手,快速进行开发,大大缩短了开发周期.
    例如很多地方都说:
QUOTE:
PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http: //www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。
然而,PHP的一些优点逐渐成为PHP的垢病了.
    因为它小巧灵活,可以自由嵌入HTML代码之中,这样子的开发,在目前看来,.只适合于小规模的开发,小打小闹了. 因为一个程序的开发不只是最初开发,维护和更新更是一个重点.
    正是如此,PHP很难进行大规模项目的开发,虽然也有人讨论过,但是世纪情况多半是:一些爱好者,一些小公司在使用PHP开发,这样子无需太多时间和太多的成本.
   
    当然,PHP的开发者逐渐认识,也许他们早就认识,只不过打了一个时间差,现在正在一步步把脱缰野马拉回正路,回归正统了.
    大家可以看看当前一些比较有名的PHP程序,例如:有名的论坛VBB/PHPBB等,无不是把代码和页面分离开来.
    同时大家从目前在PHP社区的一些热点讨论,例如:类技术、模板技术等等,也可以看出,PHP正在回归正统之路,正在逐步将小作坊式的"嵌入式"开发这个引以为豪的"优点"慢慢脱去。
   PHP不是一种划时代的语言,要想获得更大的发展,离经叛道是不可能的,回归正统是必然之路。
    最近因为工作需要,转而研究C++了,我觉得对我在PHP方面的开发水平大有帮助,强烈建议,如果想做好PHP,不要忘记在床头摆上一本C++的书不时研究研究.

   
       同时声明,我这么说并不是为了反对PHP ,也不是为了误人子弟或者误导,而是发表我自己的一点看法而已,而且PHP将一直而且永远会是我最喜爱的编程语言之一。
    无论采用什么,最终的目的都是为了更好的解决问题,记住一点:
他们是为了帮人解决问题,他们不是为了控制人。

   

longnetpro
说:
对楼主的原文中,我对某些观点并不苟同。下面我谈一下我的观点。
什么叫正统?我认为这种说法有点无稽。嵌入式脚本就不正统,就只能小打小闹了?说这种话的人只能说自己的水平比较差。
WEB程序,特别的象PHP这种解释型语言写的程序,解释过程是个瓶颈,用这种嵌入式脚本其实在解释上是最快的。那些用什么模板其实是在降低效率。除非PHP本身或是ZEND内部有一套模板机制,否则用嵌入式是最好的模板方式。
至于说到类技术,那是应该的,因为维护与效率的取舍上,大型工程要取维护性,这点不用否认。但模板就是两码事了,除非PHP到最后变成JAVA这类伪编译的语言,用嵌入式脚本无疑是最好的。
还有一个说嵌入式脚本是不是代码与页面分离,有人认为不是。而我认为这要看具体的情况,这个与写程序的人的水平有关。并不是一定要代码与页面完全分离才叫模板,而应该是逻辑层与表现层分离就可以了,其实也是个折中。那些说什么代码与页面完全分离的人其实也不想想,用C++或是JAVA写程序(不仅仅是WEB程序)你能做到代码与页面完全分离?不然为什么别人汉化一个软件那么费劲?用PERL写的WEB程序,你不在程序中加入大量的print?用C或是JAVA之所以能够解析静态HTML模板比较快,因为它们是编译或是伪编译语言,而相对来说PHP就不行,这时反而嵌入式脚本比较好。其实一些论坛中用的所谓模板,到最后还不是生成了嵌入式脚本,只是不用你自己写而已,为什么?还是因为它是优点而不是缺点。其实嵌入式是有不足,但还是在发展,而不是被取消,比如说asp.net,它其实仍然还是嵌入式,只不过是嵌入式对象了,这与JSP有异曲同工之秒,但你能说这不是代码与页面分离吗?
因此对于楼主文章中的观点,学C++与JAVA当然对PHP有用,也应该学习。但是对某些观点,特别是嵌入式脚本的观点,本人不敢苟同。那些喜欢津津乐道地说这些的人,说到底是对多层思想与对象观概念理解不透,只会似是而非,从表面上说一些名词,而不是从本质上看问题。一个语言的设计与发展,特别是新兴的语言,无不是把程序设计的方便快速性与程序的易维护性放在首位,但这两者其实是有矛盾的,不可能指望鱼与熊掌兼得,但可在这两者中做平衡,因此不太可能完全取消一个方面而照顾另一个,不然为什么asp.net不取消嵌入式脚本呢?JSP为什么会发明出来呢。那些所谓正不正统我认为更加是胡扯。技术方面没有正不正统,什么有效,什么被人接受的多就发展什么,因此技术在某些方面也是市场行为;更何况一些所谓的正统也在慢慢改变方向,谁知道谁是正统的?一定要有对象支持才叫正统?标准C或是PASCAL算不是正统?
不可否认,PHP5中对对象的支持大为加强,这的确是它走向所谓正统化的一个过程,使它更适合做大的工程;但其实PHP4也一样,用PHP4写的程序也一样适合大型工程,可为什么大家只习惯也只会用嵌入式而不会用对象呢?因为它对对象支持不好?这是典型地为自己找借口,说到底还是水平问题,非要等自己写起来简单的语言特性出来了,才说这种语言好。
真正的问题不在任何语言,而在与技术与写程序的人本身。请不要老是把过失都推在语言上面,而应该从自己身上找问题,这样才是正确的学习态度。
另外,还顺便说上一句,网上有很多文章都写得比较极端,不是偏左就是偏右,并没有从本质分析,说的一些东西对一般大众有比较强的迷惑性,甚至有煽动力,这是不正常的现象。尤其是一些人用所谓专家的笔调来写,更是对一贯崇尚权威的中国人来说有效(当然本人不在崇尚权威之列)。因此中国人大多数比较盲从就是这个原因,也因此没有办法创新。以我在国外的经验,我认为正确的态度是,对任何一种说法在接受之前,要仔细研究一下,至少要思考一下(这与个人水平也是有关的),但不要一下子就全盘接受,当然也不能一下子全盘否定——一个说法总有值得学习的地方,除非它的信息含量为0。对任何观点,如果大家都抱着二分法或是辩证法的观点,你就能学到很多东西。否则,你的思想就只会为他人所左右。
总之楼主的那篇文章中,我认为对人有一些误导,使人盲目地从一个极端走到另一个极端,这都不是可取的。因此特地来发表一些个人观点。
当然,我的观点中可能也有不足,希望合理讨论。谢谢大家这么耐心看完全篇。
longnetpro
补贴如下:
另外,提醒大家一点,研究C++或JAVA不是目的,只是手段,主要是使你熟悉对象的工作方式及原理。希望大家不要又陷入了学习另一门语言的误区。
其实所有语言的内核都基本上是一致的,这是由当前计算机的硬件结构体系决定的;所有的语言到最后都成为二进制代码,成为内存或是中间存贮器内的数据。研究语言,只是一研究一种逻辑思维,而不是为了这个语言本身而研究。象楼主说的C++或是JAVA,你研究它的目的无非是为了掌握面向对象的原理。有人问C++是否难学,本身这个问题就不对,应该问面向对象是否难学。你只要掌握了规律与思想,哪怕你只会一种,学起其它的来也一样会得心应手,一通百通。就比如你学外语,如果你学习的时候掌握了语言的规律,就会发现学其它语言是一样的,只是词汇不同,有些说法不一致,需要实践而已。计算机语言也是这样,而计算机语言比真正的语言更简单,因为它的语法是规则的。
对于楼主的提议,我认为,学习面向对象,不适合用C++,因为C++的概念比较多,还要兼容以往C的概念,不太容易理解,建议学习JAVA,经典教材为“Thinking in Java”,这本书适合反复学习,无论是初学者还是高级,每看一次都会加深一次认识。这本书并不是讲JAVA语言,而是说要你会用JAVA的模式来思考问题,其实就是说用面向对象的观念来思考(JAVA是纯OO的),它详尽讲述了面向对象的一些观念与特性,有的还简单讲了一下在内存中的机制(其实这个对理解有很大的帮助)。对于C++,我认为应当在面向对象的概念掌握清楚了之后(不是JAVA掌握清楚了之后),就可以学习了,而且你会发现C++真是非常地简单(注意是C++很简单,不是MFC这类的类库简单,请不要再次误入歧途,去啃那些无聊的库函数或是类)。
总之一句话,语言是形式,原理是精髓,如果只重形式而不注意精髓,那么学十门语言也掌握不了一个原理,这样学起来是没有一点意义的。


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载