From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 9D3AEBB81 for ; Sun, 12 Dec 2004 01:21:06 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id iBC0L5Bo006771 for ; Sun, 12 Dec 2004 01:21:06 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id BAA04424 for ; Sun, 12 Dec 2004 01:21:05 +0100 (MET) Received: from cgpsrv2.cis.mcmaster.ca (cgpsrv2.CIS.mcmaster.ca [130.113.64.62]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id iBC0L4KF028380 for ; Sun, 12 Dec 2004 01:21:05 +0100 Received: from [24.43.193.126] (account carette@univmail.cis.mcmaster.ca) by cgpsrv2.cis.mcmaster.ca (CommuniGate Pro WebUser 4.1.8) with HTTP id 75975271; Sat, 11 Dec 2004 19:21:04 -0500 From: "Jacques Carette" Subject: Re: [Caml-list] environment idiom To: skaller@users.sourceforge.net, Andrej Bauer Cc: caml-list X-Mailer: CommuniGate Pro WebUser Interface v.4.1.8 Date: Sat, 11 Dec 2004 19:21:04 -0500 Message-ID: In-Reply-To: <1102807759.2611.609.camel@pelican.wigram> MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format="flowed" Content-Transfer-Encoding: 8bit X-Miltered: at nez-perce with ID 41BB8EF2.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 41BB8EF0.002 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 sourceforge:01 wrote:01 ocaml:01 credited:98 1972:98 1053:98 1058:98 craze:98 idiom:01 jacques:01 jacques:01 modules:01 cobol:02 confused:02 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.0 X-Spam-Level: skaller wrote: > The principle is quite general, exceeding not only C++/Ocaml, > but applying way beyond programming. I actually learned > this idea, that one should think about how a code base > will cope with change, in a superb book on Cobol programming. This idea is indeed quite old. It is generally credited to David Parnas -- see http://www.acm.org/classics/may96/ which refers to On the Criteria To Be Used in Decomposing Systems into Modules D.L. Parnas, Communications of the ACM, Vol. 15, No. 12, December 1972 pp. 1053 - 1058 It is the paper that introduces "information hiding" (not to be confused with the much more restricted idea of 'data hiding' common to OO languages) as well as the design-for-change principle. Sadly, the OO craze has so warped the idea of "information hiding" amongst practitioners that few actually understand how groundbreaking this sweeping idea really was, and still is. Jacques