C*****l 发帖数: 1 | 1 编程书里面对oop的解释,往往过于通俗. 使人看了之后,就觉得这么trivial的东西,
怎么写不可以,为什么要oop.
但是oop的理想情况,就是一个state的集合{si},加上面的一个正交操作集合{OPi},
两个集合都应该是完备的,也就是state上面的任何一个操作都可以表示成操作集合的
组合。如果能达到这样的design就可以保证对数据的操作十分robust。
从历史上看,这种operator算符的思路第一次被大规模发现应该是20世纪的量子力学。
当然数学里面算子代数的历史可能可以上溯更远。量子化,就是让状态空间离散可数化
,其他物理过程都用算符来表示。状态空间{si}, 和算符集合就提供了物理系统的完备
描述。
量子力学的发现,物理学家主要还是关注基本思想以及实验现象的解释。公理化体系,
其实是冯诺伊曼这些的跨界数学家搞的。而早期的计算机科学家,算法学家也是数学家
,所以很可能数学家把从量子力学里面学到的这种思路,广泛运用到编程领域。这样解
释,一切就非常自然了。 | c*******v 发帖数: 2599 | 2 https://medium.com/javascript-scene/the-forgotten-history-of-oop-
88d71b9b2d9f
In other words, according to Alan Kay, the essential ingredients of OOP are:
Message passing
Encapsulation
Dynamic binding
These ideas were inspired by biological cells and/or individual computers on
a network via Alan Kay’s background in biology and influence from the
design of Arpanet (an early version of the internet).
These ideas were inspired by biological cells and/or individual computers on
a network via Alan Kay’s background in biology and influence from the
design of Arpanet (an early version of the internet). Even that early on,
Alan Kay imagined software running on a giant, distributed computer (the
internet), where individual computers acted like biological cells, operating
independently on their own isolated state, and communicating via message
passing.
【在 C*****l 的大作中提到】 : 编程书里面对oop的解释,往往过于通俗. 使人看了之后,就觉得这么trivial的东西, : 怎么写不可以,为什么要oop. : 但是oop的理想情况,就是一个state的集合{si},加上面的一个正交操作集合{OPi}, : 两个集合都应该是完备的,也就是state上面的任何一个操作都可以表示成操作集合的 : 组合。如果能达到这样的design就可以保证对数据的操作十分robust。 : 从历史上看,这种operator算符的思路第一次被大规模发现应该是20世纪的量子力学。 : 当然数学里面算子代数的历史可能可以上溯更远。量子化,就是让状态空间离散可数化 : ,其他物理过程都用算符来表示。状态空间{si}, 和算符集合就提供了物理系统的完备 : 描述。 : 量子力学的发现,物理学家主要还是关注基本思想以及实验现象的解释。公理化体系,
| C*****l 发帖数: 1 | 3 alan kay已经是6,70年代了,搞不好很多联系已经被忘记了, cellular automata是
冯诺伊曼发明的,kay想象中的包含state的细胞有没有收到影响?要知道牛顿体系里面
大家想象的都是连续变量系统。
are:
on
on
【在 c*******v 的大作中提到】 : https://medium.com/javascript-scene/the-forgotten-history-of-oop- : 88d71b9b2d9f : In other words, according to Alan Kay, the essential ingredients of OOP are: : Message passing : Encapsulation : Dynamic binding : These ideas were inspired by biological cells and/or individual computers on : a network via Alan Kay’s background in biology and influence from the : design of Arpanet (an early version of the internet). : These ideas were inspired by biological cells and/or individual computers on
| d*******r 发帖数: 3299 | 4 问题是流行的OOP(e.g.Java,C++)要求单链条严格封装
还有比如单链条的继承树(继承树长了是真难用).
这些限制导致流行的OOP非常难用
hierarchical层级定义抽象,封装内部状态, 是正确的设计
但是用的时候, 有可能底层状态有 s1,s2,s3,s4
s1,s2,s3 可以封装成 object A
s4,s2,s3 可以封装成 object B
就好比相同的人可以担任不同角色,
就好比相同的底层状态可以用不同的上层公式/模型表示.
所以流行的OOP针对真实世界的建模就别扭了.
然后大家只有开发新的补丁给OOP用... | d*******r 发帖数: 3299 | 5 """
但是oop的理想情况,就是一个state的集合{si},加上面的一个正交操作集合{OPi},
两个集合都应该是完备的,也就是state上面的任何一个集合都可以表示成操作集合的
组合。如果能达到这样的design就可以保证对数据的操作十分robust。
"""
优雅地建立正交分解 -- 这个本来就及其的难
放在数据物理领域可以. 建模日常的杂七杂八的事务, 就更难了
【在 C*****l 的大作中提到】 : 编程书里面对oop的解释,往往过于通俗. 使人看了之后,就觉得这么trivial的东西, : 怎么写不可以,为什么要oop. : 但是oop的理想情况,就是一个state的集合{si},加上面的一个正交操作集合{OPi}, : 两个集合都应该是完备的,也就是state上面的任何一个操作都可以表示成操作集合的 : 组合。如果能达到这样的design就可以保证对数据的操作十分robust。 : 从历史上看,这种operator算符的思路第一次被大规模发现应该是20世纪的量子力学。 : 当然数学里面算子代数的历史可能可以上溯更远。量子化,就是让状态空间离散可数化 : ,其他物理过程都用算符来表示。状态空间{si}, 和算符集合就提供了物理系统的完备 : 描述。 : 量子力学的发现,物理学家主要还是关注基本思想以及实验现象的解释。公理化体系,
| C*****l 发帖数: 1 | 6 现实问题在于操作集不好选择,比如一个xml,如果定义的过大只能加特定的node,后
面可能会发现不能支持新用法,如果定义过细,就会太复杂,跟直接写差不多了。
【在 d*******r 的大作中提到】 : 问题是流行的OOP(e.g.Java,C++)要求单链条严格封装 : 还有比如单链条的继承树(继承树长了是真难用). : 这些限制导致流行的OOP非常难用 : hierarchical层级定义抽象,封装内部状态, 是正确的设计 : 但是用的时候, 有可能底层状态有 s1,s2,s3,s4 : s1,s2,s3 可以封装成 object A : s4,s2,s3 可以封装成 object B : 就好比相同的人可以担任不同角色, : 就好比相同的底层状态可以用不同的上层公式/模型表示. : 所以流行的OOP针对真实世界的建模就别扭了.
| T********i 发帖数: 2416 | 7 人类智力的极限,也就是一万行左右代码的一个状态自动机。
不是说把specs给他让他写对,虽然那也很难。
而是说能设计一个优化的specs。
这是无解的。而且是可观测的。 |
|