Path: utzoo!attcan!uunet!lll-winken!ames!xanth!nic.MR.NET!csd4.milw.wisc.edu!bionet!ig!arizona!gudeman From: gudeman@arizona.edu (David Gudeman) Newsgroups: comp.lang.misc Subject: Re: To trust or not to trust (Re: What is B&D?) Message-ID: <8889@megaron.arizona.edu> Date: 26 Jan 89 20:34:19 GMT Organization: U of Arizona CS Dept, Tucson Lines: 68 In article <1286@etive.ed.ac.uk> db@lfcs.ed.ac.uk (Dave Berry) writes: ]In article <8846@megaron.arizona.edu> gudeman@arizona.edu (David Gudeman) writes: ]>I have never said that totalitaritan languages are without value, just that ]>they are not as general-purpose as their supporters would have us believe. ] ]I thought you just claimed that they were a bit more inconvenient? In a ]recent article you emphasised that this was all you meant. No, the ``inconvenience'' tirade was specifically addressed to variant records, not to a class of languages. It was a direct response to someone misquoting me using hyperbole. I think this sort of discussion can be carried on with out resorting to rhetoric. ]>By the way, all of the languages I listed [Lisp, Prolog, SNOBOL, ...] are ]>higher level than any totalitarian language I know of. ] ]Many functional languages are fairly "totalitarian", as regards their type ]systems. Good point, I withdraw the preceeding comment :-). ]I presume it weas someone else who claimed that Prolog was a ]totalitarian language. Yes, that poster was using a different definition of B&D languages. ]BTW, I don't believe that I'm wilfully misunderstanding you. I believe that ]you're being inconsistent. I don't think I'm being inconsistent, but I may not have expressed myself unambigously. How about the following term and definition? Paternalistic languages: a class of languages that attempt to coerce programmers to program in certain ways. Such languages generally require various forms of redundancy in the code, where the redundancy serves both as documentation and compiler-checked verification. I've changed from saying you ``can't'' do certain things to saying that you ``have to'' do certain things. It's arguable whether there's a difference, but now (hopefully) people won't act as though I've said their favorite language is incomplete (which I never meant to say). The term ``paternalistic'' (fatherly) is meant to imply ``coercion for your own good''. Note for the above definition that type declarations are mostly redundant, as is demonstrated by the large number of languages without them. Given the above definition, here's my complaint against paternalistic languages: I don't like to type. Redundancy has its uses, and most languages could be made better by adding optional redundancy of the sort in paternalistic languages, but I don't like the _required_ redundancy. There are too many situations in which it is gratuitous. The poster who said that Prolog is B&D defined a B&D language as one that tries to restrict the programmer to a paradigm that is inadequate for general programming purposes. Although I agree that such a group of languages exists, I do not mean to include them in the class of paternalistic languages. (Actually, I don't believe that _any_ single paradigm is adequate for computation, at least the way I define ``paradigm''.) David Gudeman Department of Computer Science gudeman@arizona.edu Gould-Simpson Science Building {allegra,cmcl2,ihnp4,noao}!arizona!gudeman The University of Arizona 602-621-2858 Tucson, AZ 85721