是 WordPress 让 PHP 更流行了 而不是框架


Posted in PHP onFebruary 03, 2016

是 WordPress 让 PHP 更流行了 而不是框架

Tiobe Index(编程语言世界排名指数),是一个显示各种编程语言的相对流行趋势的排名,开始于 2001 年,每个月更新一次。它将很多站点的搜索结果计算在内,以得到统计数据。这些站点包括:Google,Blogger,Wikipedia,YouTube,Baidu,Yahoo,Bing,Amazon 等。

PHP 在 Tiobe 上排名一直靠前,但最近它的排名更靠前了,2012 年是第7,现在是第5。人们可能将此归因为去年年底 Zend Framework 2 的发布,但并没有什么依据。

于是作者开始探究为什么 PHP 在 Tiobe 上的排名曲线突然上扬,真的是官方框架发布造成的么?下面是他的结论,我大致翻译如下。

一、WordPress 是最流行的 PHP 应用

作者用 Google Trends 去比较几个关键字的趋势,这些关键词是:WordPress,Joomla,Drupal,Magento,Zend Framework,它们的趋势走势图如封面所示。
介绍下它们。WordPress 是开源博客程序,Joomla 和 Drupal 都是开源内容管理发布系统,Magento 是开源的电子商务程序(国内似乎有家麦神电子商务把它汉化了在卖服务),Zend Framework 是官方开源的 PHP 框架。
最流行的是 WordPress,比其他应用都流行很多,垫底的是 Zend Framework。
其实这些关键词是作者认为最流行的关于 PHP 的词了,我觉得选这些词也是合适的。框架选一个做代表就行,而应用的流行程度差别很大,尽量选名气大的。我在这些词中把 PHP 也加进去,发现 WordPress 的流行程度都快接近 PHP 了,所以说,用“最流行的 PHP 应用”来描述 WordPress 没任何问题。

二、WordPress 自身比任何 PHP 框架要流行的多

这个结论细化了第一个结论。别以为只选了一个框架做比较,其实所有框架都差不多那个数量级。

三、WordPress 没有用第三方框架

为了补充第二个结论…

四、是应用让技术流行起来,而不是框架

趋势图上提到的 Magento 这个电子商务应用,是基于 Zend Framework 开发的,但它比框架流行。所以让应用流行起来的原因,并不是因为它使用了什么框架,而是它解决了用户的实际问题。
WordPress 也是同样道理,它对很多人都很有用。当人们要装个 WordPress 时,他们就知道了 PHP 这门技术,他们需要支持 PHP 的虚拟主机空间。这就促使了 PHP 的流行。

五、可扩展的 WordPress 插件生态

让 WordPress 流行的最重要原因之一就是它的插件系统。插件几乎能做任何事情,它们让 WordPress 成为一个平台,而不仅仅是一个应用。

六、很多非程序员因为 WordPress 开始开发 PHP

很多 WordPress 用户并不是程序员,但是因为找不到合适的插件、主题等,他们开始自己开发这些需求。

七、实用主义比理想主义好

软件项目,在技术上得是美丽的,得是一致的,得遵循良好的项目计划,得赞扬设计模式。
但上面这些真的没想象中的重要。很多应用被创建是基于一种很实际的感觉,它们只专注于解决现实世界的需要。
相对而言,很多 PHP 框架,它们似乎开发自另一个星球。它们常常由理想主义的人开发,更关注设计模式。

我的一点总结:

作者还是用确凿的证据证明了他的观点。而我,也从中看到一些要注意的地方:

1、过于注重技术。在开发岗位工作,注重技术是必须的。但是当自己做一个产品时,最应该关注的是解决现实世界的问题。
2、框架,解决的现实问题是,帮助普通开发者基于框架能更轻松快捷地开发应用。相对应用来说,面对的用户量肯定是少几个数量级的。
3、也许,针对某个流行应用提供解决方案或服务,就很有前途。当然,开发出解决现实世界问题的应用,更有前途。

PHP 相关文章推荐
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
php通过字符串调用函数示例
Mar 02 PHP
smarty内置函数capture用法分析
Jan 22 PHP
Laravel框架中实现使用阿里云ACE缓存服务
Feb 10 PHP
php实现的验证码文件类实例
Jun 18 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
yii2安装详细流程
May 23 PHP
composer.lock文件的作用
Feb 03 #PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 #PHP
PHP Cookei记录用户历史浏览信息的代码
Feb 03 #PHP
Symfony学习十分钟入门经典教程
Feb 03 #PHP
php开发时容易忘记的一些技术细节
Feb 03 #PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 #PHP
PHP实现的构造sql语句类实例
Feb 03 #PHP
You might like
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
javascript 模拟点击广告
2010/01/02 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
python文件读取失败怎么处理
2020/06/23 Python
如何用python免费看美剧
2020/08/11 Python
详解python内置模块urllib
2020/09/09 Python
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
数控技术与应用毕业生自荐信
2013/09/24 职场文书
出国留学计划书
2014/04/27 职场文书
市场营销工作计划书
2014/09/15 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL