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 EF87FBCAE for ; Mon, 18 Jul 2005 20:11:13 +0200 (CEST) Received: from rwcrmhc12.comcast.net (rwcrmhc14.comcast.net [216.148.227.89]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j6IIBClO017279 for ; Mon, 18 Jul 2005 20:11:13 +0200 Received: from [192.168.1.4] (c-24-10-253-157.hsd1.ut.comcast.net[24.10.253.157]) by comcast.net (rwcrmhc14) with ESMTP id <20050718181109014009v0m4e>; Mon, 18 Jul 2005 18:11:09 +0000 Message-ID: <42DBF0BC.30807@cs.utah.edu> Date: Mon, 18 Jul 2005 12:11:08 -0600 From: Robert Morelli User-Agent: Mozilla Thunderbird 1.0 (X11/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: David MENTRE Cc: Kyle Consalus , caml-list@yquem.inria.fr Subject: Re: Large scale and FP References: <9cc3782b05071411004b27b6a4@mail.gmail.com> <42DB6161.4030507@cs.utah.edu> <3d13dcfc0507180256491f4a39@mail.gmail.com> In-Reply-To: <3d13dcfc0507180256491f4a39@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 42DBF0C0.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; morelli:01 morelli:01 haskell:01 hudak's:01 haskell:01 admirable:01 hudak's:01 recollection:01 debugging:01 literate:01 beginner's:01 scsh:01 ocaml:01 o'reilly:01 wrote:01 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: David MENTRE wrote: > Hello Robert, > > 2005/7/18, Robert Morelli : > >> 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. > > > What do you call practical documentation? Let me give you an example which I think is quite typical. When I first started learning functional languages, I chose Haskell to start with. I simultaneously read several books. Of these, I'll mention Hudak's The Haskell School of Expression, because it was the most admirable of the lot in terms of addressing ordinary programming issues. However, not only did Hudak's book fail to address any higher level programming principles, it didn't even properly address the basics of getting even a small real program running. To my recollection (going back some time), it ignored or gave very short shrift to basic issues like commenting conventions, file extension conventions, directory layout, documentation tools, etc., much less anything like debugging techniques. It didn't even explain the module system to the point where the reader would be able to write a working program. Every example in the book was an exerpt that could not run by itself. The code accompanying the book was written with a literate programming technology that was not discussed in the book. Etc. Mind you, there are excellent beginner's books on Haskell, like Davie's "An Introduction to FP Systems using Haskell," which introduces basics of the language along with the basics of its theory and implementation. However, it's not a practical programming book, and is totally focused on low level issues. Peyton-Jones' expository articles are models of clarity, but aren't complete accounts of the language. The situation with Scheme is even worse. Abelman and Sussman is a classic, but hardly practical. I find it unfortunate that Dybvig's book is the only attempt at a general introduction to the language. As an aside, I find the documentation for SCSH, or lack thereof, a tragic missed opportunity. OCaml, with its O'Reilly book, probably has the best practical documentation of any functional language around. But it's just not even a far cry from what languages like Java enjoy.