是 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 相关文章推荐
Windows下的PHP5.0详解
Nov 18 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 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实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
jquery tools 系列 scrollable学习
2009/09/06 Javascript
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
python的几种开发工具介绍
2007/03/07 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
python+pyqt5编写md5生成器
2019/03/18 Python
python自动化之Ansible的安装教程
2019/06/13 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
EJB3.1都有哪些改进
2012/11/17 面试题
DELPHI面试题研发笔试试卷
2015/11/08 面试题
总经理助理职责
2014/02/04 职场文书
化工工艺设计求职信
2014/06/25 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
员工加薪申请报告
2015/05/15 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
2015年女工委工作总结
2015/07/27 职场文书