卖桃者说
池建强
极客时间创始人、墨问西东创始人
30376 人已学习
免费领取
课程目录
已完结/共 523 讲
第一季 (135讲)
第二季 (134讲)
第三季 (124讲)
第四季 (90讲)
卖桃者说
15
15
1.0x
00:00/10:10
登录|注册

第86期 | 讨厌编程的PHP之父

讲述:池建强大小:9.31M时长:10:10
你好,这里是卖桃者说。
在程序员扎堆的地方,如果你要引起争论,只需要说,某某编程语言是最好的,就行了,肯定吵作一团。不过,如果说哪个语言是最具争议性的,那 PHP 肯定当仁不让。
年初的时候,Hired 网站发布了《2019 年软件开发者现状》报告,报告中 PHP“荣获”开发者最讨厌的编程语言的第一名,但与此同时,在 TIOBE、RedMonk 等各个编程语言排行榜中,PHP 的排名也从来没有掉出过前十。可见,PHP 就跟当红的明星一样,粉多黑也多,任你腥风血雨,我自岿然不动。
今天,我就跟你聊聊编程语言中的争议明星 PHP 的创造者,PHP 之父 Rasmus Lerdorf,为了方便,接下来我就都称呼他为勒多夫了。
勒多夫跟其他编程语言之父、系统之父不同,比如我之前在卖桃者说里跟你分享过的 Linux 之父林纳斯、Python 之父范罗苏姆等,对他们来讲,虽然创造语言或系统之初是为了解决某个问题,但他们本身对技术、对编程都有着超乎想象的兴趣和追求,甚至视之为快乐来源乃至人生信仰。但勒多夫不同,他在多次采访中都表示自己真心讨厌编程,写代码和写程序非常枯燥和无聊,也不理解有些人为什么会那么喜欢编程,对他来讲,解决问题才是最重要的,他真正享受的是解决问题后的成就感,而编程只是他解决问题的工具和手段。
我不是一个真正的程序员,我会把东西扔到一块儿,直到它能工作,然后就继续前进。真正的程序员会说,“是的,虽然它可以工作,但你泄露了内存,我们应该解决这个内存泄露问题。”而我,只会每隔 10 个请求就重新启动 Apache。
这是勒多夫在一次访谈中的回答,是不是听起来特别“PHP”。果然,有什么样的创造者就有什么样的编程语言,创始人的理念和气质会深深影响到语言本身。
勒多夫出生于丹麦格陵兰,在加拿大长大,1993 年毕业于滑铁卢大学,并获得系统设计工程学的学士学位。在学生时代,他并没有展露出他对编程的兴趣和天赋。毕业后,勒多夫在一家小公司做程序员,做一些开发工作,他和互联网的缘分,就是从那时开始的。
闲暇之余,勒多夫给自己写了一个个人网站,很自然的,他想对自己网站的流量、留言等信息进行统计和维护,但当时并没有很好的工具能提供类似的功能。程序员嘛,没有工具就自己创造工具,1994 年,勒多夫用 Perl 语言简单编写了一个程序软件,能用来统计网站的访问者,后来又用 C 语言重新编写了这个软件工具,添加了访问数据库的功能。
勒多夫越用越觉得这个工具好用,到了 1995 年,他以 Personal Home Page Tools (PHP Tools) 的名字对外发布了第一个版本的 PHP,直译过来就是“个人主页工具”。是的,PHP 并不是以一个编程语言的姿态诞生的,最开始,它只是一个工具,一个“用 C 写的小型紧凑的 CGI 可执行程序集合”,估计勒多夫自己都没想到他随意写的这个工具,会对之后的网络发展产生那么大的影响。
他曾在采访中说过:
最初我并没有想要创建一种新的语言,我只是需要一个方法来解决 Web 服务器中的已知问题,我不需要 Perl 中的那么多东西,也不想像 C 那样对所有内存进行管理,我需要的是一个精简版的 C,也不能很 Perl,可以很容易的嵌入到网页中。
无心插柳,PHP 1.0 提供的访客留言本、访客计数器等简单但实用的功能恰好戳中了当时网站开发者们的痛点,很快就流行了起来。越来越多的网站开始使用 PHP,并且强烈要求增加一些新的特性,比如循环语句、数组变量等。随后,在同一年(1995 年),PHP 2.0 发布,定名为 PHP/FI(Form Interpreter),加入了对 MySQL 的支持。这个功能大受好评,一下子建立了 PHP 在动态网页开发上的地位。
其实,PHP 的成功也有点时势造英雄的意思。PHP 1.0 和 2.0 两个版本都在 1995 年的上半年发布,而直到当年 8 月份 IE 1.0 才发布首个版本,到 11 月份,HTML 2.0 才正式发布,HTTP 1.0 也要到次年的五月份才出现。当时,NCSA HTTPd 是使用最广泛的网络服务器,而网景的 Navigator 则是最流行的网络浏览器。换句话说,PHP 的开端刚好撞上了浏览器战争的前夜。
到了 1996 年底,全球就有 15000 个网站使用 PHP 2.0,而到了 1997 年,使用 PHP 2.0 的网站数字已经超过了五万个。当时 PC 互联网起步不久,总共才多少网站,几乎一多半都使用了 PHP 来进行开发。1999 年中国的阿里巴巴成立,第一代淘宝网也是用 PHP 写的。
而接下来数十年,整个互联网都是 PC 端的天下,浏览器作为 PC 互联网的重要入口,地位举足轻重,全世界的网站数量急速扩张,而当时最好用的 Web 开发语言就是 PHP,PHP 的地盘也随之不断扩大,被更多的程序员接受。即便到今天,依旧有大量网站和 Web 服务是用 PHP 开发的,地位无可撼动。
到了 1997 年,两个以色列工程师 Zeev Suraski 和 Andi Gutmans 加入进来,和勒多夫一起组成了 PHP 的核心开发小组。Suraski(苏拉斯基)和 Gutmans(古特曼斯)重写了 PHP 的解析器,成为 PHP 3 的基础,PHP 也在这个时候正式改名为 PHP:Hypertext Preprocessor,洗去了原本的工具烙印,开始以语言的姿态发展。在这之后,PHP 的核心开发团队稳定了下来,和开源社区一起,推进着 PHP 的开发和迭代。
可以说,PHP 是一个在实践中不断迭代和完善的语言,立足于帮助程序员更快的解决问题,但这一发展模式,再加上本身是工具出身,语言设计就没有那么精巧,也缺乏一些前瞻性,造成了 PHP 的很多遗留问题,比如语法不够严谨、代码混乱、功能缺失、Bug 频出等等,常年被程序员们吐槽。
当然,设计时考虑得不够长远,很大程度上也源于勒多夫本身的理念,他通常只规划半年内的事情,也痛恨要帮未来考虑太多。在他看来,互联网变化太快,现在决定半年以后的事情,可能会做出错误的决策,反而让事情更糟。
如果你没有解决当下的问题,就去想象未来会发生的事情,这并不值得,我宁可解决眼前看得到的问题,真正聚焦在当下需要的产品上。
值得一提的是,在 1999 年,苏拉斯基和古特曼斯,也就是另外两个小组成员,成立了公司 Zend Technologies 来管理 PHP 的开发和商业化发展。勒多夫虽然依旧深度参与 PHP 的开发,但却并没有加入 Zend 公司,而是加入了雅虎担任架构师。正如他所说的:“相比对编程的追求,解决问题才是他的兴趣所在。”
勒多夫是一个典型的实用主义者,在他看来,程序不需要写得完美,而是要简单有效,这才是最重要也是最困难的事情。同时要根据不同的工作来选择不同的语言和工具,即使是 Web 开发者,尝试用 PHP 解决所有问题也是不科学的,还会浪费时间。所以,当 PHP 玩不转的时候,果断去尝试其他语言吧。
另外,勒多夫对于“快”的追求也是贯穿始终,他希望 PHP 的代码能够足够简单,同时在遇到问题时,不需要花费太多时间在写代码这个动作本身上,就能解决问题。而这恰恰是 PHP 吸引开发人员的一大法宝,为什么大家吐槽 PHP 吐槽得那么厉害,还是会选择它来开发程序呢,就是因为它写起来实在是太快了,真是唯快不破。所以,在需要快速开发的时候,PHP 就成了第一选择。
你用过 PHP 语言做过实际项目开发吗?你最喜欢和最常用的编程语言是什么?
好,今天的话题就先聊到这儿。卖桃者说,明天见。
(编辑:成敏) 
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • 云居麒
    世界上最好的语言
    10
  • lesserror
    Php给了我加入这个行业的机会,挺感激的!
    2
    7
  • itdream
    什么时候出个php的课程呢?
    2
  • 方勇(gopher)
    Php的生态发展比较慢,对异步支持的不够友好,对大并发,异步处理的工作付出的额外成本比较高,尤其公司起步的时候大量使用php,由于周边生态弱,会考虑迭代成java等,付出了巨大的代价。
    2
  • 网站初期,很适合php,
    2
  • 子瞻
    Linux+Mysql+Apache+Php
    1
  • 许童童
    PHP开发确实快, 我们公司的产品就是用PHP开发的,改一下代码就可以看到效果,当然,人员的质量就不行了,有些人接口写完了,连自测都不自测就直接扔给前端,不知道这样的PHPer还有多少?当数据量上来时,PHP就有点力不从心了,团队想换其它的语言,但以前的功能太多,太乱,已经迁移不了了。
    1
    1
  • 李洪亮
    最开始我使用的是Java开发Android手机应用,再后来我使用Vue开发前端网站,再后来深入火热的Python语言开发,过程中也由于兴趣开发过多个工具,网站,我决定开发是一份值得热爱的事情,热爱的事情就不能称之为工作了
  • 小斧
    语言太多了,这些语言的共性是什么呢?
  • 磉盘
    一直在用,PHP代码写的很溜,转其他语言还有机会吗?
收起评论
显示
设置
留言
14
收藏
55
沉浸
阅读
分享
手机端
快捷键
回顶部