From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 2CE75BBC4 for ; Tue, 31 Mar 2009 05:28:42 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvcAAKoq0UnUnwckiWdsb2JhbACCIZNfAQEBCgsICRAFtDCDegY X-IronPort-AV: E=Sophos;i="4.38,450,1233529200"; d="scan'208";a="37536619" Received: from relay.ptn-ipout02.plus.net ([212.159.7.36]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 31 Mar 2009 05:28:41 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAGAGMq0UnUnw4R/2dsb2JhbACCIchHg3oG Received: from pih-relay04.plus.net ([212.159.14.17]) by relay.ptn-ipout02.plus.net with ESMTP; 31 Mar 2009 04:28:41 +0100 Received: from [87.112.10.166] (helo=leper.local) by pih-relay04.plus.net with esmtp (Exim) id 1LoUeW-0003VF-Lf for caml-list@yquem.inria.fr; Tue, 31 Mar 2009 04:28:40 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] when OO is wrong Date: Tue, 31 Mar 2009 04:34:50 +0100 User-Agent: KMail/1.9.9 References: <0DEB4DD9-13C5-4CC5-A916-A18BB6B9DAEB@gmail.com> <49D187D3.9090108@ens-lyon.org> In-Reply-To: <49D187D3.9090108@ens-lyon.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200903310434.51030.jon@ffconsultancy.com> X-Plusnet-Relay: de992d186b71936004de0148b33d5de2 X-Spam: no; 0.00; conceptually:01 summarize:01 ocaml's:01 recursion:01 2009:98 smoke:98 frog:98 wrote:01 wrote:01 caml-list:01 functions:01 jambon:01 interfaces:01 prefixes:01 data:02 On Tuesday 31 March 2009 04:02:43 Martin Jambon wrote: > Alexy Khrabrov wrote: > > What is it about FP which makes modeling simpler than OO, conceptually > > and technically? How can folks summarize their "enlightenment" > > experiences in this regard? > > ... > Objects and classes tend to be more appropriate than modules and records in > the following cases: > > - self-centric data that can be considered as a "resource", typically for > IO operations. > - frequent need to define and use interfaces before implementations. > - keeping familiar names for functions/methods without requiring > disambiguation prefixes ("input", "output", "print", "flush", "read", > "send", etc.) I'd also add that OCaml's object system is great when you're developing code and don't want to have to keep type definitions up to date as the code evolves. For example, I used objects to represent LLVM's state in HLVM. I also used an object to avoid introducing a huge mutual recursion in Smoke. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e