当前位置:首页 > 开发 > 编程语言 > 加密解密 > 正文

Hybridizing OO and Functional Design

发表于: 2012-03-21   作者:bookjovi   来源:转载   浏览:
摘要:   推荐博文: Tell Above, and Ask Below - Hybridizing OO and Functional Design 文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,

 

推荐博文:Tell Above, and Ask Below - Hybridizing OO and Functional Design

文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,相比Java而言smalltalk更侧重message的概念,Alan kay也直言在OO中message比object更重要,但在主流OO语言Java却看不到message的影子,这就导致现实中的OO与理想中的OO不一致的情况,根本原因在于同步与异步的区别,smalltalk的message意味着异步,Java的method call意味着同步。个人认为Alan kay一开始设计smalltalk时是想实现个完全异步的OO系统,有点类似Erlang的actor模型(把Erlang中的process看作是object),但是现实中要想实现这样一个完美系统难上加难。说到这里就啰嗦几句Erlang,关于Erlang是OO的讨论一直有,Joe从来都不承认Erlang是一门OO语言,但Joe问他的导师时,Joe的导师却说Erlang是个OO语言,毕竟Erlang还是很像Alan最早提出的OO原型。

 

如smalltalk算是最能体现OO思想的语言,那么haskell就可算是最能体现FP思想的语言,无论从语法,纯洁还有lazy,都有着纯正的FP血液。博文里面说到lazy的前提是purity,这也就容易理解其他FP语言很难实现lazy的原因,如Erlang,side effect才是关键因素。

 

期望未来能有种语言能实现Alan所设想的纯正OO,object之间通过异步消息传递。

Hybridizing OO and Functional Design

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号