Hacker News 中文摘要

RSS订阅

编程界的丰田卡罗拉 -- The Toyota Corolla of programming

文章摘要

1995年,一位不知名的开发者发布了一种新脚本语言,旨在为“万维网”开发应用。该语言经历了初期的坎坷,1997年标准化后逐渐成为最广泛使用的编程语言之一。尽管长期被“严肃”程序员嘲笑其语法、运行时模型和安全问题,该语言及其社区仍坚持发展,并获得了大科技公司的支持。如今,该语言迎来30周年,其未来演进受到Go语言的启发。这段描述不仅适用于PHP,也适用于另一种语言。

文章总结

标题:编程界的丰田卡罗拉

1995年,一位名不见经传的软件开发者发布了一种新的脚本语言,旨在为当时新兴的“万维网”平台开发应用程序。经过初期的摸索,这种语言在互联网泡沫的推动下迅速崛起,成为有史以来最广泛使用的编程语言之一。尽管最初的设计存在诸多问题,并在1997年勉强实现了某种程度的标准化,甚至为了迎合社区和专家,加入了面向对象编程(OOP)的特性。

然而,无论它如何努力,这种语言及其用户几十年来一直受到所谓“严肃”程序员的嘲笑,批评其“令人困惑”的语法、运行时模型的怪癖、日益增多的安全问题,以及围绕它涌现的无数框架。尽管如此,这种语言及其社区依然顽强生存,并在大科技公司的支持下迎来了第二春。如今,随着这种语言迎来30周年,一个新的项目正在推动其未来发展,得益于Go编程语言的优势。

有趣的是,上述描述不仅适用于一种编程语言,而是两种:PHP和JavaScript。PHP由Rasmus Lerdorf于1995年6月发布,而JavaScript则由Brendan Eich设计,并于同年12月由Netscape发布。两者在1997年都实现了某种程度的标准化,并在2010年代分别获得了Facebook、Google和微软的支持。2025年,两者都基于Go语言进行了重大革新,PHP推出了名为FrankenPHP的新运行时,而JavaScript则推出了TypeScript编译器。

PHP和JavaScript代表了Web编程的两面:服务器端和客户端。尽管它们的设计存在缺陷,且经历了缓慢的委员会式演进,以及层出不穷的安全漏洞,但万维网的发展使它们成为了行业的重要力量。

PHP常被嘲笑为“糟糕设计的典范”,但它却是廉价网络托管服务的首选语言,堪称编程界的“丰田卡罗拉”:平凡、可靠、易用且经济实惠。全球几乎任何地方都能找到提供LAMP(Linux、Apache、MySQL、PHP)堆栈的廉价托管服务,这使得大众能够轻松构建网站。

如今,PHP已经具备了许多现代编程语言的特性,如开源、高级OOP特性、函数式编程构造、类型检查系统等。它还拥有强大的包管理器、优秀的单元测试支持,以及快速的编译和执行速度。尽管它仍然存在一些令人诟病的设计,如goto操作符和以美元符号开头的变量,但PHP在过去十年中经历了重大且稳定的改进,包括每年11月的稳定发布节奏,以及持续修复安全漏洞的团队。

PHP的社区也在健康发展,PHP基金会正在推动其标准向未来发展。尽管PHP在TIOBE、IEEE和PYPL等语言排名中有所下滑,但在RedMonk排名中仍位居第四,显示出其影响力并未完全消失。

PHP的历史发展与其引擎密切相关。Zend引擎曾是PHP的参考点,但随着DevOps、容器和Kubernetes的兴起,它已无法优雅地适应新时代的需求。幸运的是,FrankenPHP项目的出现为PHP带来了新的希望,它不仅简化了容器的创建,还提供了新的执行模型,同时与现有代码库完全兼容。

尽管PHP仍将因其卑微的起源而受到嘲笑,但它已经证明了自己的价值。正如Rasmus Lerdorf所说,PHP的成功在于他放弃了对其的控制,使其成为了社区的共同项目。这种开放的态度使PHP得以持续发展,并在编程世界中占据一席之地。

评论总结

评论内容主要围绕PHP的优缺点、与其他编程语言的比较以及其在现代开发中的适用性展开。以下是总结:

  1. PHP的优缺点

    • 优点:PHP易于部署,适合快速开发,尤其是在早期Web开发中表现出色。评论3提到:“PHP是第一个开源的、基本胜任的Web开发语言,使其成为2001年我的首选。” 评论18也指出:“PHP做得好的唯一原因是它真的非常容易部署。”
    • 缺点:PHP的设计被认为不够优雅,存在稳定性问题,且不适合大型项目。评论2提到:“PHP在点版本中包含破坏性更改,这是一种荒谬的维护策略。” 评论17则形容PHP为“一个奇怪的多功能螺丝刀”,虽然能用,但不够理想。
  2. 与其他语言的比较

    • Java:评论9认为Java更像“卡罗拉”,设计平淡但可靠,而PHP则像“现代伊兰特”,曾经被嘲笑,但近年来有所改进。评论14提到Hack(PHP的变种)逐渐接近Java,增加了静态类型和泛型等特性。
    • Python:评论19认为Python或Java更像是“卡罗拉”,设计良好且稳定,而PHP则设计不佳。
  3. PHP在现代开发中的适用性

    • 适用性:部分评论认为PHP仍然有其用武之地,尤其是在小型项目或遗留系统中。评论7表示:“PHP是我的首选后端语言,尽管我不喜欢它,但它仍然会在未来50年作为主要后端语言存在。”
    • 不适用性:许多评论认为PHP不适合现代绿色项目,尤其是在有其他更现代语言选择的情况下。评论10指出:“作者没有为2025年启动绿色项目提供充分的理由。” 评论20也表示:“如果有选择,我永远不会选择PHP作为绿色项目。”
  4. PHP的历史与未来

    • 历史:PHP在早期Web开发中占据重要地位,但随着其他语言的崛起,其地位逐渐下降。评论3提到:“PHP很快变得过时,因为人们意识到要构建高质量的Web应用程序,需要引入路由器和模板系统。”
    • 未来:尽管PHP有所改进,但其未来仍存在争议。评论7认为PHP会长期存在,而评论22则直言:“PHP必须死。”

总结:PHP在早期Web开发中因其易用性和低成本而流行,但其设计问题和稳定性限制了其在现代开发中的适用性。尽管有所改进,许多开发者认为PHP不再适合现代绿色项目,尤其是在有其他更现代语言选择的情况下。