Wikimedia 基金会首席工程师 Timo Tijhof 发表文章《An Internet of PHP》,探讨了 PHP 在互联网中的广泛应用和重要性。
下面是文章整理的部分数据。
-
PHP 仍然是首选编程语言
根据 W3 Techs 对全球前 1000 万个网站使用的编程语言分析(截至 2023.8):
-
PHP 占比 77.2%
-
ASP 占比 6.9%
-
Ruby 占比 5.4%
-
基于 PHP 的内容管理框架
绝大多数公开网站都是使用基于 PHP 的 CMS 进行构建。根据市场份额,12 大 CMS 软件中有 8 个 采用 PHP 编写。
下面的数据来自 W3 Techs 对前 1000 万个网站的 CMS 使用情况调查,每个百分点代表前 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%)
不得不说,PHP 事实上已等同于 CMS。
-
PHP 在电子商务领域的应用
根据 BuiltWith 2023 年 8 月对在线商店的报告,可以看到 PHP 在电商领域仍然占统治地位:
-
使用了 WooCommerce 插件的 Wordpress 网站(全球市场份额 24%)
-
Adobe Magento(全球市场份额 7%)
-
OpenCart(全球市场份额 2%,俄罗斯市场份额 24%)
-
PrestaShop (全球市场份额 2%,法国市场份额 14%)
-
Shopware(全球市场份额 1%,德国市场份额 12%)
-
PHP 在大规模场景的应用
Slack 公司首席架构师 Keith Adams 表示,Slack 大部分服务器端的应用程序逻辑采用 PHP 编写。相对于 PHP 的优势(通过故障隔离降低错误成本;安全并发;以及高吞吐量),其存在的问题可以忽略不计。
Vimeo 工程师表示,Vimeo 在 PHP 方面的持续成功证明它对于 2020 年快速发展的公司来说是一个很棒的工具。
我们再分析一下 W3 Techs 的报告,看看部分业务比较单一的公司的规模。规模最大的是 WordPress,它驱动着 Automattic 的 WordPress.com。每月有 200 亿 PV(Alexa 全球排名 55)。
再进一步了解,看看占市场份额 0.1% 的条目,可以看到大量网站都是靠 PHP 系统来支撑的,PHP 仍然是超过 10 万小网站的首选框架。
-
#23 CMS:Moodle
-
#25 CMS: phpBB,例如 Google 的 Waze 社区、ApacheFriends 论坛、VideoLAN 论坛
-
#31 CMS: XenForo 论坛,例如 ArsTechnica.com 和 MacRumors.com
-
#33 CMS: Roundcube
-
#45 CMS: MediaWiki
-
#49 CMS: vBulletin 论坛
-
#53 CMS: IPS 社区 , 例如 MalwareBytes.com、BleepingComputer 和 Squarespace.com 论坛
MediaWiki 是维基百科背后的平台,每月有 250 亿 PV(Alexa 排名 12)。同时 MediaWiki 还驱动着 Fandom(每月有20 亿 PV,Similarweb 排名 44)和 WikiHow(每月有 1 亿访问者,Alexa 排名 215)。
除此之外还有一大批互联网公司采用 PHP 技术栈,例如 Facebook(Alexa 排名 7)、Etsy(Alexa 排名 66)、Vimeo(Alexa 排名 165)和 Slack(Similarweb 排名 362)。
详细内容查看:https://timotijhof.net/posts/2023/an-internet-of-php/
灵活性排序,Java <<<< Python < PHP ~= Js < Perl < Ruby <<<< Haskell,Java这种呆板语言,很适合一个大规模团队整体协作,比如阿里这种团队,里面菜鸟高手混杂,最终高手被拉到和菜鸟一个水平,
因为没有灵活性,没有发货的余地,到处都是类套类,一层层套下去,无限冗余的来完成一个PHP只需要一两个人就可以完成的项目,极大的提升了就业率,所以越庞大的团队越喜欢Java,混在里面,写一辈子,也没人看得出水平高低,
PHP就不同了,一个菜鸟的PHP代码,立刻会被老鸟看出来,被踢出去,到Java里安静的混日子,动弹还在的时候,有人发了过一个java代码,涉及到两次排序,竟然是先用Java的Sort排完,然后循环来一个冒泡排序,但凡写过PHP和JS都知道,usort、sort回调函数可以一次完成多重排序,Java的呆板禁锢了思维
- `php`的动态语言特性造成经常`IDE`不能很好的跳转源码位置。
- 语言本身不支持调试,需要用插件,上`Apache`。 比如我想测试一个方法。
- 对某个文件进行单元测试麻烦。
- 变量命名很乱。 动态语言团队开发就是噩梦,比如突然从某个变量里访问某个`key`,都不知道这个`key`哪里来的,`IDE`支持不好的话得全部搜索一遍。
- 想要运行时进入第三方库并调试,难。
- 性能如果纯`php`并不高,有谁会经常写`C`扩展?
- 如果想用线程,比如非实时定时任务,邮件发送,数据统计等。本身标准库不支持线程。
- 除了做网站方便点其他程序开发难做。比如想做个分析`Excel`的命令行小工具,不能打包为`exe`并发给别人用。
都是学语言,其他语言比如`java`,`go`还能做非网站程序,有的选学PHP干嘛?当然目前网站部署成本`php`最低,也支持热部署这个目前静态语言还超越不了。如果要学动态语言,用`javascript`开发网站后端也不错啊,还能把经验用在开发前端网页上。
2. 语言本身不支持调试,需要用插件,上`Apache`。 比如我想测试一个方法。------用插件很难吗?想我Java全是插件.
3. 对某个文件进行单元测试麻烦------写测试用例,运行就行了,不知道你说的麻烦是什么情况
4. 变量命名很乱。 动态语言团队开发就是噩梦,比如突然从某个变量里访问某个`key`,都不知道这个`key`哪里来的,`IDE`支持不好的话得全部搜索一遍。------变量名乱这个是有这个问题, 都是历史遗留问题. php7.4以上都是推荐静态类型的, 现在已经php8.3, 不知道你这个说法,是不是还在说php5?
5. 性能如果纯`php`并不高,有谁会经常写`C`扩展?------性能完全不是问题, 不要永通tp或者Laravel这种请求一次编译一次的框架,要对标C常驻内存运行方式,同等标准才有比较意义, 整体性能比C慢几倍.
6. 想要运行时进入第三方库并调试,难------所有语言都一样, 只是你愿不愿一步一步看第三方库.
7. 如果想用线程,比如非实时定时任务,邮件发送,数据统计等。本身标准库不支持线程。------线程使用很少,生态不好, 但可以使用协程
8. 除了做网站方便点其他程序开发难做。比如想做个分析`Excel`的命令行小工具,不能打包为`exe`并发给别人用------这个用Python最方便.