Re: Functional Programming in the Larger or Functional Oriented Software Engineering
"Tommy M. McGuire" <[email protected]> Wed, 14 Mar 2007 12:49:18 -0500
| Newsgroups | gmane.comp.lang.lightweight |
|---|---|
| Message-ID | <[email protected]> |
Lewis Brown wrote: > Several years back on this list there was a great discussion about what > ought to be the basic, elemental foundation of a language: the function > or the object. I would suggest that the "elemental foundation" equivalent to the function for most popular languages that I am familiar with is not the object but the statement---they're procedural languages with objects. > The object school has developed a huge volume of literature to address > the engineering issues involved with “Programming in the Large.†It has > given us not just languages, but processes, modeling languages, etc. > > It would seem that the functional school has been relatively mute on > this topic. As (my interpretation of what) Mike wrote, I think this is a historical accident; the "huge volume" follows the popularity of the object school, which follows the popularity of the original procedural languages. Also, note that the functional school has written some responses to the huge volume; for example, pointing out that much of the design pattern chunk of the volume can go from informal design guidelines to being directly expressed in the code, given suitable, functional language features. > Does this imply that, despite your choice of foundational element, all > large systems require objects to manage the complexities? Is that why so > many functional language implementations usually offer at least one > ‘flavor’ of object system? On the one hand, this may be a function of popularity and custom: "Look at this really neat language...!" "What does the object system look like?" "It doesn't have one." "Oh, well...." (In spite of having worked with OCaml quite a bit, I have never used its object system.) On the other hand, object systems are quite good at managing complexity, although they do add their own. (This is, in fact, why I haven't used OCaml's objects---using the rest of the language, I could usually reduce or avoid the complexity, rather than trying to manage it.) And in that case, most of the literature on engineering issues is as applicable to functional languages with object systems as it is to procedural languages with object systems. Tommy McGuire [email protected]