近期与同事讨论,函数式(FP)正在缓慢取代面向对象(OOP)?

80 天前
 raycake
请关注问题,别抨击提题问题的人和问题本身(狗头保命)。
9312 次点击
所在节点    程序员
90 条回复
DOLLOR
80 天前
取代者不是函数式,而是“函数是一等公民”的概念越来越深入人心了。函数应该是能独立存在的东西,能作为变量、参数、返回值,不应该只作为类的附属品。

被取代的也不是面向对象,而是 为了面向对象而面向对象。
8355
80 天前
fp 的应用在于 serverless 函数计算的发展,取代我觉得并不会。
zsj1029
80 天前
一个 ts 函数式导出,你去打印这个导入,实际还是个对象,所以。。。没有所以
tubinorg
80 天前
在 oop 中加点 lambda 而已
RightHand
80 天前
函数也是对象,爆杀一切
Chingim
80 天前
只能说不再是传统的 OOP.

但也不是纯粹的 FP, FP 处理副作用还是有点蛋疼的
windcode
80 天前
极端的面向对象思想已经过时了,现代语言更多是取长补短,取一个工程上的“均衡点”
shily
80 天前
@NessajCN 是不是因为你没有东西继承?要是有一个小目标继承,就不会了。🐶
Leviathann
80 天前
@xz410236056 protocal 不过就是 typeclass 换个马甲而已
Rorysky
80 天前
大多数 oop 都是脱裤子放屁,话糙理不糙
PTLin
80 天前
是面向组合替代了面向对象,fp 不是只有一等公民的函数和 map filter reduce 那些东西。
mogutouer
80 天前
python 写多了吧😂
frandy
80 天前
早前流行 FP,现在是 OOP+FP,怎么好维护怎么来,因为现实业务没有纯函数,而且 FP 里面好多概念无法理解,比如函子(Functor)、适用函子(Applicative)、单子(Monad),一听名词就觉得好高大上,哈哈哈哈哈
kyuuseiryuu
80 天前
先有业务,后要数字化 —— OOP 好用。
先要产物快速迭代 —— FP 好用。

项目复杂度上去了迟早要迁移到 OOP 。
业务没跑起来就上 OOP 提前设计,利润不一定有一开始就用 FP 来的多。
kuanat
80 天前
稍微偏个题。

编程这件事的本质是什么?我个人有个粗糙的定义,就是用语言对某种事物、行为或过程做出无歧异的抽象描述。用自然语言给人指路、教人下棋或者介绍产品都是编程,只是这种程序的执行者不是自动化的机器。

从计算理论上说,图灵完备的编程语言之间不存在表达能力的差别。语言特性和编程范式百花齐放,表面上是工具特化的结果,深层次是反映编程者对于现实的认知逻辑和思维方式。

FP 是数学上优美的,非常适合解决真空中球形鸡的问题,现实大多数问题仍旧需要传统经验公式和手段来应对。OOP 是有效解构对世界认知的哲学,但实现 OOP 的方式却不一定。组合( composition )替代继承( inheritance )就是认知层面的进步。

从过去二十年编程语言的发展来看,语言特性 FP/OOP 的进步演化一直在发生,但几乎不存在相互替代的基础。作为工具的编程语言,以当下的视角来看,能够成为主流的一定是具有工程化能力基础的,只有解决问题的范畴和效率提升才会带来工具的替代。
kw8023cn
80 天前
@kyuuseiryuu 有趣的观点,学习了
zefpe2
80 天前
FP 早就是润物细无声了,新一点的语言和框架全都带着 FP 的概念。常见的 Option 、Result 、Either ,还有前端各种 State 、异步的处理,全都是用 FP 的概念,我不信现在还有人没见过任何一个。大部分人不需要专门学习 FP 就已经用上 FP 技术了,你每天都在用 Monad 却不需要了解任何 Monad 的知识
xiangbohua
80 天前
说句实话,我觉得平时很多人写业务的时候框架一套就开始写逻辑,没多少人的用到了 oop 的特性的。。。框架用的 oop 语言然后只是被迫 new 对象而已。对于一般人而言只要框架好用,是不是 oop 无所畏惧。
XIVN1987
80 天前
流行语言都是混合语言,,纯 OOP 或纯 FP 的语言都半死不活。。
XIVN1987
80 天前
C 语言除外,,它既没有 OOP ,也没有 FP ,,纯粹的高级、通用汇编语言。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089413

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX