本文详细探讨了 PHP 在互联网中的广泛应用和重要性。文章通过大量的数据和事实来证明 PHP 仍然是最受欢迎的编程语言之一,占据了 77.2% 的市场份额,远超其他编程语言。
原文链接:https://timotijhof.net/posts/2023/an-internet-of-php/
译者水平有限,不免存在遗漏或错误之处。如有疑问,敬请查阅原文。
以下是译文。
PHP 是个庞然大物。
尽管有人不断宣称 PHP “即将消亡”。
但无法改变的事实是:互联网依然大量依赖 PHP。本文将通过大量的数据和事实告诉你为何 PHP 仍然在统治着互联网,你大爷仍然还是你大爷。
统计数据
PHP 仍然是首选编程语言
根据 W3 Techs 对全球前 1000 万个网站使用的编程语言分析[1],我们可以看到:
- PHP 占比 77.2%
- ASP 占比 6.9%
- Ruby 占比 5.4%
基于 PHP 的内容管理框架
绝大多数公共网站都是通过 PHP 和 CMS 来构建的。根据市场份额,12 大 CMS 软件中有 8 个是用 PHP 编写的。下面的数据来自 W3 Techs 对前 1000 万个网站的 CMS 使用情况调查[2],每个百分点代表前 1000 万个网站中的 10 万网站。
- [PHP] WordPress 生态系统 (63%)
- [Ruby] Shopify
- Wix
- Squarespace
- [PHP] Joomla 生态系统 (3%)
- [PHP] Drupal 生态系统 (2%)
- [PHP] Adobe Magento (2%)
- [PHP] PrestaShop (1%)
- [Python] Google Blogger
- [PHP] Bitrix (1%)
- [PHP] OpenCart (1%)
- [PHP] TYPO3 (1%)
不得不说,Wordpress 在内容管理领域依然站有绝对的统治地位。
PHP 在电商领域的应用
根据 BuiltWith 2023 年 8 月对在线商店的报告[3],我们可以看到 PHP 在电商领域仍然占统治地位:
- 使用了 WooCommerce 插件[4]的 Wordpress 网站(全球市场份额 24%)
- Adobe Magento[5](全球市场份额 7%)
- OpenCart(全球市场份额 2%,俄罗斯市场份额[6] 24%)
- PrestaShop (全球市场份额 2%,法国市场份额[7] 14%)
- Shopware[8](全球市场份额 1%,德国市场份额[9] 12%)
趣闻轶事
Kinsta 发表了一篇文章[10],证明 PHP 仍然很快,仍然很活跃,仍然很流行:
❝早在 2011 年,人们就一直在宣称 PHP 已死。但事实是,PHP 7.3 的请求处理速度是 PHP 5.6 的 2-3 倍,而 PHP 8.1 则更快。正因为 PHP 的普及,我们可以很轻松地招聘到有经验的 PHP 开发者。
Vimeo 工程师 Matt Brown 在《这不是遗留代码,而是 PHP[11]》一文中表示:
❝PHP 从未停止创新。尽管我们计划将 500,000 行的 PHP 代码划分为多个 [服务],但最终这些建议都没有被采纳。 Vimeo 自 2004 年以来规模扩大了数倍,我们的 PHP 代码库也是如此。
Ars Technica 发布了一个包含历史数据的 W3 Techs 报告,证明 PHP 仍然遥遥领先[12]:
❝尽管 PHP 有许多臭名昭著的怪癖,但它似乎还能活很久。从 2010 年的 72.5% 市场份额增长到今天的 78.9% 市场份额,目前还没有任何明显的竞争对手能让 PHP 感到威胁。
在针对 Python 创始人 Guido van Rossum 的一个采访播客[13]中,Lex Fridman 如是说:
❝Lex: 目前互联网的大部分后端服务仍然是用 PHP 写的 Guido: 没错!
Daniel Stenberg 在其年度 Curl 用户调查[14](第 18 页)中统计了用户使用 curl 的方式。直接使用 curl 命令行的用户占比最高(78.4%),用户最熟悉的方式就是在 PHP 中使用 curl,自 2015 年调查开始以来一直都是这个结果。2023 年的调查报告显示有 19.6% 的用户在 PHP 中使用 curl。
❝curl (CLI) 78.4%, php-curl 19.6%, pycurl 13%, […], node-libcurl 4.1%.
Ember.js 虽然起源于 Ruby 社区,但作为一个前端框架,它可以与任何后端配合使用。Ember 的社区调查报告[15]显示,PHP 是受访者第三喜欢的选项,仅次于 Ruby 和 Java。
Ember 的调查还询问了一些通用的行业问题。例如,有 24% 的受访者表示他们的基础设施都是“自托管”,而不是依赖于主流的云服务提供商。虽然这项调查本身不能完全代表整个行业,但结果仍可能会让人大吃一惊,特别是对那些依赖社交媒体和会议演讲来了解商业现状的人来说更是如此。对于企业来说,现在准备好云退出战略[16](例如 NHS[17])比以往任何时候都更加重要。你可以阅读 Basecamp 的文章[18]了解云退出战略是如何为他们每年节省数百万美元的。
大规模 PHP 应用
上述统计数据衡量了不同网站和公司的数量,其中绝大多数是基于 PHP 构建的。但所有这些只告诉我们它们的规模在前 1000 万名之内。那前 500 名呢?
Jack Ellis 在《Laravel 能否扩展?[19]》这篇文章中指出,你不应该仅根据每秒可以处理的请求数量来做选择。大部分业务都不太可能达到那个水平,而且还会面临很多其他瓶颈。但事实证明,PHP 是可以扩展到这一水平的语言之一。
❝当看到我们的软件(基于 Laravel 构建的 Fathom Analytics)增长迅猛时,我们从未怀疑过“这个框架是否能够扩展?”。 我与多家企业合作过,他们利用 Laravel 支撑整个业务运营。像 Twitch、Disney、New York Times、WWE 和 Warner Bros 这样的公司也在他们的多个项目中使用 Laravel。Laravel 能够轻松应对大规模的应用需求。
Vimeo 工程师 Matt Brown 在《这不是遗留代码,而是 PHP[20]》一文中强调:
❝可以很明确地告诉你们,PHP 还是你大爷。Vimeo 在 PHP 方面的持续成功就是证明,在 2020 年它仍然是快速发展的公司的绝佳工具。
Vimeo 还以开发流行的 PHP 静态分析工具 Psalm[21] 而闻名。
Slack 公司首席架构师 Keith Adams 在《认真对待 PHP[22]》一文中提到:
❝Slack 服务端大部分应用逻辑都是由 PHP 来执行的。 相比于 PHP 的优势而言(通过故障隔离减少 bug 成本;安全并发;高吞吐量),PHP 存在的问题可以忽略不计。
我们再分析一下 W3 Techs 的报告[23],分析部分业务比较单一的公司的规模。规模最大的是 WordPress,它驱动着 Automattic 的 WordPress.com。每月有 200 亿次页面访问[24](Alexa 全球排名 55)。
如果我们继续往下看,来到占市场份额 0.1% 的条目,可以看到大量的网站都是靠 PHP 系统来支撑的,PHP 仍然是 10w 小网站的首选框架。
- #23 CMS: Moodle[25]
- #25 CMS: phpBB,例如 Google 的 Waze 社区[26], ApacheFriends 论坛,VideoLAN 论坛。
- #31 CMS: XenForo 论坛,例如 ArsTechnica.com[27] 和 MacRumors.com[28]。
- #33 CMS: Roundcube。
- #45 CMS: MediaWiki。
- #49 CMS: vBulletin 论坛。
- #53 CMS: IPS 社区 , 例如 MalwareBytes.com[29]、BleepingComputer[30] 和 Squarespace.com 论坛。
MediaWiki[31] 是维基百科背后的平台[32],每月有 250 亿的页面浏览量[33](Alexa 排名 12)。同时 MediaWiki 还驱动着 Fandom[34])(每月有 20 亿的页面浏览量[35],Similarweb 排名 44)和 WikiHow[36](每月有 1 亿访问者,Alexa 排名 215)。
除此之外还有一大批互联网公司由 PHP 驱动,例如 Facebook(Alexa 排名 7)、Etsy(Alexa 排名 66)、Vimeo(Alexa 排名 165)和 Slack(Similarweb 排名 362)。
Etsy 之所以引人关注,是因为它有高比例的活跃会话和动态内容。这与维基百科或 WordPress 不同,后者可以从静态缓存中提供大多数页面视图。这意味着尽管规模相似,但 Etsy 的 PHP 应用程序更容易受到高流量[37]的影响。
Etsy 也是 PHP 创始人 Rasmus Lerdorf[38] 的东家。他有时会在技术分享中展示 Etsy 的代码库片段。(极客旁注:他在 2021 年的现代 PHP 讲座[39]中解释了 Etsy 是如何使用 rsync 进行部署的,就像 Wikipedia 在过去 10 年使用 Scap[40] 一样)。Etsy 的官方博客偶尔会提到他们对模块化 PHP 单体的工作进展,例如 Plural 本地化[41]。有时也会放出详细的 Etsy 站点性能报告[42]:
❝很高兴地告诉大家,升级到 PHP7 之后,本季度整个网站的性能都得到了提高,所有页面的性能都有了显著的提升。
我的观点
大多数人认为,PHP 社区似乎在公共舆论中占据的空间不大。无论是 PHP 核心开发者 , 还是 PHP 软件包(例如 Laravel、Symfony、WordPress、Composer 和 PHPUnit)的作者,亦或是日常工作中使用 PHP 的普通工程师,我们很少在社交媒体上的争论中看到他们的身影。
你也很少看到我们在会议上做演讲,宣称某个技术栈“绝对会”为你的公司带来裨益。如果你听了某些 JavaScript 框架粉丝的演讲,你可能会认为大多数公司今天都在使用他们的技术栈。
我不是说 JavaScript 不好,而是某些人在没有考虑技术或商业需求的前提下给出了“xxx 最好”的断言。这是一种过度营销,你怎么知道它最好?你跟别的语言比较过了吗?
我也不是说 JavaScript 没有用武之地,我们要辩证地看待世间万物。你可以分享你的经验和成果,比如哪些行得通,哪些行不通。要持续探索、持续创新、持续分享,持续推动人类前进。这就是自由软件[43]的精神!
你可能看过《The Market for Lemons [44]》和《A Historical Reference of React Criticism[45]》这两篇文章,他们都指出了 JS 的问题。但是 ... React 仅占有 3% 的市场份额[46]。再加上其他的小框架(Vue、Angular、Svelte),这个数字才达到 5%。而基于 Node.js 的 Web 服务也仅占有 3% 的市场份额[47]。这是否意味着超过 90% 的人都错过了 PHP?
别忘了,这 5% 代表了 50 万个主要网站,这是一个巨大的数字。Node.js 有自己的优势(实时消息流)。但是,Node.js 也有其弱点(阻塞主线程[48])。另外要强调一点:市场份额并不能完全反映规模。你可能驱动着排名前 1% 的几个大型组织,也可能驱动着排名后 1% 的组织。或者像 WordPress 那样同时支撑排名前 1% 和其他 4000 万个网站。
结论
无论是老公司还是小公司,无论其规模大小,可能都没有使用我们在公共场所经常听到的技术栈。如果不考虑个人项目和烧钱的初创公司,其他公司的这个现象更为明显。
对于正在成长和持续经营的企业来说,PHP 是否能够成为企业首选的前三名语言?当一个企业和其团队在扩大规模时,编程语言是否完全不重要?我们不得而知。
我只知道如今有许多企业都在使用 PHP,而 PHP 已被证明是一种可持续的选择,它经受住了时间的考验。例如,像 Fathom 这样的新公司,在短短三年内就实现了盈利[49]。正如 Fathom 的文章所说,大部分公司的业务永远达不到那种规模。不过话又说回来,即使面对大规模的业务,PHP 仍然是一种经济可持续的选择。
那么问题来了,PHP 是唯一的选择吗?当然不是。
有的语言速度更快(Rust),有的语言社区规模更大(Node.js),或者编译器更成熟(Java),但这往往会牺牲其他价值。
PHP 达到了某种柔中取刚的平衡点。它速度很快,社区规模较大[50],语法现代化[51],开发活跃[52],易于学习,易于扩展,并且拥有一个庞大的标准库。它可以在大规模场景下提供高效和安全的并发,而又没有异步复杂性或阻塞主线程的问题。由于平台稳定,加上社区重视兼容性和低依赖性[53],它的维护成本往往较低。
当然,每个人的需求不尽相同,但想要达到上述的这种平衡点,PHP 是少数几个能满足需求的软语言之一。除此之外还有哪个语言可以做到?
引用链接
[1] W3 Techs 对全球前 1000 万个网站使用的编程语言分析: https://w3techs.com/technologies/overview/programming_language
[2] W3 Techs 对前 1000 万个网站的 CMS 使用情况调查: https://w3techs.com/technologies/overview/content_management
[3] BuiltWith 2023 年 8 月对在线商店的报告: https://trends.builtwith.com/shop
[4] WooCommerce 插件: https://en.wikipedia.org/wiki/WooCommerce
[5] Adobe Magento: https://en.wikipedia.org/wiki/Magento
[6] 俄罗斯市场份额: https://trends.builtwith.com/shop/country/Russia
[7] 法国市场份额: https://trends.builtwith.com/shop/country/France
[8] Shopware: https://en.wikipedia.org/wiki/Shopware
[9] 德国市场份额: https://www.ehi.org/presse/e-commerce-2021-zeit-des-wachstums/
[10] Kinsta 发表了一篇文章: https://kinsta.com/blog/is-php-dead/
[11] 这不是遗留代码,而是 PHP: https://medium.com/vimeo-engineering-blog/its-not-legacy-code-it-s-php-1f0ee0462580
[12] PHP 仍然遥遥领先: https://arstechnica.com/gadgets/2021/09/php-maintains-an-enormous-lead-in-server-side-programming-languages/
[13] 针对 Python 创始人 Guido van Rossum 的一个采访播客: https://lexfridman.com/guido-van-rossum-2
[14] 年度 Curl 用户调查: https://daniel.haxx.se/blog/2023/06/17/curl-user-survey-2023-analysis/
[15] Ember 的社区调查报告: https://emberjs.com/survey/2022/
[16] 云退出战略: https://www.infoworld.com/article/3211374/public-cloud-consolidation-requires-an-exit-plan-even-from-the-big-guys.html
[17] NHS: https://digital.nhs.uk/services/cloud-centre-of-excellence/strategy/nhs-cloud-exit-strategy
[18] Basecamp 的文章: https://world.hey.com/dhh/we-have-left-the-cloud-251760fb
[19] Laravel 能否扩展?: https://usefathom.com/blog/does-laravel-scale
[20] 这不是遗留代码,而是 PHP: https://medium.com/vimeo-engineering-blog/its-not-legacy-code-it-s-php-1f0ee0462580
[21] Psalm: https://psalm.dev/
[22] 认真对待 PHP: https://slack.engineering/taking-php-seriously/
[23] W3 Techs 的报告: https://w3techs.com/technologies/overview/content_management
[24] 每月有 200 亿次页面访问: https://wordpress.com/activity/
[25] Moodle: https://en.wikipedia.org/wiki/Moodle
[26] Waze 社区: https://www.waze.com/forum/
[27] ArsTechnica.com: https://arstechnica.com/civis/
[28] MacRumors.com: https://forums.macrumors.com/
[29] MalwareBytes.com: https://forums.malwarebytes.com/
[30] BleepingComputer: https://en.wikipedia.org/wiki/Bleeping_Computer
[31] MediaWiki: https://en.wikipedia.org/wiki/MediaWiki
[32] 维基百科背后的平台: https://wikitech.wikimedia.org/wiki/MediaWiki_at_WMF
[33] 250 亿的页面浏览量: https://stats.wikimedia.org/
[34] Fandom: https://en.wikipedia.org/wiki/Fandom
[35]
20 亿的页面浏览量: https://about.fandom.com/news/fandoms-2021-state-of-fandom-study-identifies-pandemic-era-consumer-behavior-trends-in-entertainment-gaming
[36] WikiHow: https://en.wikipedia.org/wiki/WikiHow
[37] 高流量: https://www.etsy.com/codeascraft/how-etsy-prepared-for-historic-volumes-of-holiday-traffic-in-2020/
[38] Rasmus Lerdorf: https://en.wikipedia.org/wiki/Rasmus_Lerdorf
[39] 2021 年的现代 PHP 讲座: https://www.youtube.com/watch?v=Hc4S74LCXHo&t=1620s
[40] Scap: https://wikitech.wikimedia.org/w/index.php?title=Scap&oldid=2007017
[41] Plural 本地化: https://www.etsy.com/uk/codeascraft/plurals-at-etsy
[42] Etsy 站点性能报告: https://www.etsy.com/uk/codeascraft/q1-2016-site-performance-report
[43] 自由软件: https://en.wikipedia.org/wiki/Free_software_movement
[44] The Market for Lemons : https://infrequently.org/2023/02/the-market-for-lemons/
[45] A Historical Reference of React Criticism: https://www.zachleat.com/web/react-criticism/
[46] React 仅占有 3% 的市场份额: https://w3techs.com/technologies/overview/javascript_library
[47] 3% 的市场份额: https://w3techs.com/technologies/overview/web_server
[48] 阻塞主线程: https://www.langton.cloud/misconception-on-cpu-node-js-vs-php-blocking-web-requests/
[49] 实现了盈利: https://usefathom.com/blog/spending-money
[50] 社区规模较大: https://packagist.org/statistics
[51] 语法现代化: https://stitcher.io/blog/evolution-of-a-php-object
[52] 开发活跃: https://wiki.php.net/RFC#implemented
[53] 低依赖性: https://blog.jim-nielsen.com/2023/software-crisis-dependencies/