PHP 该走向何方

来源:百度文库 编辑:神马文学网 时间:2024/04/27 14:50:37
PHP 该走向何方?

作者:Leonid Mamchenkov 来源:CSDN博客酷勤网收集 2008-07-27

摘要酷勤网  我不明白的是,为什么那些自称使用 PHP 和 MySQL ,至少开发过两个 web 项目的人,却不能用纸笔写出最简单的代码?为什么有数年 PHP 开发和团队领导经验的“高级 web 工程师”,面对没有 Dreamweaver 的开发环境时却一无是处?

在过去的六个月甚至更长的时间里,我至少在为三家公司寻找 PHP 开发者。我和一些程序员聊过,收到了一些反馈,甚至还面试了几个人,但是我却从来没有推荐过任何人。

在我解释之前,先别抨击我的要求太高。我并不是在寻找火箭科研人员,也不是找同样高端的开发者,我甚至都不打算找一个高级的 PHP 开发者。只要有足够的水平来维护 CakePHP 和 WordPress 这两个项目的人就够了,更何况,它们还是开源的。

我理解并不是每个人都使用过 CakePHP 和 WordPress来做开发。我也明白熟悉这些代码和通读相关文档都需要一些时间。更知道不是每个人都熟悉开源软件开发模型,不是每个人都在团队里工作过,所以,熟悉版本控制软件,文档编辑工具和 bug 跟踪等等都不在要求范围之内。

但是我不明白的是,为什么那些自称使用 PHP 和 MySQL ,至少开发过两个 web项目的人,却不能用纸笔写出最简单的代码?为什么有数年 PHP 开发和团队领导经验的“高级 web 工程师”,面对没有 Dreamweaver的开发环境时却一无是处?那些至少拥有一个计算机科学学士学位的开发者,却还在崇尚冒泡排序法?为什么程序员不再回答技术问题,反而开始向潜在的雇主讲述面试经历?为什么拥有数年团队合作经验的技术人员,在面试时哪怕是被问到最简单的技术问题,都会茫然不知所措?

如果你想知道上面这些问题的答案,这里正好有个例子。比如说,有个简单的问题:“stack (也称为 FILO ) 和 queue (也称为 pipe 或者 FIFO) 两者之间有什么不同?”答案就已经明显地隐藏在问题之中了,不是么?

这些自称有好几年开发工作和项目经验的应聘者,在面试时通常会遇到一些简单的程序问题。比如下面这个问题:“使用 PHP创建一个存储人物信息的列表,人物信息包括姓名、年龄和性别,向其中添加三个样本。然后按列表中的男性名字的字母序排出一个列表,如果不使用数据库会有额外加分。”每个应聘者只有一张纸,一支笔,和无限制的答题时间。但是在这六个月里,我还从没看过有人能手写代码解决这些问题。

我们通过所有的招聘网站、报纸、各地社区和职业介绍所来寻找应聘者,结果却是无一成功。现在我们只需要三个人,但是在不久的将来空缺将更多。

这就像塞浦路斯 (地中海东部一岛国,人口约82万) 上的人力资源状况一样,需求大于供给,但是仍然无济于事。所以我也希望你们了解我的感受。

想讨论塞浦路斯这个在科技领域里又小又不注目的国家,你们还是得等一等吧。去年我去了希腊博主露营会,今年我又去了阿姆斯特丹的下一代网络大会。在这两个大会上,我和来自欧洲和美国的朋友们都聊过。我也访问过各地的社区和招聘网站。我的感受是,这不仅仅是和塞浦路斯所面临的问题一样。当然,因为其地理原因和科技水平地位,塞浦路斯的情况确实是比其他地区要严重一些。

现在,我仍然在花费大量的时间来寻找 PHP 开发者,但是同时我也在思考这个问题的根源。PHP 看起来是种很流行的语言,但是为会在寻找一个好的 PHP 开发者时会遇到这样的问题呢?我得出这样一种理论,也许称其为一系列的假设和推测比较好。

