php既然这么烂,那它是怎么火起来的? 财富值12

2016-08-19 07:47发布

PHP既然这么烂,那它是怎么火起来的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
问问题前,你先问前提对不对,不是在该既给前提下所说的是不是

答主你说, php的 “说到性能,目前只有用HHVM或者测试版的PHP7才能吊打Python,而用目前的官方稳定版PHP在大部分时候还不如Python” 这句话我就不说了

比较权威的benchmark网站,你看看PHP vs Python性能
benchmarksgame.alioth.debian.org



看到没,前面的都在1以下,大部分1/3 1/10就是说明实现同一个功能,PHP所花时间是Python的接近1/3、接近1/10 , 你要不信,可以去看相关问题的代码,该代码在该网站都有的,你可以看看是不是代码写的渣。



PHP的性能不说别的,从我用的那么多体验来说,虐Python有多的。比java不如,但是加上HHVM,单机好、小规模部署好于Java,大规模集群上Php比不过Java,但是性能差距也现在渐渐在1倍以内。

就像benchmarks显示 PHP比ruby、python多出的都不止2倍
一个东西流行真的有其背后的数据啊、性能啊、上手啊等等优点的
PHP流行到什么程度?

w3techs.com 给出一些数据如下:
PHP写的网站占所有网站的大概 80% 了。这个网站的数据我觉得还是比较信服的。你黑跟不黑,他们都在那儿用php在。

链接在这:
Usage Statistics and Market Share of Server-side Programming Languages for Websites, May 2015

PHP流行无外乎
  1. 简单
  2. 性能足够好
  3. 热部署、易修改
  4. 部署方案简单、各种独立的php空间商好找
  5. php官方够给力、性能提升比较大, Facebook出的HHVM更是反映了PHP的兴盛
  6. 一些顶级PHP类库的发展,比如韩天峰的Swoole ,github地址 swoole/swoole-src · GitHub 鸟哥的yaf laruence/php-yaf · GitHub
  7. PHP的极强的兼容性,这个也是稳定、高效的最好的佐证,PHP5.2到现在的PHP7、hhvm有多少的不兼容么?反观Python Python2跟Python3是裂变,ruby每个版本的兼容性其实很大的,甚至一些gem比如rails之类的 ,兼容性很差的。
  8. Php的灵魂Hash Table很精妙,php的简单我觉得绝大多数构筑在hash table设计精巧上, 用了那么多的语言,php的数组、对象操作真是最简单最得心应手的,这个就是Php hash table的强大了,关于hash table的C实现,可以大概瞅瞅PHP C源代码, php-internals.com/book/?

