【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

发布了 808 篇内容, 共 377.3 次阅读, 收获喜欢 998 次。

关注

评论

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

【架构笔记1】剃刀思维-如无必要,勿增实体

文思源想

软件架构设计 文思架构笔记 设计感悟

深入理解 Java 修饰符与封装:访问权限、行为控制与数据隐藏

小万哥

Java 程序人生 编程语言 软件工程 后端开发

ubuntu22安装和部署Kettle8.2

百度搜索:蓝易云

云计算 ubuntu 运维 kettle 云服务器

AppleScripts、Shell脚本编写调用工具:FastScripts for Mac

Rose

ExpressScribe PRO for Mac(易于使用的专业转录软件)v13.06注册激活版

影影绰绰一往直前

英特尔边缘平台亮相MWC 2024,模块化设计引领行业创新

E科讯

最新版VMware Fusion Pro 13 虚拟机 13.5.1激活密钥分享

Rose

VM虚拟机 VM密钥 虚拟机软件 VMware Fusion Pro破解版

最常用的几款Paas平台编译构建工具的对比

华为云PaaS服务小智

软件开发 PaaS 华为云 编译构建

一款高温型霍尔效应传感器

二哈侠

2023 re:Invent AI 生成产品体验,从 Bedrock 到 Amazon Q

亚马逊云科技 (Amazon Web Services)

生成式人工智能

SPSS 打开提示“服务器登录:本地计算机”的解决办法

Rose

Find Any File (FAF) :高效的本地文件搜索查找工具

Rose

文件搜索工具 Find Any File

JetBrains pycharm pro 2023 mac v2023.3.4中文激活版

影影绰绰一往直前

Navicat Data Modeler Ess for Mac(顶级的数据库建模与设计工具)v3.3.16中文直装版

影影绰绰一往直前

ubuntu创建自定义开机服务

百度搜索:蓝易云

Linux ubuntu 运维 云服务器 systemd

顶级的数据库建模与设计工具:Navicat Data Modeler Ess中文直装版

Rose

数据库 navicat

ExpressScribe PRO for Mac:转录过程更快、更高效

Rose

转录软件 Express Scribe

Kaleidoscope for Mac:强大易用的文件比较利器

Rose

Find Any File (FAF) for Mac(专业的本地文件搜索查找器)v2.5beta2(364)激活版

影影绰绰一往直前

在哥伦布的凯旋港,为全球智能化造一艘云船

脑极体

云计算 AI

HTTP/1.1协议中的响应报文

百度搜索:蓝易云

云计算 Linux 运维 HTTP 运维web

Alfred 5汉化版:Mac用户推崇的效率工具

Rose

效率工具 Alfred 5 Alfred 5破解版 Alfred 5汉化版

Parallels Desktop 18完美激活版:高效、便捷、多样化的虚拟化解决方案

Rose

Parallels Desktop 18 pd虚拟机 苹果电脑 Mac虚拟机下载

数仓的等待视图中,为什么会有Hashjoin-nestloop

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

Kaleidoscope for Mac(图片和文本差异比较工具)v4.4激活版

影影绰绰一往直前

思维导图真有效?亲测5款好用的AI思维导图软件!

彭宏豪95

思维导图 在线白板 协同办公 AIGC 效率软件

如何通过快速且安全的API基础设施策略为工程师赋能并提升效率,同时避免影子IT

Gingxing

kong API网关 Kong 网关 消息网关 Kong Gateway

JetBrains pycharm pro 最新密钥激活 v2023.3.3中文版安装教程

Rose

Navicat for SQL Server for mac(数据库管理工具)v16.36汉化版

影影绰绰一往直前

Navicat Premium 16 for Mac(数据库管理软件)v16.3.6中文激活版

影影绰绰一往直前

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