写点什么

为什么在 20 多年后,我仍然爱着 PHP 和 JavaScript

  • 2022-08-19
    北京
  • 本文字数:1868 字

    阅读完需:约 6 分钟

为什么在 20 多年后,我仍然爱着 PHP 和 JavaScript

二十多年过去了,仍然有很多人对 PHP 和 JavaScript 情有独钟。


在过去的二十年间,从 C 到 Common Lisp,从 Java 到 Python,从 C++ 到 TypeScript,我在工作中用过十多种编程语言,但我却偏偏对那些质量堪忧的语言情有独钟。


为什么说质量堪忧?因为 PHP 和 JavaScript 让人诟病的地方确实不少:PHP 是一门类型松散的语言,所以经常孕育出糟糕的代码, JavaScript 和 Node.js 也基本是这样。


即便这样,我也依然很喜欢用 PHP 和 JavaScript 来编程

Python 很好,但 PHP 确实更容易使用


PHP 诞生于上世纪九十年代中期,岁数甚至比很多程序员还大。我是从 2000 年初开始接触 PHP 的,当时它刚刚从版本 4 过渡到版本 5。后来,我开始在自己编写的 CodeIgniter ZendFramework 框架中编写应用程序。


在我看来,PHP 之所以能够保持长青、多年过去仍无衰老迹象,主要原因就是它被嵌入到了全球各地的新旧应用程序当中、也被嵌入不分老少的开发者头脑当中。有些人用过几年,也有些人用了几十年,PHP 都在他们心中留下了深刻印象。开发者不会消失、编写出的商业代码也没有消失,所以 PHP 依旧健在。而且有趣的是,Python 其实诞生于 1991 年,比 PHP 还要早。而且虽然生命周期更长,但 Python 一直没能达到 PHP 目前的高度。


为什么会这样?


从个人观点出发,我觉得跟 PHP 相比,Python 使用起来要更麻烦。这个问题在 Python 3 中有所改善,但退回 15 年前,Python 还没有 PHP 中开箱即用的那些“花哨功能”(函数)。很多功能必须手动安装,否则就没得用。


而且长期贯穿 Python 语言的另一个老大难问题,就是其中的间隔语法。这种由代码间的空格数决定分隔关系的语法让很多人望而生厌。很多程序员喜欢按自己喜欢的方式分隔代码,而且完全受不了编程语言本身在这里动脑筋,而在这点上,PHP 就做得很好。

PHP 和 JavaScript 哪些方面让人着迷?

此外,PHP 和 JavaScript 还有更多让人着迷的地方,具体包括以下几个方面。

真正干实事的人在用


怎样理解 PHP 和 JavaScript 对真正干实事的人大有用处?也就是说,对于那些能理解商业需求、快速迭代,并有大量开发维护项目经验的人来说,PHP 和 JavaScript 这两种语言可谓是必需品

多年的发展让它们和自己的生态一同成长


PHP 8 可不是你太奶奶用过的 PHP3,而 ECMAScript 12 也不是你太爷爷写过的 JavaScript。这些老古董们所依赖的生态系统可没有原地踏步。像是 CPAN、PECL、npm 这类的工具让其他语言的发展卷了起来。JavaScript 一直以来都是创新的温床,带动了新范式和框架的层出不穷。

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


这类“质量堪忧”的编程语言当初可并不是因为它们的优雅而出名的。它们更可能是在速度、部署难度、可延展性、工具、开发社群、框架,或者平台等方面更胜其他竞争者一筹。


我更偏爱 PHP 则是因为它的 CGI-bin 模式,它允许分块重构遗留代码库,还提供了简单易用的缓存和扩展方式,而且,开发者也完全不需要担心资源泄露。

更有趣


这些语言即使是在一些基本问题上都能出状况,这也就意味着用它们编程总会带给人们做实验的感觉。能够用并不优雅的语言写出优雅的代码总会让人享受到成功的满足感。

在这些语言面前众程序员人人平等


这些语言对程序员们的背景要求并不严格,即使是一无所知的小白都能在几天内让一个真正的网站跑起来。我当年就是一路从复制粘贴基础代码段一路成长到用 PHP2 和 PHP3 写出完全属于我自己的网站,而现在的我也能够用我积累的经验回报社群,帮助那些刚入门的初学者们,这一点让我感到非常自豪。

对十二岁小孩或刚从代码新兵训练营中毕业的年轻人所写的程序代码不屑一顾,这种自大并不可取。正是因为这些用户拥有多种教育背景,才让不甚完美的编程语言拥有了更友善、更活跃的社群环境。

没有什么能阻挡你写出好代码


