Hacker News 中文摘要

RSS订阅

我依然热爱PHP与JavaScript(2022) -- I still love PHP and JavaScript (2022)

文章摘要

作者在20多年的编程生涯中使用过多种语言,但仍偏爱PHP和JavaScript。他认为这两种语言被那些能够快速迭代、理解业务需求并成功交付项目的人广泛使用。尽管它们并非以优雅著称,但其生态系统不断进化,工具和社区支持强大,部署简便,灵活性高,且拥有丰富的框架和平台。PHP的cgi-bin模型尤其让作者喜爱,因为它便于重构遗留代码。

文章总结

为什么我在20多年后依然热爱PHP和JavaScript

在过去的二十年里,我专业使用过十多种编程语言,从C到Common Lisp,从Java到Python,从C++到TypeScript。然而,我特别喜欢那些看似“粗糙”的编程语言,尤其是PHP和JavaScript。以下是我热爱它们的原因。

它们被那些真正做事的人使用

这使得找到那些理解业务需求、能够快速迭代、并且已经发布和维护过多个项目的人变得容易。

它们已经进化了很多

PHP8不再是过去的PHP3,ECMAScript 12也不再是早期的JavaScript。它们的生态系统也在不断发展。像CPAN、PECL、npm这样的工具对其他语言产生了显著的进化压力。JavaScript凭借其每天涌现的新范式和新框架,多年来一直是创新的温床。

它们的质量被其他因素所弥补

这些语言之所以流行,不是因为它们的优雅,而是因为其他原因,如速度、部署的便捷性、可塑性、工具、社区、框架和平台等。PHP的cgi-bin模型尤其让我喜爱,因为它允许逐步重构遗留代码库,不存在资源泄漏问题,缓存和扩展也更为简单。

它们很有趣

因为这些语言的基本领域存在问题,编程时总有一种实验的感觉。在一种不规定任何优雅代码的语言中找到编写优雅代码的方法,是一种乐趣。

它们是伟大的平衡器

因为它们非常宽容,允许各种水平和背景的人开始编程。你可以在几天内成为一个PHP初学者并建立一个真正的网站。我从复制粘贴BASIC代码片段开始,后来用PHP2和PHP3制作自己的网站,现在能够帮助新手,我感到自豪。

我从未在编写好代码时遇到问题

PHP、JavaScript、Lua、Perl都提供了有效的工具,如函数、变量、类、一等函数,有时还有特质和原型继承。好的软件是产品对齐、软件设计、命名和设计模式、通过静态分析或单元测试强制执行不变性、为开发者提供快速有效的反馈循环以及良好的团队沟通,这些都不依赖于语言。特别是JavaScript和PHP,它们有坚实的库、实用的静态分析工具和出色的IDE支持,事实上,它们的工具比许多“严肃”的编程语言更好。

我热爱遗留代码库

遗留代码库意味着产品表现良好。这意味着我通常可以立即做出有影响力的改进。对我来说,没有什么比改进一个拥有众多用户的产品更令人愉悦的了。

评论总结

评论内容主要围绕PHP的优缺点、使用体验及其与其他语言的比较展开,观点多样且平衡。以下是总结:

1. PHP的易用性与广泛支持

  • 观点:PHP因其易用性和广泛支持而受到认可,适合快速开发和部署。
  • 论据
    • "Its so easy to just get things done in php, even if its in an ugly way that you would never show to another developer."(kayaroberts)
    • "every server provider and their cousin support it"(pestatije)

2. PHP的现代化发展

  • 观点:PHP已从过去的“简陋”语言发展为现代化的编程语言,具备类型系统、工具链和包管理。
  • 论据
    • "It’s a modern language with types and tooling and package management."(ksenzee)
    • "PHP and JS have been my favorite languages since I first picked them up. I know they have a bad rap which was more deserved back when I started with them but, like the author points out, they have come a long way since then."(joshstrange)

3. PHP与其他语言的比较

  • 观点:PHP与JavaScript、Python等语言相比,各有优劣,开发者根据需求选择。
  • 论据
    • "That’s why I’m currently driving the astrojs lane. It feels like PHP but it’s JavaScript."(shreddit)
    • "To me PHP is just a weirder Python or Ruby. In some ways I like it more than Python."(Glyptodon)

4. PHP的部署与维护

  • 观点:PHP的部署简单,适合非技术用户,但可能存在安全隐患。
  • 论据
    • "The fact you can just upload the files with FTP, SSH, by pulling them from version control, etc makes learning so much easier than it’d be otherwise, and really speeds up deployment for software using these languages."(CM30)
    • "Is it secure? Probably not. Is it best practice? No. But you can test your changes near instantaneously, and it takes like 30 seconds to get set up."(CM30)

5. PHP的适用场景

  • 观点:PHP适合快速开发简单工具,尤其是不需要复杂维护的项目。
  • 论据
    • "I’m usually looking to make simple, quick, internal tools that just run without much maintenance or support. PHP has been perfect for this."(al_borland)
    • "I made lots of money developing enterprise PHP over the years and there were always jobs available, even in a bad economy."(billy99k)

6. PHP的缺点与挑战

  • 观点:PHP的配置复杂,部分开发者认为其存在“技能门槛”。
  • 论据
    • "But what I’ve never liked about it is the big ini file. I’ve always found PHP to have waaaay too many settings, many of which have potentially odd defaults and/or can be asinine footguns by accident."(Glyptodon)
    • "You hate PHP because you are not good enough to tame it."(goshx)

7. PHP的未来与开发者态度

  • 观点:部分开发者对PHP的态度从“厌恶”转为“接受”,认为其在特定场景下仍有价值。
  • 论据
    • "I can’t say I love PHP, but I no longer hate it. And given how much I used to hate it, that’s a massive improvement."(chuckadams)
    • "PHP powers 80% of all web sites in the world, still today! And it is the only language and runtime out there that is shared-nothing for web serving."(EGreg)

总结:PHP因其易用性、广泛支持和现代化发展,仍然在开发者中占有一席之地。尽管存在配置复杂和安全隐患等问题,但其在快速开发、简单工具和广泛部署场景中的优势使其持续受到青睐。开发者对PHP的态度逐渐从负面转向中立甚至积极,认为其在特定场景下仍有不可替代的价值。