HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

为什么在 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:024167
用户头像
李冬梅 加V:busulishang4668

发布了 940 篇内容, 共 534.9 次阅读, 收获喜欢 1105 次。

关注

评论

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

千万级学生管理系统考试存储系统方案

踩着太阳看日出

架构训练营

Postman 如何删除一个工作空间

HoneyMoose

5 年 Java 经验,字节、美团

爱好编程进阶

Java 程序员 后端开发

Fedora 上如何安装 gitea

HoneyMoose

2021阿里总监最新整理:初级-中级-高级大厂面试真题(附答案解析

爱好编程进阶

Java 程序员 后端开发

模块四:作业

本人法海

「架构实战营」

[Day31-02]-[二叉树]二叉搜索树节点最小距离

方勇(gopher)

LeetCode 数据结构和算法

20多年的岁月里一路走来满是辜负与遗憾,从双非到阿里SP,收到offer的那天我哭惨了

爱好编程进阶

Java 程序员 后端开发

3分钟带你彻底搞懂 Kafka

爱好编程进阶

程序员 后端开发

9 个 Java 性能调优技巧,YYDS!

爱好编程进阶

Java 程序员 后端开发

Go 语言入门很简单:Go 计时器

宇宙之一粟

Go 语言 计时器 4月月更

倒计时0日!Apache DolphineScheduler4月 Meetup 大佬手把手教你大数据开发,离线调度

白鲸开源

01-回顾多线程

爱好编程进阶

Java 程序员 后端开发

一个普通App变成Launcher的故事

Changing Lin

android Launcher

@Autowire和@Resource注解使用的正确姿势

爱好编程进阶

Java 程序员 后端开发

天下谁人不识君:当IPv6+成为千行百业的朋友

脑极体

ffmpeg命令参数类型

Loken

2020年最全Java面试汇总整理(含答案)

爱好编程进阶

Java 程序员 后端开发

9000字通俗易懂的讲解下Java注解,你还看不明白?

爱好编程进阶

Java 程序员 后端开发

一份送给IT工程师们的礼物,观测云2022正式发布!

观测云

架构实战营 第 6 期 模块四课后作业

火钳刘明

#架构实战营 「架构实战营」

[Day30]-[二叉树]第二小的值

方勇(gopher)

LeetCode 数据结构和算法

15-spring整合mybatis方式一

爱好编程进阶

Java 程序员 后端开发

3 面蚂蚁,一路过关斩将 成功拿到 offer 定级 P6,大厂面试雀食有点难

爱好编程进阶

Java 程序员 后端开发

渗透实战之内网渗透流程

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

[Day31-01]-[二叉树]二叉树的直径

方勇(gopher)

LeetCode 数据结构和算法

18 应用服务器集群的伸缩性设计

爱好编程进阶

Java 程序员 后端开发

2020,微服务降温了?

爱好编程进阶

Java 程序员 后端开发

2021年最新调查:86% 的 Java 开发人员 依赖 Spring 框架

爱好编程进阶

Java 程序员 后端开发

未来计算图鉴:十年后的计算长什么模样?

脑极体

【ELT.ZIP】OpenHarmony啃论文俱乐部——点燃主缓存压缩技术火花

ELT.ZIP

gpu OpenHarmony ELT.ZIP 主缓存

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