PHP 是丑陋的语言

我本人认识一些优秀的开发者,我也读过更多优秀开发者的博客文章。尽管他们常常使用 PHP ,有些还把 PHP作为日常开发基础语言,但是我却从来不记得他们其中有任何人说过喜欢 PHP 语言。如果在新项目时有开发语言的选择的可能,他们会选择Java,C,Python,Perl,Ruby on Rails,Haskell等等,但就是不会选择 PHP 。PHP有它的优势,但是却不是一种漂亮和方便的开发语言。

PHP 是面向新手的语言

PHP 之所以如此流行,原因之一就是它是面向新手的语言,人们可以不需要任何编程基础就开始编写 PHP 应用程序。 大多数应用提供商会提供PHP 开发程序给你,而这些程序每个月的激活费不过是少之又少。你可以在任何文本编辑器里写 PHP 程序,所以你也不需要高性能的机器或是昂贵的IDE 。HPH.net开发网站上有所有你所需要的开发文档和实例,所以你也不必在学校苦学,更不必和开发者网站签订使用协议。对编程新手来说,所有这些都是让 PHP吸引力十足的原因。

PHP 回避了某些问题

大多数我认识的优秀程序都有一定的 PHP 水平,而那些差劲的程序也学习过一些 PHP。但是对于优秀程序员来说,PHP既不是他们的所在领域的第一位语言,也不是他们的发展方向。而我所知道的大部分差劲程序员,却只了解 PHP 这一种语言,而且他们并不精通PHP。所以,对于优秀程序员来说,学习和使用 PHP 不过是一时需求;而对于那些差劲者来说,使用 PHP 却是永久的习惯。

因为次要原因流行的 PHP

有很原因促成了 PHP 的流行:免费,开源,易于上手,等等。大多数应用提供商都提供可用的 PHP 开发包,而很多程序里就已经预置了 PHP。而 PHP 本身最大的特点,比如执行速率,资源要求,开发速度等等,却和其他很多语言没有多大差别。PHP不过是因为一些次要原因而流行起来罢了。

PHP 已经过时

PHP 起源于 Perl 中过时的 web 开发库,它已经发展和扩展成熟甚至过时,那些用 PHP 编写的项目也是如此。如果说以前大部分PHP 项目做的是的最简单的事情,比如连接注册表单,访问者计算和一些模板,那么,现在这些 PHP项目的处理能力已经在用户管理,金融操作,高实用性和平衡配置等需求上到达了瓶颈。

冲突

现在来说说 PHP 所面临的两难境地。PHP 应用的复杂程度越来越高,而 PHP却因为不够漂亮而吸引和保留不了优秀的程序员。结果呢?越来越多的应用是那些不够水平的开发者写的,于是,PHP也越来越难找到合格的开发者。(你自己的 PHP 项目也变得越来越复杂。)

问题?

我们怎样才能吸引优秀的开发者来做 PHP 开发?最大的原因就是不能找到合格的开发者,这个问题也困扰其他一些开发语言。其他的开发语言能解决这个问题吗?这个问题真的有解决之道吗?

出路

和别人一样,我也没有解决方法。但是,我却看好服务应用提供商,比如 Amazon 和 Google 。他们可能会在几个月甚至几年后才过时,但是到时又会有更多的服务商加入进来 (Yahoo,微软,或 IBM ?) 。

我认为提供应用服务的方式应该是这样的。首先,他们应该把程序员类为两类。第一类是新手程序员,他们既不知道也没有多少资源可以调配,他们要通过服务商的提供来使用服务,数据库,函数库和编程界面。(当然,优秀程序员也可以使用这些,但是他们另有选择,而不像新手一样。)提供的应用服务应该会方便地解决他们所不了解的东西,并且可以随时随时帮助他们。特别是像 PHP,已经这样做了数年了。而优秀程序员大多数都会参与到核心项目和专项开发中,他们则会需要更多的知识和经验。