Skip to content

有感于《论PHP的倒掉》

方跃明 2009-11-23

原帖以昵称 七月十五 发表于 http://www.iteye.com/topic/523378

已被隐藏的《论PHP的倒掉》参见 http://www.iteye.com/topic/520153

《论PHP的倒掉》

最近听闻Python貌似有打入冷宫的危险,惊出一身冷汗。突然想起自己常用的PHP,似乎在红火过几年后,越来越被人们看淡了。其实细细想来,php出局是合理的,作为一个PHPer我深切的意识到这一点。

PHP能上能下,貌似在后端和前端都可以用。如果PHP的本身(运行机制、内核等等)够强大的话,诚然是好事,几乎可以一统WEB之江湖。但事实并非如此,PHP在性能、安全和语言层面存在很多弱点。导致了性能低下、资源浪费,不适合大型应用开发。在前端比不过javascript+xhtml+css,在后端比不过java,c/c++,Python,Perl。样样懂不如一门精,不无道理。如果没有杀手锏,迟早是要被淘汰的。

目前,后端开发大量的WebApplication向WebService进化,PHP作为服务端脚本的方便优势越来越小,以至于荡然无存。就WEB编程而言,在前端用Javascript等语言很方便就可以操作html,基于DOM编程,与后端进行ajax交互,快速、安全、高效、节能。在后端采用java、c/c++等语言搭建高性能、高安全性、高并发、集群式的服务平台。完全有理由抛弃PHP等任何服务端的脚本语言。

我一直在想Service-REST + Application-MVC (Application可以是Browser但不是仅仅是Browser)的威力。在这样的系统构建中,我有一个很极端的想法,那就是服务端脚本都成了鸡肋了。这样的环境下,asp有.net,jsp有java,只在服务端脚本有作为的PHP第一个就倒掉了。

其实近些年来PHP的价值已经被定位在了前端脚本语言。在运作成熟的大公司,招PHP大部分只用于前端开发,很多PHPer大概也是高达7K左右的月薪——我是自学的程序设计,从未从事过编程设计行业,请原谅我对具体情况的不明真相。面对汹涌而来的大潮,我建议PHPer想从事后端的多多学习java,想从事前端的多学学javascript,不失为一个转型的出路。

这么多年黑灯瞎火的摸索,在PHP中摸爬滚打也有几年了,回过头来证实了PHP的倒掉。作为一个PHPer,感到莫名的心酸。

方跃明 2009-11-19

面对攻击和隐藏扣分,我并不感到愤怒和伤怀,那样太消极了。被隐藏后引发了我的思考,为什么会被隐藏和遭受攻击?到底我所思考的是不是走入了误区?我如何正确的认识php和编程?我能从中得到些什么启示呢?

另外我声明一下,我就是phpchina的七月十五,但是并不代表phpchina的立场,所说的话只是私人言论,在javaeye我只希望我是javaeye的会员而已。

php作为目前排名的第三大语言,这么多年来多少有点研究,php的发展并没有扬长避短,发挥优势,实在看不出php的长处在最近几年的发展。一样东西如果没有长处,一定会有替代品,淘汰是迟早的事情。撇开php在后端领域目前根本就竞争不过java和.net不说,javascript潜力的发掘和崛起,以及Flex,JavaFX,GWT等的进步,无一不威胁着php的优势地位。不要认为php是服务端脚本就没有被取代的可能性。

未来的编程发展方向是服务(Service)式和分布(Distributed)式的。这必然会导致信息传输的编码标准化,与服务器交互是不限制语言的,只要这个语言有解析编码的能力,就能处理信息。面向服务编程不限语言,这一点可以从淘宝的TOP上直观的看到,TOP几乎支持任何主流语言。面向服务编程也不限客户端,不管你是应用小程序(applet),浏览器(browser),桌面应用程序(desktop),还是移动终端(moblie)都可使用服务。

也许是我过于偏激了,因为目前大量的phper编程都使用一直以来非常传统的php数据编码编程,思想固化;要么就走向了所谓的企业化的oop及使用大型框架的方向,偏离php的优势。而php的发展方向在哪里,我估计目前zend也比较疑惑。很多人认为php应该加强底层的优化,提高性能和效率,继续以前的简单实用。然后zend貌似要把php拉向企业计算的大池塘里,php这条小鱼要跟java,.net等等大鱼去争一席之地,大鱼吃小鱼是规律。更可怕的是在企业计算重视性能和安全,php这条慢鱼也逃不过快鱼吃慢鱼的的悲剧。

