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 5EE16BCAE for ; Mon, 18 Jul 2005 18:37:21 +0200 (CEST) Received: from gradient.cis.upenn.edu (GRADIENT.CIS.UPENN.EDU [158.130.67.48]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j6IGbJmY009970 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Mon, 18 Jul 2005 18:37:21 +0200 Received: from gradient.cis.upenn.edu (localhost [127.0.0.1]) by gradient.cis.upenn.edu (8.12.10/8.12.9) with ESMTP id j6IGbJJM009960 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT) for ; Mon, 18 Jul 2005 12:37:19 -0400 (EDT) Received: from localhost (agoodloe@localhost) by gradient.cis.upenn.edu (8.12.10/8.12.9/Submit) with ESMTP id j6IGbIEt009955 for ; Mon, 18 Jul 2005 12:37:18 -0400 (EDT) Date: Mon, 18 Jul 2005 12:37:18 -0400 (EDT) From: Alwyn Goodloe To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] (Mostly) Functional Design? In-Reply-To: <278bf64d3f86f40d00b283172979b768@wetware.com> Message-ID: References: <9cc3782b05071411004b27b6a4@mail.gmail.com> <42DB6161.4030507@cs.utah.edu> <278bf64d3f86f40d00b283172979b768@wetware.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Miltered: at nez-perce with ID 42DBDABF.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; alwyn:01 goodloe:01 upenn:01 caml-list:01 haskell:01 productive:01 compiler:01 alwyn:01 goodloe:01 upenn:01 religiously:98 ....:98 wrote:01 argument:01 functional:02 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: I think some of the problem in this discussion is due to a gulf between what programmers in industry expect and the more academic FP community. Lets think back to circa 1988. OO community was really really small. It had a brand of religiously committed Smalltalk programmers. Most C programmers found Smalltalk about as easy to get as they do Haskell. Smalltalk programmers found that the language and environment made them more productive, but to the average C programmer it was just too strange to fathom. Then C++ came on the scene. Virtually no C++ programmer I met in industry during the 1990s actually used the OO features effectively. Why because all they were given was a new compiler. The few that did get the new paradigm were taught OO analysis and design BEFORE they were given a new language. About 1991 or so a set of books were published. Grady Booch, Martin Fowler, and others wrote books about OO analysis and design. These books didn't speak about code they were mostly about how to do OO analysis. Examples were taken from application domains such as insurance, banking, etc. The analysis and design techniques that these authors advocated eventually evolved into UML/Rational methodology. Meyer's Object Oriented Software Construction was a great companion to these less technical books. It is the analysis and design techniques that make OO useful when paired with a reasonable OO language like Eiffel or Java. My argument is that the FP community really doesn't seem to understand that the books and seminars that Booch and company did in the early 90s (however flawed they were) did more to move OO from the realm of Smalltalk hackers than maybe even C++. I hope that there is someone out there that can fill that gap and write about FP analysis and design. It seems to me that the FP paradigm is a better fit with old fashioned Structured Analysis/Design from the 1980s (Yourdon) than it is with OO analysis/design. Remember dataflow diagrams.... As someone who likes the paradigm and hopes to see it spread, I hope some expert in the field addresses this need. Alwyn E. Goodloe agoodloe@gradient.cis.upenn.edu Ph.D. Candidate Department of Computer and Information Science The University of Pennsylvania