无论是 PHP、JavaScript 还是 Perl,这些语言都提供了函数、变量、类、头等函数等行之有效的工具,有的还额外提供了 trait 和原型式继承。而一个优秀的软件则需要有产品定位、软件设计、命名和设计模式,通过在静态分析或单元测试中强化不变性,为开发者们提供快捷有效的反馈循环,以及一个良好的团队交流环境。这些要素可完全不依赖任何的编程语言。对于 JavaScript 和 PHP 来说,它们提供了可靠的库、实用的静态分析工具,以及出色的 IDE 支持,你甚至会发现,它们在工具方面比许多更“优质”的编程语言还要强大。

我爱遗留代码库


遗留代码库意味着产品性能的有保障,也意味着我能在其上做出更即时且有效的优化改进。对于我来说,再没有什么事情比和其他用户一起优化一款产品更美好了。


原文链接:https://the.scapegoat.dev/why-i-love-php-and-javascript/

2022-08-19 16:024592
用户头像
李冬梅 加V:busulishang4668

发布了 1227 篇内容, 共 842.8 次阅读, 收获喜欢 1320 次。

关注

评论

发布
暂无评论
发现更多内容

InterDigital收购AI初创公司Deep Render

财见

为什么别人用 DevPod 秒启 DeepSeek-OCR,你还在装环境?

阿里巴巴云原生

阿里云 AI 云原生 DeepSeek

【隐语SecretFlow】由蚂蚁集团牵头制定的“隐私保护计算安全分级”IEEE国际标准已正式发布!

隐语SecretFlow

标准化 隐私保护 IEEE

过程管理系统

深圳亥时科技

e&在2025年第三季度继续保持强劲增长,合并营收增长29.2% ,达186亿迪拉姆

财见

【淘宝店铺商品API】一键获取全店商品数据 | 分页查询+实时更新

Datafox(数据狐)

淘宝整店商品数据接口 淘宝API 淘宝店铺所有商品API 天猫店铺商品API

CNCC2025回顾|网易伏羲主题分论坛圆满落幕,产学研共探智能体技术跃迁路径

网易伏羲

网易伏羲 游戏AI 具身智能 群体智能 网易雷火

NineData社区版 V4.6.0 正式发布!SQL 窗口新增4个数据源,新增支持OceanBase等多条数据复制和对比链路

NineData

数据库管理工具 数据迁移工具 NineData 社区版 V4.6.0 数据库 DevOps

算清这笔账,绿电直连成本立降!详解过网费收取规则

西格电力

数字电网 新能源产业 电力交易 绿电直连 可再生能源发电

万界星空产线MES实施案例:精益数字化车间的构建与实践

万界星空科技

mes 万界星空科技mes 数字化车间 制造业转型 产线mes

从曝光到销量:海外达人营销如何助力品牌实现长期增长?

Wolink

跨境电商 出海服务商 海外社媒营销 海外营销推广 达人营销

AI驱动的测试:用Dify工作流实现智能缺陷分析与分类

测试人

软件测试

Mobileye发布2025财年第三季度财报及业务概览

财见

双举并进,TÜV南德获授"中德智能制造技术创新中心"称号,工业安全AI白皮书同期发布

财见

2026成都电子展|中国西部(成都)电子信息博览会

AIOTE智博会

电子展 电子信息展 电博会 成都电子展 西部电子展

Vista将对Nexthink进行多数股权投资

财见

Netcore Cloud通过CMMI 3级评估

财见

霍尼韦尔公布2025年第三季度业绩并上调全年指导范围

财见

海外达人营销平台哪家强?五大主流平台深度对比与选型建议

Wolink

海外社媒营销 海外营销推广 品牌出海 达人营销

中国3850亿美元餐饮服务业逆势增长,下线城市和饮品创新驱动新增长

财见

网易工程机械论文入选IROS 2025,中国团队携工程机械机器人技术亮相全球顶会

网易伏羲

网易伏羲 游戏AI 具身智能 无人挖掘机 #网易灵动

Android开发中常用高效数据结构

秃头小帅oi

告别 “盲买”!京东 AI 试穿 Oxygen Tryon:让服饰购物从“想象”到“所见即所得”

京东零售技术

软通动力2025年三季报 | 全栈智能激活软硬协同,营收净利双增彰显发展质效

财见

中国企业如何在全球不确定下进行出海战略决策?

Wolink

跨境电商 出海 出海企业 品牌出海

跨境必备:海外网红营销服务公司TOP5

Wolink

跨境电商 出海服务商 海外社媒营销 海外营销推广 品牌出海

如何一句话证明你懂项目管理或当过项目经理?

禅道项目管理

项目管理 禅道 软件项目管理

CTI华测检测全资收购南非Safety SA及Nosa China, 构建全球食安及HSEQ服务新格局

财见

告别资源浪费!超融合架构下,如何智能调度让每台虚拟机都“跑得更快”?

智驱前线

天润融通重磅白皮书发布,找到属于你企业的AI生产力飞轮!

天润融通

为什么在 20 多年后,我仍然爱着 PHP 和 JavaScript_文化 & 方法_mmlmml_InfoQ精选文章