zend如果不重新审视php的发展方向,以及目标市场,以及发展计划的话。不出三五年后端java,.net等以及前端的javascript,html5,Flex,GWT,JavaFX等会重新占领市场份额。php会在萎缩中倒掉。

这篇文章因为立场原因不适合发在phpchina,这样的论调要么引发不满,要么消极导向。另一个原因是因为javaeye层次更高些。所以我发在了javaeye的php版块。发布后我就去往上海参加了为期三天的绩效管理封闭式研修班了,没有及时关注。原以为会引发讨论,没想到换来的一堆的谩骂和攻击,最后被隐藏扣分。这是我意想不到的。

之前我就说过,任何语言层面的讨论都没有意义,人菜那才是真的菜。PHPer的现状是不思考,不实践,全作愤怒状,听不进任何意见和建议。心态决定思维,思维准定行为,行为决定结果。盲目自大、鼠目寸光、杯空自满的心态,我想这才是php倒掉的真正原因。

其实倒掉更多的是人,我不希望见到这个倒掉,那个倒掉。朝阳喷薄,以至如日中天,亦有日薄西山时。时乎,时乎,会当有变时。

willko

是否想表达,以后有更多的逻辑处理放在浏览器中实现(前端RIA之类的),而后端,因为php本身的原因,所以php只能作为一套系统的web接口。

但是又因为浏览器的可编程能力提高了,所以php这样的代理作用不大?

其实,楼主说“PHPer的现状是不思考,不实践,全作愤怒状,听不进任何意见和建议”,我只想说你知道得太少了。

不要以为一个PPC代表整个中国的PHP现状。。。

我谈谈我的看法,其实说得并全无道理,确实php会萎缩。

现在php的需求上升,完全是泡沫,互联网这个市场大家的疯狂涌入,需求肯定会上升的,但是弱肉强食,市场有限,垮掉是时间问题。这是萎缩的原因之一

其二,正如楼主所说的前端处理能力,以后可能会放更多的逻辑运算在前端,所以php的需求会下降,这是其二

但是这两条还不至于让php垮掉,php做为最轻便的“web接口”方案,实现简单,部署方便,是肯定会存在的。

robbin

作为一个曾经的老PHPer,我个人的看法是PHP的不会倒掉。我在99年2000年的时候做互联网开发,用PHP作为web,用Java做后端高性能服务,也算10年的老PHPer了。10年的编程生涯回顾过来,对技术的认识也是一个否定之否定,螺旋式上升的过程。

PHP是一个优点和缺点都过于突出的web语言,因为他的优点就是过于简单易用,所以他非常有生命力,也因为他太简单,所以应用领域受到很大的限制。但你不能忽视一个编程语言简单易用带来的威力,前两年我曾经认为PHP要被更加高级的Python/Ruby取代,但事实证明,PHP还是互联网第一的编程语言,Python/Ruby还是比PHP复杂很多,带来了不少门槛。

JavaEye曾经有一个PHP的讨论贴:PHP框架的繁荣是正确的发展方向吗?,在这个讨论当中,我对PHP的看法就是,PHP不应该搞重型框架例如Zend这种东西:

robbin 写道

其实PHP核心问题都不是性能,而是能不能保持“简单性”和“草根性”

一个有点编程背景的普通人,只需要学习PHP半天时间,就可以上手开始开发web应用了,这就是PHP最大的优势。专业程序群体才多大,而电脑爱好者的群体有多大?我一个朋友,做photoshop出身的,人家学了两天PHP,到处接活给人家开发网站,一个人全部搞定。你让他学Java,那真要了他的命了。我另外一个朋友的老公,人家压根就不是这一行的,照样会用PHP搭网站,人家上网去下载一个PHP程序,改吧改吧页面,就弄好了,你让人家学ruby?那肯定不可能。

PHP的人海战术也就是这么来的,群众基础好。事实上PHP5曾经在相当长时间内被抵制,就是因为PHP5的面向对象语法引入了对于电脑爱好者来说门槛开始变高了,PHP开始变复杂了。

因此PHP再用什么框架,是违背PHP本身的设计哲学的。PHP就应该做简单的页面处理就够了,复杂的逻辑让后台的Java/C++去处理。

事实上这些年PHP的应用领域也不仅仅在前端,相当多后端编程甚至后端服务也直接使用PHP,比方说Facebook这个现在全球流量第2大的网站就是绝大部分功能都是PHP,附带少量的C++,Java和Erlang,再比如现在热门的网页游戏,基本上也都是直接用PHP做后端来用。可以这样说,最近3年来,PHP不但没有萎缩,反而在扩大市场份额,PHP作为互联网Web编程语言的王者,短期之内还没有出现有威胁的挑战者。

