我说了啊,fp 需要有一定的抽象思维能力,但又不高。理解不了 pure function 也一样不影响靠编程吃饭,连基本概念都搞不明白,自然用起来都不知道自己哪错了呗
two way data binding vs unidirectional data flow 放到16、17年时有大量的文章做过介绍。react 就是在那两年推广开的,随便一搜都有一堆的结果。没听说过是你的问题,我当年就在本版多次介绍讨论过。网上的文章里应该还有不少配图的,自己去看吧,我没有办法解释的更简单了。
我说了 react 一共就用了 pure function 一个概念,并没有说它引入其它的概念。事实上我也在本版吹过 ramda/lodash fp,那几年 es 标准加入了尾递归优化,但除了 jsc 其它几家引擎最终没有支持。同理,react 都已经让很多人摸不清头脑了,所以我从来没在本版提过 elm,不可能发展起来的。
从另外一个角度看,rust 引入了一些 fp 常见的概念比如 enum 和 pattern match,用过的人都喊香。rxjs 也同样是 js 世界里影响力最大的基础库之一,依然是基于 fp 的思想设计的。我之前在本版说过,go 应该是工程师设计的语言的巅峰了,再往后语言的发展都会越来越多融入 fp 的理念。而且我也多次表达过,虽然我个人不喜欢 java 和 go,但在我的理论里,在可预见的将来是这俩一定会占统治地位。也许有一天 ai 编程能够取得实质性的突破,到那个时候我的判断可能就要变了。
【 在 beep (菜M.喵星耗子) 的大作中提到: 】
: 你看你这里很矛盾呀,一方面说“数据的单向流动简化了逻辑,减少了业务逻辑的复杂度。算法和数据结构等等的核心思想,都是把复杂的问题简单化,而在这点上 fp 是做到了极致的。”,另一方面紧接着又说fp在后端不够流行的原因是人“智商不够”。。。。那,到底fp是把事情
: 而且你反复提到的fp的特征也让我很迷惑。我不是cs科班出身的,可能知识不准确,我所知道的fp,特征包括纯函数、函数组合、模式匹配、递归、尾递归优化代替循环,核心基础是数据的不可变性,或者说把可变性局限到最小的程度。但是除了在react社区,我从来没有听说过“单
: 不太清楚你反复强调的这个单向数据流动到底是指什么。在前端框架领域,我所理解的单向数据流动,和状态不变性、fp无关,仅仅是指,数据是从组件树的顶端往下通过props层层传递的,下层组件不能直接修改来自上层组件的数据,必须通过向上发送事件的办法,委托上层组件来
: ...................
--
修改:eGust FROM 122.57.163.*
FROM 122.57.163.*