From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 4CE2DBB81 for ; Fri, 22 Jul 2005 07:18:53 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j6M5IqnO003666 for ; Fri, 22 Jul 2005 07:18:52 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id HAA24248 for ; Fri, 22 Jul 2005 07:18:52 +0200 (MET DST) Received: from rigel.cs.pdx.edu (rigel.cs.pdx.edu [131.252.208.59]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j6M5Injh026646 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Fri, 22 Jul 2005 07:18:51 +0200 Received: from [128.223.195.194] (d195-194.uoregon.edu [128.223.195.194]) by rigel.cs.pdx.edu (8.13.1/8.13.1) with ESMTP id j6M5IamK006624; Thu, 21 Jul 2005 22:18:37 -0700 (PDT) Message-ID: <42E081A7.3090804@cs.pdx.edu> Date: Thu, 21 Jul 2005 22:18:31 -0700 From: Marius Nita User-Agent: Mozilla Thunderbird 1.0.5 (Macintosh/20050711) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Robert Morelli Cc: caml-list@inria.fr Subject: Re: [Caml-list] (Mostly) Functional Design? References: <9cc3782b05071411004b27b6a4@mail.gmail.com> <42DB6161.4030507@cs.utah.edu> In-Reply-To: <42DB6161.4030507@cs.utah.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new X-Miltered: at concorde with ID 42E081BC.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 42E081B9.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 morelli:01 inherently:01 productive:01 ocaml:01 ocaml:01 caml-list:01 beginner's:01 beginners:01 bug:01 conspiracy:98 giants:98 wholly:98 irrefutable:98 wrote:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 Robert Morelli wrote: > I've been lurking on this list for several years. This seems as good a > time as any to delurk and jump on a soap box. > > I think you've put your finger on one of the main reasons functional > languages have failed to attract significant use beyond a few niche > areas. > > I contend: > 1. The FP community tends to emphasize low level issues rather than > the larger scale issues that concern most programmers. It is also > inept at practical documentation and advocacy. > 2. There isn't much of a theory of large scale functional design. > At least, there is no consensus. > 3. Point 2. is not the consequence of point 1.; it's not simply a > matter of communication, but an instrinsic void in the FP paradigm. > The FP paradigm is intrinsically poorly adapted to the kind of large > scale design concepts that concern most programmers. Object oriented > programming is a much better match, not because of a conspiracy of > commercial giants in the software tool business, but because of > intrinsic technical reasons. Functional programming is a niche > technology ideally suited to simple domains like language tools and > formal methods. It does not have much to say about complicated > systems. I think those who blindly blame FP are as guilty as those who blindly praise it. Asserting "FP is strictly better than imperative programming" is wholly unscientific, irrational, and rooted in dogma. Blindly asserting "FP is strictly worse than IP" is naturally just as bad. Talking about issues of "large scale design" and hinting that certain things are inherently better than others, without providing any actual definitions or proof, is obviously not productive because it's vacuously irrefutable. We need tools that enable us to measure and talk about usability and scalability before we can claim that such things are richer in some paradigms than in others. Until we have that, all we can do is play the social game; expose people to technologies, observe their response, use it as feedback, etc., and work toward a way to make improve this situation. So I'll listen to point #1 (and I tend to agree) but I have no direct way to respond to your other two points, other than resorting to dogma. -marius > > Kyle Consalus wrote: > >> There are a wealth of resources related to object oriented design >> techniques >> (which can certainly be applied to OCaml), but I've been pretty much >> unable >> to find any good resources on large scale design of functional programs. >> I realize that this is the sort of thing that develops over time with >> experience. >> Just the same, there is (most likely) a lot to learn and consider, and >> a resource would be helpful. My recent uses of OCaml for fairly small >> projects >> have been effective, but a lot of things were cumbersome in the design >> and I suspect that I may be thinking about it wrong. >> So, could anyone suggest a good resource or perhaps weigh >> in on their thoughts on the topic? >> >> Thanks, >> >> Kyle > > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs