Subject: Re: MD5 in LISP and abstraction inversions
From: Erik Naggum <>
Date: Fri, 09 Nov 2001 10:38:59 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* Kent M Pitman -> Marc Spitzer
| In what way would this be any different a question if asked about
| functions and not macros?

  If a Common Lisp programmer insists on using C's standard library names
  for his string functions instead of the standard Common Lisp ones _and_
  argues that those who use the standard functions are nuts, I think there
  would probably be the same kind of uniform rejection of this stupidity as
  what appears to be building towards the limited IF* crowd, not primarily
  because of the specific idiotic new "feature" that nobody needs or wants,
  but because of the sheer irrationality of the whole endeavor and because
  of the incredible _arrogance_ exuded by those who thus reject the whole
  community they _pretend_ or may even helplessly _want_ to be members of,
  but are in fact rejecting completely.  It is that initial rejection of
  the community, the pretentious arrogance of one who thinks he knows so
  much better than everybody else, and the holier-than-thou attitude when
  criticized that comes from both of the former attitude problems, that
  _really_ ticks people off.  It is no longer about some stupid invention
  of a macro or a function or a new sub-language, it is about the lack of
  willingness to yield in traffic as opposed to a willingness to run into
  people on purpose because one thinks one is a superior to others -- it is
  the _exact_ same process that makes people become criminals.

  It is actually a good thing to have lots of people argue vociferiously
  for and defend a community standard because it shows that the community
  comes before the person, but it is a really _bad_ thing to have someone
  argue vociferiously _against_ community standards, especially when the
  only reason for doing so is that those very few who argue against it
  subjugate community interests to their own ego, even more so when it has
  become badly bruised in a battle over its anti-community tactics.

  At issue is not the specific new "features", whether they be macros,
  functions, or anything else, it is simply a rejection of someone who has
  decided to be an outlaw and force his own way regardless of consequences
  instead of trying to work within the law to make people agree with him
  how to make a better world -- probably because he realizes that it would
  in fact not _be_ a better world if he did not rule everything in it.

  I have long had an interest in law and the philosophy of law, but with it
  comes an interest in why people choose to abide by or violate a law, or
  even ethics.  Everybody has their own ethical standards which come into
  conflict with the law or at least other people's ethics at various points
  in their lives.  The really _big_ question is whether you are the kind of
  person who realizes that the only thing the law and ethics _really_ say
  is what is _wrong_ or you are the the kind of person who (mistakenly)
  believes that law and ethics tell people what is _right_.  The latter go
  on to be quite the intolerable moralists who want people to follow a
  specific path (i.e., whatever path they have chosen, and the two usually
  become conflated) or else they are doomed sinners upon which all evil can
  be hurled in a "defensive" action.  The former find it interesting how
  people choose among a very large number of ways to go about their lives,
  but may also be intolerant of those who, by breaking law and ethics and
  taking both in their own hands, make it harder or impossible for others
  also to choose their own ways.  It is threfore quite illuminating how our
  perpetrator continues to argue that he is within the law and community
  ethics when he does something he can have no doubts at all the community
  has resoundingly _rejected_.  The lack of willingness to stop doing,
  indeed, the insistence on _continuing_ what the community has disapproved
  of is precisely what defines the criminal mind.

  Law and ethics are wisely set up by lots of smart people working very
  slowly to ensure that proper procedure is followed, resulting in both
  being _vastly_ smarter than the average joe, in order to ensure that
  _very_ different people can live together under the same rules without
  needing special privileges for particular groups, which was the general
  situation before these intricate procedures were followed.  "Equality
  before the law" is definitely not in the _personal_ interest of most
  people, who would rather get a break than be held responsible for their
  actions.  (Punishment also does not work on those who do not understand
  what happened to them, only the threat of punishment does, although it
  can take an initial actual punishment for some people to "get it", but
  without real punishment, there is no threat, so this is a very hard
  problem to resolve.)

  What defines a community is in part its process of agreeing on its laws
  and ethics and other standards.  We have a language standard that should
  have united us.  Because of some lunatics who value being rebels higher
  than a working community, this is not quite so, and we still have to
  fight battles over what the community standards-setting procedures are.
  In essence, it will be fought over whether some nutcase can publish a
  "Coding Standard" document where he ridicules and undermines the standard
  that the community has in fact agreed upon and which thus rejects the
  community _and_ get away with it through stubbornness and sheer tenacity,
  or whether the community rejects this nutcase and moves on, despite the
  everpresent lack of _total_ agreement with any community standard.

  Some people will always disagree with some part of what has been agreed
  upon for a large population, and there are many reasons for this, but the
  real question is not what people disagree with, not with what they do
  when they disagree, not with how they plan to "convert" people to their
  ways, but with whether they wish to maintain a respect for that community
  standard or seek to destroy that respect and thus obliterate what holds
  the community together.

  This is not about some language feature or another, which, typically and
  predictably, the perpetrator will continue to whine that it is.  This is
  about how we wish to hold a community together.  There is no doubt that
  this insipid if* macro stunt is fragmenting the community like nothing
  else, despite the perpetrator's propagandistic lies about loop, which is
  the object of another of his destructive machinations.  The _only_ issue
  is whether the perpetrator can manage to stop fragmenting the community
  when he realizes that that is precisely what it does.  So far, all we
  have seen is an _increasing_ arrogance and even more stubbornness in his
  fight against the community.   Clearly, this nutcase/perpetrator values
  his protest _much_ higher than that which he knows that he is destroying
  in the process.  That kind of destructive attitude cannot be tolerated.

  If the nutcase/perpetrator had been willing to back down early, this
  would never have gotten to be such an issue.  It has become an issue only
  because he does _not_ back down.  Now he cannot back down because he
  would lose his personal prestige doing so, wrecking his "standing" among
  whoever still supports him.  This is pretty pathetic, but that is how
  things evolve when you are _wrong_ and are prevented from realizing it in
  time for personal and highly irrational reasons.  We must expect the
  perpetrator to protest his innocence too much and continue to pester the
  Common Lisp community with his bogus claims about the standard and how
  the language and the community should welcome his stupid stunt.

  Finally, if* has already become a symbol for the clueless rebels, but the
  likelihood that whoever initially thinks that stupid macro is a good idea
  will stick to it as they see what they are buying into by using this
  symbol of anti-standard, anti-community, childish rebellion against
  authority, will also decrease, hopefully further isolating the rebels.

  I have used an Emacs Lisp function to transform if* into an if, cond,
  when, or unless form as deemed appropriate through some simple measures,
  but it needs tweaking to make it work better.  It reverts the form to the
  bogus if* form when saving the file, unless it has been modified so as
  not to affect patches and other updates to the code from people who have
  yet to rid the code of the bogosity.  It should probably also realize
  when the if* nonsense is really trying to macroexpand a case, typecase or
  any of the other numerous much better ways of expressing things than an
  overly verbose and poorly formatted list of elseifs.

  Norway is now run by a priest from the fundamentalist Christian People's
  Party, the fifth largest party representing one eighth of the electorate.
  Carrying a Swiss Army pocket knife in Oslo, Norway, is a criminal offense.