四大web语言(仅仅web上用的比较多,比较类似的4大语言) PHP跟python、ruby java 我都学过(C#粉勿怪,我是linux脑残粉,只用linux下用的比较广的东西,ms系列的东西我都不看的。)
其中php ruby python算是同类C实现的脚本语言这一类的。java自成一类字节码半编译基于强大JVM的伟大语言。
分开来说:
  • 在php、ruby、python里面

虽然我觉得python、ruby比较省代码

但我不觉得在web上 python、ruby有机会击败php。不要因为少数开玩笑的、低级的黑PHP就觉得PHP不行了,那些黑PHP的多少黑到点子上去了。

别的我不知道,学校里一些玩儿python的自以为python很厉害,整个php群体比较菜的,这其实是python小众群体的优越感了。真比起来,python在纯web上比不过php跟ruby。

以前十年前大概,挺多初高中生搞ACM、OI 会一点pascal 就那种很优越的经常说,“别跟我提C++,我是写pascal,不懂C++啦”,就是那种自黑狂妄的秀优越的那样说出来的, "不懂C++都拿出来秀优越一样",真是可笑。

python、ruby的类库比php多一些, 但是在纯web跟web相关这方面,php的成熟类库比ruby、python多的,这就是php为什么现在在web上比python、ruby强。perl的没落也不是没有原因的。1995-1998年大概, lamp就开始提出来,盛行天下。当时很强大的雅虎在内部全部推广php, 最后才引起php的盛世啦。


  • 再说 java跟(php ruby python) 这两大类。
java综合来说,写起来复杂一点,不要跟我扯java敏捷开发(java的敏捷开发是相对于java以往的开发例子的敏捷开发),嵌进去预言的语法是你的一个便捷的框架能改变的么?真想逆天改命呢。

jvm经过sun orcale IBM 等等花重金堆人才、堆技术、堆黑科技,堆出来的超强性能,惊世罕见。已经在很多地方java不比c++ 慢了。

java的一些工业级的强大类库、php ruby python只有看着的份儿,这个是事实,得认。apache基金会下面一票的伟大的java项目: tomcat 、 cassdra、POI 、strust 、lucene、solr、hadoop、hbase、zookeeper 等等。具体可以去看
apache基金会主页
apache.org/


在web方面, java堆机器、堆集群是可以把一些性能堆上去的,还有一些像站内搜索引擎方面事实标准是solr 、lucence, 这一块基本只能用java。
还有一些复杂的后台任务啊、之类的都用java不断的跑。写到cache、队列里面去,供其他语言调用。

java一个很好的特点就是工程性特别规范特别强、简直是标准的工业级语言。虽然写起来有点点繁琐,但是配合伟大的jetbrains idea 系列IDE的智能提示,基本不麻烦。java的安全性、线程锁、同步啊、Exception等等是别的语言很难达到的。所以淘宝、当当、京东有用到java的,哪一步比如读文件、数据库连接、IO、网络等等所有地方的 异常都可以捕获,万一发生诡异的异常都可以找出来的。其他语言(php ruby python)目前基本没这样的能力的。

所以一些大企业java / c++ + php混用的,其实挺好的。

个人觉得“PHP是最好的语言”,这话即使不对,也是最好语言之一。



知乎上面有些人真是无语,别人写了答案有数据、有网址、有图的,同时提出自己的观点。
有的人上来直接




我有说过php跟python的 web框架的性能跟 开发效率么?

benchmarksgame.alioth.debian.org网站是很有名气的,上面的测试都有代码的。你要是不信也没办法了。 我说的是php 跟python的语言性能,benchmarks测试的也是语言的性能。 我没提框架, 一个个测累死人。我仅仅说 benchmarks 显示php比python性能好很多,w3tech 显示 php大概占了web的80%。你又究竟做过多少测试来比较php和python的各个web框架的优劣的。没有的话,少在这里bb把。不服拿出你的测试跟数据之类的来吧。有论点有数据有图有网址的你说是放嘴炮我也没办法了。

什么人都是。
欢迎python ruby java 等使用者友好礼貌的提出自己的见解。或者直接上数据、上测试 打我脸。程序员吗就是应该多交流,没数据没图没代码的,就不要乱放嘴炮骂人了。

分割线 2015-06-01 更
===============

有人要扯性能不是语言的事儿,因为纯php是很特殊的,不要框架可以跑的。甚至swoole不要web server也可以跑的。而ruby python java基本是要用框架才能跑。好,那这里贴一下框架的性能对比。

techempower.com/benchma

分数越高越好,我把各大语言我认识的 常用的web框架,标出来了。
大家也可以自己看看自己在用的框架在什么位置


看到没php-raw , 也就是纯php, 在很高的位置。在纯php之上的,除了纯java的servlet-raw, 其他我都不认识。注意php-raw 比 python django flask、ruby rails sinatra、go 、go revel 等等好多都要高,有的还高很多很多。


php上框架的话,国内惠新宸写的 yaf-raw 框架,也就是纯yaf框架,仅仅比 纯php慢一点大概 10%吧。还是比python、ruby、go等绝大多数框架要高、甚至高很多很多。几乎跟go相当。


看到没,php的流行,必然有很大的一方面就是性能很强的原因。配合简单、稳定、容易部署。why not php?


我还在百度实习的时候,百度用的比较普遍的一个php统一解决方案,核心就是ap框架。可以说 ap框架 约等于 yaf框架。几乎一模一样的。是鸟哥还在百度的时候,他们一起为百度的基础架构写了一个php c语言框架。


这么好的,大公司在很多产品线使用的、鸟哥维护的框架。还既开源又免费,大家还不去试试?


yaf的github :laruence/php-yaf · GitHub
yaf官网在这儿: Yaf - The fastest PHP framework
文档在这儿 : Yaf(Yet Another Framework)用户手册


而且以上评测是每把近两年的 php 后起之秀swoole算上去。swoole算上去,甚至会超过php-raw很多的。swoole内置了http serevr, 写socket、通信之类的 ,最合适的 。
swoole的 github: swoole/swoole-src · GitHub
swoole的官网 : Swoole: PHP的异步、并行、分布式扩展




@万齐飞 你要的框架测试来了,你自己去看。非要再说我放大炮我也没办法了。我了解的情况,上面都说了。

一周热门 更多>