是 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 相关文章推荐
关于PHP中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
php调用mysql存储过程
Feb 14 PHP
php mysql Errcode: 28 终极解决方法
Jul 01 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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设计模式中的工厂模式
2008/06/12 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
uploadify 3.0 详细使用说明
2012/06/18 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
python解析xml文件实例分享
2013/12/04 Python
利用Python开发实现简单的记事本
2016/11/15 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
Python实现全排列的打印
2018/08/18 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
Python3 assert断言实现原理解析
2020/03/02 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
什么是View State?
2013/01/27 面试题
员工廉洁自律承诺书
2014/05/26 职场文书
中班教师个人总结
2015/02/05 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python