回到楼主这个话题上来,其实楼主思考的问题应该是:不是PHP有没有前途的问题,PHP是肯定有前途的,但是PHPer会有前途吗?

这个话题就有些沉重了,PHPer总给人不登大雅之堂的感觉,PHPer的薪资也远远不及同等工作年限的Java/C++这也是一个残酷的现实。一个程序员工作3年之后,随着视野和经验的增长,不可避免要考虑web架构,高性能高可用性问题,而这些领域,都不是一个纯PHPer可以涉及的领域,所以PHPer很容易就触到职业上的天花板,要打破这个天花板,你就不得不去接触C++或者Java这些编程语言。但对一个PHPer来说,当你不得不去学习Java或者C++的时候,心理难免有些感概,我何不从一开始就搞C++呢,这样职业发展道路岂不是更好?所以就会产生PHP没有前途的悲观想法。

其实我个人觉得从程序员的职业生涯来看,不应该把自己和编程语言绑得过死,开放心态,多学习多接触多实践,各种编程语言仅仅是你工具箱里面的各种工具才好。

syu

都开了贴子讨论,又何必以沉默待之呢?

这儿的人一没爆粗口,二没群起愤之。大家仁者见仁,难道不是楼主开贴初衷?

语言嘛,工具也,又非宗教。

站在人的角度,适者即用。但也不至于对工具本身死活轻下结论。毕竟还有这么多场合在应用着。

站在业务的角度,只有不适合的工具,没有不好的语言。

企业应用是个天大的骗言和幌子,谁能给个定义,什么才算是企业应用?

多少年来对PHP的打击无一例外不是祭出“PHP不适合企业应用”的大旗。

那么facebook,yahoo,百度,sina是不是企业?他们有没有用PHP?

有人也许会轻藐的说,他们只用PHP做简单的事,复杂的仍然是X,Y,Z在做。

但反过来说,为什么它们不用X,Y,Z来做这样简单的事?因为不适合嘛。

我所理解的企业应用是一个集合,通常需要多种工具来进行整合,每一环都有它存在的意义和价值。

PHP在WEB层面活跃不是没有原因的,也不是因为它语法随意,简单。而且以PHP出身(而非终结)的高手业界也不少吧。 哪里来的死亡?

dualface

(敏感词)倒了,PHP 都还不一定会倒 -_-

PHP 的成功并不仅仅是“简单”,最重要的原因还是 —— PHP 是一种完全为 Web App 设计的语言,所以用 PHP 做 Web 那是如鱼得水。

虽然 Java/.NET/Python/Ruby/XXX 也可以做 Web App,但是比起一种专门为 Web App 设计的语言,易用程度和开发效率上有很大区别,所以 PHP 积累了庞大的群众基础。

当然了,Web App 的规模越来越大,仅靠单一语言是不可能解决问题的。但是人类解决问题的模式就是把大问题分解为小问题,再把小问题分解为更小的问题。如果仅仅着眼于服务端和客户端的交互这一层,PHP 就是极佳的选择。就好像卫生纸和卫生巾都可以吸水,但是没几个女生会用卫生纸来代替卫生巾。

说的现实一点,雇一个 Java 熟练工的钱可以雇两个 PHP 熟练工,生产力还更高。所以越来越多的 Web App 都把这一层交给 PHP 来处理。

magician

你显然完全没有理解php的用武之地在哪里

1、是,显示可以用javascript,但是它的数据来源在哪?是怎么来的?数据是通过什么逻辑组织的?如果你能直接从浏览器访问到存放在任何地方的数据,那我就可以承认其他一切语言都可以滚蛋了,js最牛逼。很可惜,事实上并不是这样。js能直接从服务端得memcache里拿数据吗?可以从数据里拿数据吗?而恰恰目前能帮助js组织好数据,并以一定格式(比如json)返回给浏览器的最好工具正是php,这个我前面已经说明了,不明白请往前看。

写到这里,如果你还认为要拿php和js来做比较,只能说逻辑不清了,我们没必要再讨论下去。

2、展示逻辑和展现为什不能分开?

为什么没有必要分开?

xml+xslt不是正是在分开他们?

WML又如何?界面不一样而已,数据组成逻辑也不一样吗?

而且,正是因为有各种不同的展示方式(html,wml,flash),他们都在变,而恰恰不便的是php在服务端的处理方式:返回一定格式的数据(比如json) 这不又恰恰说明了剥离展示逻辑(数据生成)和展示方式的必要吗?

3、方向......

好像只是你个人在认为某个语言方向不正确,你是不是正确的都不知道,就夸夸其谈你所谓的正确性

