Subject: Re: basic package question From: Erik Naggum <erik@naggum.net> Date: Sat, 20 Apr 2002 11:56:27 GMT Newsgroups: comp.lang.lisp Message-ID: <3228292586535197@naggum.net> * "Paul F. Dietz" <dietz@interaccess.com> | 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: http://home.chello.no/~xyzzy/kitten.jpg