O

OOP 是一种软件开发群体精神病

2025-05-25

OOP 是一种软件开发群体精神病

广义的外行人对精神病的定义大致是:“相信已被证明是错误的事物”。群体性精神病是指许多人都持有这种错误的信念。

历史上充斥着群体性精神病事件,今天也不例外。我最喜欢的群体性精神病事件是500年前发生在德国的“舞蹈瘟疫”,当时成千上万的人毫无缘由地跳舞至死,累得筋疲力尽。大约30年前,俄罗斯当局不得不关闭几个地区的小学,以遏制“笑瘟疫”。这场瘟疫最初在一所小学的青少年和儿童中蔓延,导致孩子们笑得几乎睁不开眼睛。一小群孩子在一个教室里大笑,不到一周,这种现象就蔓延到了几十所学校,数百名歇斯底里的孩子无法停止歇斯底里的大笑。心理学家被召来,该地区进入“临时卫生紧急状态”,孩子们被隔离在家中,以防止他们被呛到而笑死……

30 多年来,软件开发人员一直被灌输一种咒语,随着时间的推移,这种咒语或多或少变成了获得软件开发人员工作所必需的信仰宣言,这种咒语如下。

面向对象编程是一件好事

但事实上,30多年的历史告诉我们的恰恰相反。例如……

  • 在 OOP 中实现封装会导致不必要的复杂性,并且几乎不可能理解代码
  • 多态性会导致混乱,并且很难追踪错误
  • 将数据(字段)与逻辑(方法)耦合是灾难的根源,并且会使逻辑和数据以一种可以说是疯狂的方式纠缠在一起
  • 单一职责导致需要 1,000 多个类来完成原本可以用 FP 中的 5 个函数完成的事情。

我可以继续列举数百个 OOP 类似的问题。然而,设计模式、简洁架构和 SOLID 原则才是真正的证据。如果 OOP 真的能解决任何问题,我们就不需要设计模式、简洁架构或 SOLID 设计原则了。OOP 本身就足够了。OOP 需要拐杖才能站稳,这本身就足以证明这一点。

我曾听一位 LISP 开发者证明,GoF 书中 23 种原始设计模式中有 19 种在 LISP 中完全行不通。事实上,你可以根据正确使用一门编程语言所需的设计模式数量来量化其“精神病”程度。如果你这样做,你就会意识到 99% 的设计模式都只是针对面向对象编程 (OOP) 不足之处的“黑客攻击”

当然,对于刚开始编程的开发者来说,读过所有关于面向对象编程(OOP)的营销术语后,辨别真假变得异常困难。因此,高级开发者有责任阻止这种精神错乱,并向初级开发者解释更多函数式编程语言的优势,这样我们才能共同摒弃这种 50 多年前在奥斯陆 Simula 67 大会上诞生的范式——当然,就是面向对象编程(OOP)……

匿名戒毒协会(AA)有一个12步疗程,可以帮助你摆脱成瘾。矛盾的是,这些步骤几乎可以应用于世界上任何事物,而第一步总是如下……

第一步,意识到你有问题

问题当然在于面向对象编程 (OOP),而实现点就是你大声说出这句话的那一刻,不惧后果——承认面向对象编程实际上是一种精神病,无论如何都不是一个“卓越的软件开发范式”。说真的,每个计算机进程都或多或少地由相同的部分组成;输入 + 进程,产生输出。把前一句中的进程换成一个动词,你就有效地阐述了曾经创建过的每一个(成功的)计算机进程。

说到动词,函数式编程在各个方面都比面向对象编程及其“主语”要优越得多。所以,请跟我一起说……

OOP 简直就是精神病!它不是解决方案,而是问题所在!

顺便说一下,如果你想使用一种合理的编程语言,那么有很多不错的语言可供选择,例如......

  • LISP
  • GoLang(是的,这里没有 OO)
  • F#
  • 当然是我个人最喜欢的Hyperlambda

当谈到 OOP 时,问自己以下问题:“罗纳德·里根和南希·里根会怎么做?” - 答案当然很简单......

直接说“不”!

文章来源:https://dev.to/ainiro/oop-a-software-development-mass-psychosis-9n4
PREV
The Ultimate Guide 🚀 To Use VS Code With Windows Subsystem for Linux (WSL)👩‍💻👨‍💻
NEXT
从零开始学习 Bash:学习足够的 Bash 知识来编写自己的脚本