有什么能证明你的方向是正确的吗?

更何况,编程序的哪个没有触类旁通的能力,就算我现在钻php钻得很深,又如何能断定我的java能力就很差呢?何来跑得越快就偏得越远呢? 我觉得语言恰恰是你只要精通了一种,其他的都无非是换个壳子,如果你现在还认为有什么语言需要花10年功夫去研究才能小有所成,所以一定要选对方向,不能犯错,那我只能说:你太嫩了

4、为了证明我以上所说的,我列举一下我现在项目所使用的语言:

  • 大量client javascript
  • 大量php
  • 大量java
  • 少量python
  • 少量c
  • 少量shell
  • 少量flex
  • html+css+xml+xslt就不算进去了

对于一个日pv 100万左右的网站,我还真没看出来在php这个层面我的方向怎么就错了,界面一直在变,但是php的显示逻辑一直没变过,并且效果高,逻辑清晰。倒是数据库有换的打算,mysql换成postgresql。

sztime

原帖的12页我是耐心的看完了, 但这个帖子的回复我实在是看不下去.

首先申明: 本人根本不熟悉楼主, 他在PHPChina上的帖子看过的也绝对不超过10个; 以下言论仅代表本人观点.

楼主的说法确实有点偏激, 但大方向上并没有错.

何谓"倒掉"? 倒掉并非死掉, 一个企业或品牌, 只要市场萎缩到一半, 就可以称之为倒掉了,而PHP在三五年后份额萎缩到一半, 难道真是不可能的事吗?

另外就是攻击楼主"拿PHP和JS比较"的那些人, 实话说很可笑! 楼主所站的高度比你们高了至少二个档次, 只不过没有(看了前几页, 感觉应该是他根本就不想)解释得像小学课本那样通俗而已----退一步讲, 就算他再写多一倍的文字, 凭你们的水平恐怕仍然难以打破自己头上的天花板! 你们把"PHP是服务器端语言而JS是浏览器端脚本"当成可以判定一切生死的圣旨,都以为自己很明白, 事实上愚蠢之极! 我打个比方吧: 楼主说, 据最新研究, 火星上可能有水存在----你们看了马上就骂道: 楼主你真白啊, 火星既然叫火星, 上面肯定只有火了, 怎么可能有水呢?

akandfxs

楼主说的很在理。其实前端javascript太强悍的后果,就是对快速开发提供了足够的支持。以前php强调的灵活性和快速部署,在足够强大的javascript快速开发和java这样的后端语言的提供上,是非常有可能压榨php的空间的。在云计算时代就更是如此了。javascript对php的空间的压缩可能会更明显。

giginet

我觉得lz这是作为一个老手,随着水平不断提高所产生的一种潜意识的危机或半强迫症吧。就好比很多水平越高,反而觉得越技不如人的那些人。而刚入门的反而容易觉得自己已经了解的足够多。

目前的web层表示越来越丰富,js作为前端语言,对于逻辑的展现也在逐渐增强,对于后台处理的很多数据,可以直接以json输出到前台进行解析,或者一些逻辑也可以使用脚本实现。从开发层次上来说,对于一个web程序的开发,前台功能增强,后台php的编码的确是在逐渐减少。但我并不认为php会被取缔。再好的前台还是最终要有后台支撑的。虽然使用php可以达到某些特殊效果,但与java等的对比性不在这里。php的最大特点还是轻型,快速开发,效率也不错,这是它极大的优势。这就好比mysql与oracle之间的关系一样。这么多年,mysql依然没有倒掉,各个大型网站的后台,mysql的份额看看有多少就知道了。有的时候,免费,简单,轻型,快速,对于一些小型开发还是王道。

我觉得robbin说的很对,关键还是看人,语言之类的毕竟只是工具,浮云而已。好技术好语言都应该要有它合适的岗位,无所谓排名先后,无所谓影响度高低。就好像前几天看javaeye中有一个开源的小项目,逻辑全部放到数据库中去写,基本都已经不需要写java代码了,但不可以说java就因此而倒掉了。语言终归还是有它合适的场景的。就好比asp,再多么差劲,目前不还是有人在用么,呵呵。

从市场来讲,要php的企业还是非常多了,php也不会短期内被取缔。只是也许目前phper的薪水与java等实在无法一起比罢了。毕竟php的入门也相对容易得多,薪水低一些是符合市场规律的,而这难免就会对一些老鸟不公,有时也会不可避免的发一些感慨。

都是技术讨论,个人坚持自己的意见没什么错误,毕竟只是讨论而已。而很多事,本来就难有对错之分。

PHP