Browse thread
(Mostly) Functional Design?
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2005-07-18 (18:11) |
From: | Robert Morelli <morelli@c...> |
Subject: | Re: Large scale and FP |
David MENTRE wrote: > Hello Robert, > > 2005/7/18, Robert Morelli <morelli@cs.utah.edu>: > >> 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.