NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

发布了 813 篇内容, 共 380.9 次阅读, 收获喜欢 999 次。

关注

评论

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

文心一言 VS 讯飞星火 VS chatgpt (100)-- 算法导论9.3 6题

福大大架构师每日一题

福大大架构师每日一题

Nginx的HTTP模块与Stream模块:区别与应用场景

天翼云开发者社区

nginx Web 服务器

DApp交易所兑换底池模式系统开发|案例分析

西安链酷科技

DAPP系统开发

量化交易/秒合约/合约跟单/交易所系统开发(成熟案例)

西安链酷科技

DAPP系统开发

2024广州国际汽车塑料与复合材料展览会

吹吹晚风

2024广州国际涂布技术与模切产业展览会

吹吹晚风

2024广州国际智能防伪及新型标签设备展览会

吹吹晚风

深度学习之“智能标注”

矩视智能

深度学习 机器视觉

筑牢网络安全防线,天翼云签署《云计算服务安全自律公约》!

天翼云开发者社区

云计算 安全

LED透明屏为什么能透明?

Dylan

AR vr 虚拟 LED显示屏 led显示屏厂家

DApp丨DeFi丨LP丨IDO丨DAO代币质押模式系统开发

西安链酷科技

DAPP系统开发

软件测试/测试开发丨利用人工智能ChatGPT自动生成PPT

测试人

人工智能 软件测试 PPT ChatGPT

2024广州国际吸塑板片材及成型技术展览会

吹吹晚风

高级编程计算工具MATLAB R2023a激活中文版附密钥

胖墩儿不胖y

Mac软件 数学计算工具

华为云HBase冷热分离最佳实践

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 企业号9月PK榜

开源项目专访 | XuperCore——让信任的链接更加便捷

开放原子开源基金会

低代码引擎 TinyEngine 正式发布!

Kagol

开源 前端 低代码

教育部-华为“智能基座”2.0正式启动,开创数智人才新生态

新消费日报

图形处理工具:Photoshop Elements mac中文直装版下载

mac

windows 苹果mac Photoshop Elements 图形处理工具

噢耶!字节后端Offer,拿到了!

王中阳Go

Go 面试题 面经 校招 大厂面经

自然语言处理的强大工具

百度开发者中心

自然语言处理 #人工智能 千帆大模型平台

支持国产基础硬件的云管平台哪家好?为什么?有哪些功能?

行云管家

云计算 云安全 云管平台 行云 云成本

macos平台数据保护推荐 Data Guardian 免激活最新

mac大玩家j

数据保护 Mac软件 数据保护软件 保护数据

乌托邦UOT系统开发NFT技术实现

西安链酷科技

DAPP系统开发 NFT链游

Illustrator 2023 mac(ai2023矢量图形编辑软件) v27.9中文激活版

mac

windows 苹果mac 矢量图形编辑软件 Illustrator 2023

NFTScan | 09.18~09.24 NFT 市场热点汇总

NFT Research

NFT\

一文带你实现云上部署轻量化定制表单Docker

华为云开发者联盟

开源 云原生 华为云 华为云开发者联盟 企业号9月PK榜

F5为OpenTelemetry项目提供降本增效的技术支持

科技热闻

DAPP去中心化交易所系统开发|详情方案|规则逻辑

西安链酷科技

DAPP系统开发

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