Subject: Re: basic package question
From: Erik Naggum <>
Date: Sat, 20 Apr 2002 11:56:27 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* "Paul F. Dietz" <>
| The default readtable has readtable-case of :upcase, but you might want
| to change that -- or have it changed out from under you in the future by
| some vendor -- and the code I described would work regardless.

  Paul, you have solved the wrong problem and have just created another,
  much more serious one: fear of trusting the standard.  This is a very
  contagious fear and once started, can cause you to become paranoid in the
  extreme about trusting a language standard.  Bugs in implementations are
  no longer bugs, they _may_ be intentional violations that you have to
  take into account in much more serious ways than bugs -- they are likely
  to last.  Some vendors want you to live in this fear all the time, but
  the primary such fear-monger is fortunately not interested in Common
  Lisp.  In my view, it is not a good sign at all when a vendor works
  against the community standards, and almost even worse when they give you
  a choice of departing from the standard with them or not, especially when
  you sort of have to depart with them to get their new features.  I am not
  at all impressed with these tactics and their effect on people, which is
  why I have spent a huge amount of time trying to find alternative
  solutions that do not cause people to live in fear and engage in counter-
  measures to prevent painful brushes with vendor-initiated violations.

| Yes, I remember which side of that long thread you were on. :)

  The "side" Kent and I are on is: as a vendor, DO NOT VIOLATE THE STANDARD
  just because you have a personal opinion or grudge against the committee
  decision to use upper-case symbol names.  It is essentially arbitrary,
  and if you need a different solutions, make it coexist with the standard.

| As a user, I do something protective like that just so I'm not
| potentially screwed if for some reason it does change.

  You mean, if your vendor is not particularly interested in letting you
  continue to work with ANSI Common Lisp?

| This doesn't indicate I want it to change, but if some vendor has made
| noises that suggest it may want to do that I am going to be careful.  The
| cost is minimal.

  The cost should be zero.  If your vendor makes fully conforming code stop
  working, they have transferred the cost of their decision to you.  If
  they do this to you, you have to weigh that cost against the cost of
  using a different vendor.

  I believe I have found a way to make the cost exactly zero to programmers.
  It does require some investment by the vendors, however, but this is how
  responsible people generally do language development.  What has taken me
  so long is figuring out how to make this investment small enough and the
  obvious benefits large enough that people will want to make make it.

  My _personal_ opinion is _also_ that lower-case symbol names look far
  more "modern" than upper-case symbol names, but I actually value my own
  professionalism towards specifications much higher than my personal
  opinion, so I have to accept that the symbol-names are upper-case until I
  can convince people that the specification should be changed, and when it
  is changed, that no previously conforming program would break.  To make
  this even more palatable to users of other implementations than those I
  have the ability to influence, a solution has to be made available that
  all users can load into their Common Lisp systems and expect to work.  I
  care enough about this issue to have spent a few months on this rather
  than just go ahead and violate the standard by flipping the case of all
  the characters of all the symbol names in the Common Lisp image and ask
  the rest of the world to deal with it.

  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.

  Post with compassion: