[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PG: Hackers and Painters

[Steve Dekorte <steve@dekorte.com>]
> http://www.dreamsongs.com/NewFiles/clcrit.pdf
> "Every decision of the committee can be locally rationalized as the 
> right thing. We believe that the sum of these decisions, however, has 
> produced something greater than its parts; an unwieldy, overweight 
> beast, with significant costs (especially on other than micro-codable 
> personal Lisp engines) in compiler size and speed, in runtime 
> performance, in programmer overhead needed to produce efficient 
> programs, and in intellectual overload for a programmer wishing to be a 
> proficient COMMON LISP programmer." - Rodney A. Brooks and Richard P. 
> Gabriel

A pretty common (no pun intended) and reasonable criticism of Common
Lisp, which I think epitomizes what most people think is dangerous
about design-by-committee. But then there's Scheme, which IIRC was
also not the result of a single genius giving birth in the dead of
night... and generally the criticisms of Scheme tend to go the other
way, something like: "There's so little in the actual language itself
that every implementation has to add a bunch of things, which means no
Scheme software is really portable across compilers."

In any case, I think there are certainly a lot of different ways
languages can be poorly designed, poorly implemented, poorly
standardized and poorly maintained (and, in fact, I defy you to
identify one language more than a few years old whose
maintainers/standardizers have not at some point irritated and
alienated a vocal segment of its users). Further, I grant that some of
those screw-up modes tend to be associated more with committee-work,
and others tend to be associated more with the lone language despot.
However, I think the boundary between languages designed by one person
and those designed by committee may be something of a red herring.

I believe each language probably has its own individual system for
approving or ratifying changes, and often these decisions are made for 
reasons that may be lost in the mists of history. Saying "X is
designed/maintained by a committee" or "Y is designed/maintained
by Mr. Z" is probably an oversimplification in nearly every
interesting case. By "interesting" I guess I mean, basically, languages
that have a significant user community.


Matt Hellige                  matt@immute.net