区块链能否使函数式编程取代状态自动机编程

好久不写 CSDN 博客了。几年了。

曾记得,写 CSDN 博客最耗神儿的,是排版……

现在我主要写公众号去了,还是一样的名字,如下图,欢迎关注。可以微信扫码或者搜索“光宇广贞”。想预览的话,百度“光宇广贞”连好几页尽请观看。这并非技术类公众号……当然,本来我也从来没把 CSDN 博客当成技术类文库……

区块链能否使函数式编程取代状态自动机编程_第1张图片


小故事

人:大夫,我视力越来越差了,颈、肩、腰都不好,而且总也治不好了,生怕自己哪天猝死了!

医:别干程序员了,换个活法。

人:那怎么行,我得活着。

医:……

状态编程

程序员,上没上过学,都知道『有限状态自动机』这玩意儿——当然,不知道也没事儿,这说明你天天都不知道自己在干嘛,也是心大,或者说连自己在干嘛都不知道就能赚着大钱了,也是伟大——今天的信息产业的一切都是构建其上的,也似乎应该是构建其上的,所以一切的讨论无论是服务与数据,从架构容量到语言属性,都从来没有刨根问底的势力。

所谓的计算机就是状态计算机,所谓的程序就是驱动计算机一遍又一遍地计算状态,从寄存器到变量,从变量到对像,从对像到聚合根,从聚合根到数据仓库,从数据仓库到数据库,从单点到集群,从内存到外存,从实到虚,从小到大,从简到繁,说到底就是在围着状态计算工作。

分布式,会有『CAP 三角测不准原理』。引入『事务』这个概念,然后搞一个『ACID 约束』。『聚合根』这个概念是个伟大的发明,既而自然而然地强调『有界上下文』这个认识,生怕用户恍惚,一时激动太过失了措。对,边界,边界,所以有 OOP,然后再讨论是 OOP 还是 AOP。无论是边界还是一致性约束,终归一点,就是你须明确你的状态,或者一组状态集,我以此来认识你,管理你。

体系降低了性能,而后再想办法做性能提升,从架构搭建到过程编写,名曰『优化』,这成了一项值钱的知识范畴,很值钱,据说有猎头报价,『1000W 以内可谈』。

区块链走向了另一种追求——要什么性能?区块链只对『一致性』做事。『CAP』是个什么东西。

最根到底,我们必须明白,我们是在状态编程。

过程编程

『面向过程编程』,一个被公认为古老的范式。

有些人可能觉得难以启齿,毕竟宣传这东西,观念这东西,成见这东西,你想和成见讲道理?

于是换种说法。

『函数式编程』,一个被公认为很新潮的范式。

让程序员的思维重回过程。状态变化的整个过程,或叫流程,或叫过程链。

说回就回呐,不好回。匹夫下棋看一步,国手下棋看十步。多数人是匹夫,或恐怕只比匹夫好一些,比国手差点了——因为,这首先考你记性好不好。别说算棋,我让你算数,13579 乘以 24680 乘以 12345 乘以 67890,不计时,不求快,算准就行。『CAP』什么的,和区块链一样,我不要 A,爱 P 不 P,你站得 C 位出结果就行。

所以,过程编程,只是说说。理解难,实践难,维护难——函数式编程,三步之外,太绕。

高手毕竟少数。

重新理解数据库

数据库是结构化的状态集合。

关系数据库还是非关系数据库,争论的只是结构化强度。所以,有人认为 MongoDB 是一个趋近关系数据库的非关系数据库,我的看法是,太绕,它就是结构化状态集合仓库,和关系数据库如 Mysql 等没区别——说得好像,你的关系数据库结构是按着数据库范式约束设计的一样。

换种说法看看。

数据库是状态集合在时空链上的切面快照——软件系统遭遇了『二向箔降维打击』,就成了数据库。

这就是为什么,数据库永远是二维表……

因为它永远只是一个切面。

无论过去,不知未来,只管现在。

再谈二向箔

二向箔打击之下,三维降为二维,比如『CAP』,我们是要『CP』还是要『AP』,自然其实在 C 和 A 之间,还应有半 C 半 A 的状态存在。不考虑量子叠加态,高维降到低维,会有很多种侧面供选择,它有多少组非空真子集,它就有多少个侧面可选。若考虑量子叠加态,比如半 C 半 A 这种,那侧面量更海了去了。

——专利或学术论文都是可以从海里冒出来的。

再谈区块链

区块链就是个数据库。

而且是个分布式数据库。

若将之直接应用到一线场景,就是状态编程领域。比如, 它通过共识算法,强制网络上各结点的数据一致性约束。

它实际上正是脱胎于状态编程领域。但怎么样应用到过程编程领域呢?本来区块链就很像一条时空链,区块就是时空链上的一个个切面。

区块链是个工具,也可以是个范式。

一种范式,将被二向箔拍扁的软件系统时空复原。

尾言

你遇到很多问题,其实根本上可能是因为你囿在那个空间里。

人的领地意识源于人的空间感知。匹夫感知得到空间的边界,但无法感知空间的运动,也即,他感知不到时间。

国手应是可以的,因为国手会算棋,他需要感知时间,即空间将如何运动。

国手,不是依靠脑力,而是明确一种范式,将时空运动记录,这不仅是史实根据,更可以既而推演。

这不就是人工智能了么……

或者,这才是真正的人工智能。

到那时,才是过程编程取代状态编程的时日。

请关注我公众号

区块链能否使函数式编程取代状态自动机编程_第2张图片

你可能感兴趣的:(设计模式,量子物理,区块链,人工智能,光宇广贞)