Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uunet!munnari.oz.au!cs.mu.oz.au!ok From: ok@cs.mu.oz.au (Richard O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: More fun with WG17 Summary: democracy debate Message-ID: <2688@munnari.oz.au> Date: 12 Nov 89 17:23:30 GMT References: <2609@munnari.oz.au> <696@sce.carleton.ca> <2643@munnari.oz.au> <1354@gould.doc.ic.ac.uk> Sender: news@cs.mu.oz.au Lines: 99 In article <1354@gould.doc.ic.ac.uk>, cdsm@doc.ic.ac.uk (Chris Moss) writes: > ISO committees are formed by their representative organisations in > the countries that form it. When a working group is set up all countries > get the option of (a) participating (b) supporting but not participating > (c) opposing the working group. When WG17 was set up, Britain, France, > Germany etc. chose (a), the US chose (b) and very few countries chose (c). > > This seems to me a totally democratic procedure. Most countries prefer > representative not participatory democracy, and that's what's happening > in this case. Let's back up a step in this thread: the starting point was that Andre Vellino (sorry if the spelling is wrong, I can't find the original article any more) said that one of WG17's problems was being too democratic. I said that (a) as long as the members are wise and benevolent it doesn't matter whether it's democratic or not, and (b) the internal organisation of the committee may be as democratic as you please, what really matters is the consent of the governed. I cannot agree that the setting up of WG17 was "a totally democratic process". To check my understanding of this, I actually went out and bought a new dictionary (the Collins COBUILD, Aus$20, ISBN 0-00-370023-2). democratic 2 Something that is democratic is based on the idea that everyone should have equal rights and should be involved in making important decisions. What worries me is not voting as such but that the *people* who are going to be affected by the standard are not *represented*. Countries are legal fictions: to say that "most countries prefer representative democracy" is a sort of verbal shorthand for "in most of the countries where a form of government said by the governors to be democratic the people who are governed have never been given a choice between participatory and representative democracy, so the form practiced by the governments in question more closely resembles representative democracy." Now in what sense did "New Zealand" (for example) _choose_ not to be active in the Prolog standard? Well, Chris Moss informs us that > NZ is a member of ISO, but is NOT a member > of JTC1 or SC22 and therefore does not vote on this. This is the procedure he says is "totally democratic". I repeat, I myself don't think it's a bad thing for a standards body to be non-democratic. I *do* think that the committee ought to consider the interests of the people who are _not_ represented (which is pretty well all of us; representation of your _country_ is not representation of _you_) as paramount. > Ah, this mention of Common Prolog again. Is this really what you want, > Richard? While we don't have a Guy Steele to write the book, it seems to > me that the "throw in every way of doing it" philosophy is something > you have argued against at other times. Well, there are a lot of things to admire about Common Lisp. It was produced in a very co-operative way. A great deal of the proposed language was *implemented* BEFORE the standards committees were formed. That is exactly what I tried to do in 1984: my document about Prolog evaluable predicates and my posting of public-domain code for read/1 and friends, write/1 and friends, setof/3 and friends, and a top level, they were all an attempt to get the Prolog community interested in a co-operative development of a new compatible edition of the language. My idea was that we should take the new edition to the standards bodies *after* we had worked out some degree of consensus about what it should look like. I would like to point out that this approach HAS worked at least to this extent: SICStus Prolog and Quintus Prolog have very compatible syntax because they both started from the public-domain parser. (They also started with similar implementations of setof/3.) In much the same way, SB-Prolog 3.0 is closer to Quintus lexical syntax than older versions because it has a tokeniser I contributed. The idea of encouraging compatibility by providing free code to make it _easy_ to be compatible is an idea I got from Common Lisp: one of the things that encouraged people to stick with Common Lisp was the free compiler. (Actually, it's rather unfair to describe Common Lisp as "throw in every way of doing it". For the most part they picked one approach for each thing and stuck with it.) There is a "Common Prolog" family of Prolog systems whose designers mode serious attempt to be compatible with DEC-10 Prolog and/or C Prolog. DEC-10 Prolog, C Prolog, PopLog (when I last saw it about 5 years ago), ALS Prolog, Quintus Prolog, NU Prolog, SICStus Prolog, Edinburgh Prolog (NIP), Prolog-X, BIM Prolog in compatibility mode, ZYX "Q Prolog", Arity/Prolog, even LPA Prolog to a large extent, though it is different underneath. That cluster has a "centroid" which is a pretty reasonable language; it would be possible to standardise to that without breaking much. "Common Prolog" is the name I give to this "centroid". There are a number of things which have to be tidied up (such as floating-point arithmetic, error handling, streams), but the guiding principle is to adopt what one can from existing Common Prologs and to break only what one must. (We may not have a Guy Steele to write the book; would a Richard O'Keefe do? I'm still waiting to receive any comments at all on the documents I sent to the BSI committee; what's wrong with PS/6 and the 1984 formal definition?) But the important thing about Common Lisp is that it was already working both as implementations and as a standard BEFORE they took it to the standards bodies. It is in fact the case that you can write non-trivial programs in Common Lisp and expect them to port from a PC to a Mac to UNIX to a MacIvory to VMS. It may be big, but it _works_. I'd like to see a Prolog standard that works even half as well.