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

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

    震惊

    震惊

编辑推荐
I have an idea I’ve been holding back for a while because I think it is wrong. It’s just to
摘自 http://www.jdon.com/43907 面向对象定位于系统高层次,面向函数编程是定位于低层次. 来自 Tel
Abstract 在OO設計裡,我們常會定下interface要求其他class必須實現此interface,以便彼此溝通,若
Abstract Adapter Pattern有Class Adapter和Object Adapter兩種實現方式。Class Adapter的優點是可o
转自  http://blog.leezhong.com/ios/2013/06/19/frp-reactivecocoa.html Functional Reactive Pr
推荐阅读:Functional Programming Is Hard,That's Why It's Good(翻译) IDE Emacs Aquamacs Go Go
原文链接:http://blog.leezhong.com/ios/2013/06/19/frp-reactivecocoa.html 什么是Functional Rea
  ReactiveCocoa与Functional Reactive Programming 什么是Functional Reactive Programmin
Functions in Java Prior to the introduction of Lambda Expressions feature in version 8, Java
如何创建JavaScript Object呢?有如下几种方法: 一、Constructor Pattern function Person(name, a
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号