Subject: Re: the "loop" macro
From: Erik Naggum <erik@naggum.net>
Date: Wed, 29 Aug 2001 05:25:39 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3208051533652127@naggum.net>

* John Foderaro <jkf@unspamx.franz.com>
> Does anyone else feel that I don't have the right to define my own macro
> to express the conditional statement?

  That is not the issue.  Such rights have never been questioned.

> Does anyone else feel that I don't have the right to criticize: if, when,
> unless and loop?

  That is not the issue.  Such rights have never been questioned.

> If it's antisocial to extend the Common Lisp language ...

  That is not the issue.  Nobody has ever even indicated that as the reason.

> An extension that big puts my little if* to shame.  Surely someone who
> designs something like that is the most antisocial of all.

  To those who have studied criminology and recognize the behvioral pattern
  of somebody who is determined not to understand why what he has done is
  under criticism, your chosen line of defense is the most incriminating
  and revealing.  You did this the last time you tried to defend a piece of
  buggy code, too, and it showed us that John Foderaro does not back down.
  Clearly, having the right to denounce the standard that your company is
  asking its customers to trust it to implement for them is more important
  than realizing that by your denouncing what people want to purchase from
  you, you undermine your own livelihood.  Further, distancing yourself
  from the process and pretending to be a victim of conspiracies against
  your "superior solutions" indicates that the standardization process,
  which people trust to produce standards that vendors are supposed to
  agree to implement, is actively _distrusted_ by you and by Franz Inc.

  The message you send is not "we have something better", but instead "We
  hate Common Lisp as it became standardized by a bunch of morons, but do
  come talk to us if you want an implementation of that crock of shit."

  Apparently, you fail to understand that you can improve upon something
  without denouncing what you improve upon.  You do not make something that
  is better than what people already like -- you have to make them hate
  what they have in order for what you have done to be better.  Such is not
  actually improvement -- it is the childish game of "not invented here".
  This is the dangerous part of your personality and what I react to most.
  The dangerous _consequence_ is that you are fully willing to sacrifice
  your professionalism and other people's trust in your competence as a
  programmer with a serious vendor to your personal opinion about matters
  of _zero_ importance to the future of Common Lisp and its market share
  and ability to solve real problems.  Clearly, it is much more important
  to vent your spleen about if, when, unless, and loop than to help build a
  business case for Common Lisp and to help attract people to the language
  ("Use Common Lisp and come join the Common Lisp community and take part
  in the hate campaigns against the best language on earth.").

  Clearly, you do not appreciate that my trying to push Common Lisp to
  people who have the money and the trust in me as a consultant that could
  land Franz Inc another large contract should cause you to beam with love
  for the language your products implement, but instead you spend your time
  denouncing the standard and the process that created it, creating the
  very strong impression in every reasonably intelligent reader of your
  rantings about language misdesign that you have gone elsewhere yourself,
  so why should anyone new to the language ever stick with Common Lisp?

  You will probably never understand this, since you continue to believe
  that you are "innovative" the same way Microsoft is, but the way you ask
  people who actually happen to like Common Lisp to hate it insteead, lest
  they be branded religious zealots and worse, is telling people to stay
  away from John Foderaro's sick mind and anyone who keeps him employed in
  a position where his blind hatred for irrelevant features causes him to
  write and publish buggy code and refuse to understand that it needs to be
  fixed because he thinks the problem is in the specification.

  It is not your changes that causes me to react.  It is your arrogance.
  It is not your desire for improvements more to your liking that causes me
  to react.  It is your intense denunciation of everything that I need to
  entrust my own livelihood and professional reputation to your products.
  It is not the fact that you are a deranged lunatic that makes me want to
  terminate my business dealings with Franz Inc.  It is the fact that they
  keep a deranged lunatic employed in a position where his utter lack of
  professionalism and professional integrity may cause serious damage to my
  own or my client's software in a production setting where bugs you have
  introduced because you do not consider my trust in the specification you
  distrust a valid concern or a reason to write correct code or to fix
  bugs, and hence I will lose money and possibly face lawsuits if I _do_
  trust you.

  I am a businessman, John Foderaro.  You are not.  I deal with people's
  trust in me and my competence every single day.  You have never grasped
  that I question your trustworthiness.  To my paying clients, the only
  thing that matters is my professionalism.  They do not care whether I
  have personal opinions about the products we use or not.  I may thus love
  Allegro CL _personally_ and I may grief in _private_ about the idiocy of
  your self-destructive behavior, but I would be criminally unprofessional
  if I asked a client of mine to invest USD 100,000 in my love for a
  product that cannot be trusted to perform as required by specification
  for such a fantastically stupid reason as one idiot engineer giving a
  higher priority to his dislike for language features over correct code.

  This is a bigger issue than you appear able to understand, John Foderaro.
  Nobody cares what you think about if, when, unless, and loop when they
  face a delay in deployment because of one of your bugs.  Nobody cares
  about your silly coding standards when a project folds because a feature
  in the specification is not supported for "political reasons".  We have a
  standard, and nobody cares where it came from, God, Devil, committee, or
  John Foderaro, but everyone in the kinds of businesses I deal with care
  that it is actually and faithfully implemented.  Based on the evidence
  that you provide about your priorities for Common Lisp and your own code,
  I _must_, because I am a professional, decline to suggest that people who
  would be willing to invest several hundred thousand dollars over the next
  few years on their trust in my word, invest it in Allegro CL.

  In short, your insistence that you be allowed to denounce the standard,
  the standardization process, us "zealots", and everyone who disagrees
  with your fantastically stupid "improvements" and "coding standards", has
  a pretty hefty price tag.  Your employer needs to understand that your
  desire for a John Foderaro Lisp instead of a Common Lisp has caused me, a
  fairly strongly devoted fan of Allegro CL, to abandon Allegro CL as the
  choice implementation platform.  I do not personally consider there to be
  viable alternatives, which means that we will probably use a different
  language.  Now, this has not just happened this once, the last time we
  had a fight over your prioritizing your personal opinions over correct
  implementation of specified language features, I did not even bother to
  waste my time arguing for Common Lisp.  That project went with Java,
  simply because I was too personally exhausted by your idiotic behavior to
  want to fight for Allegro CL.  I know I could have won that project.

  The question I put towards you, John Foderaro, is this: Does it matter so
  much to you to be able to denounce that which people come to you and to
  Franz Inc to purchase that you are willing to let go of customers who do
  not like that denunciation and who get the impression that you will do an
  unprofessional job if asked to implement something you have some personal
  issue with?  If it matters that much to you, good riddance to both you
  and Franz Inc.  If you can get through your thick skull that maybe you
  can get what you want if you back down and start to behave professionally,
  maybe, just _maybe_, it is possible to get Franz Inc to take conformance
  seriously and actually put fixing deviations from the specification on
  top of the list of prioritized tasks and thus help rebuild its trust.

> You readers of this newgroup set the tenor of the lisp community.  Shall
> it be as Erik wants where criticism of the standard is squelched, that
> new ideas are forbidden?

  That is not the issue.  That is not what I do.  It is not criticism that
  you engage in, it is a political campaign of distrust in the process that
  created the standard.  If it were criticism, you would respect the
  process and its results.  You do neither.  If it were criticism, you
  would trust the process to yield better results with better input.  You
  very obviously do not believe this, but instead take it upon yourself to
  do what you will, regardless of process or procedure.

> You the lisp community has to decide.  Erik may speak the loudest but
> don't be put off by that.  Speak your own mind.

  Yes, let us see a show of hands from the all people who do understand the
  issues of trust, conformance, respect for procedure, and compromise in
  order to gain something _higher_ than immediate personal satisfaction.

  I used to have doubts that you were mentally incapable of understanding
  the issues that surround your antisocial behavior and your strong disdain
  for the community standardization process, but I have been forced by the
  sheer mass of evidence that you yourself provide to conclude that you do,
  in fact, not have the mental apparatus to understand what standardization
  means for a community and for the trust one may have in products.  The
  concept of trust in professionalism is probably also forever beyond your
  reach as you continue to behave in the most _unprofessional_ way I have
  seen anyone in any community ever do.  Your immense lack of honesty and
  personal integrity when it comes to representing the views and opinions
  of others contributes to your lack of understanding of what other people
  are trying to address.  This are further strong indications of a deeply
  antisocial personality.  Your behavior in regard to the case issue and
  the line of defense you choose when under criticism for your rampant
  disregard for community "compromise" in favor of "John Foderaro's way",
  whatever the cost may be, indicates that you are incapable of dealing
  with more advanced concepts of cooperation than "do it my way or no way".
  Since this is also how you interpret any criticism towards you, it seems
  highly unlikely that you have the ability to understand what the issues
  are surrounding your conscious and willful destruction of the public
  trust in Franz Inc's commitment to implement a conforming Common Lisp
  implementation and the construction of a reciprocal distrust towards the
  antisocial behavior of Franz Inc when it comes to breaking the standard
  in order to push some miniscule changes for personal reasons.

  I concluded that I could not trust you or _any_ of your code when you
  flat out _refused_ to recognize the bug in the piece of code you posted,
  because I understood the full implications of your political agenda: It
  is more important for John Foderaro to denounce people than to help me
  and anyone else who wants to make money programming in Common Lisp with
  Allegro CL.  It is fairly obvious that I have the exact reverse priority.

  And people wonder why Common Lisp does not "win"?  It is not because of
  the language, it is because of the self-destructive morons in this
  community who think it is conducive to their personal goals to denounce
  and ridicule and fight the common goal.  John Foderaro and his case,
  pathname, character vs integer, if-when-unless, loop, etc, etc, issues.
  Bruno Haible and his large bunch of issues.  Paul Graham and his bunch of
  issues against the language.  People who appear, on the surface, to have
  done good work for Common Lisp return time and again to denounce the
  language, its community, and everything that _could_ bind us together.
  Why would anyone in their right mind want to use Common Lisp when the
  people who do (seem) use it are so negative towards the language?

  Over the years, people have asked me how I can make money at all doing
  the things I do for a living.  I have always been way, way off mainstream
  and still made a reasonable living.  I think the reason is pretty clear:
  I love what I do and do what I love.  People pick up on it and trust me
  professionally because of the fact that I have a high personal investment
  in what I do.  Likewise, I think people pick up on those who hate what
  they do and do what they hate.  Judging from the behavior of a large
  number of Lisp people, it seems clear to me now that the problem we have
  is that people do not love Lisp and the do not use it, because it is more
  important to them to hate some miniscule little misfeature than to love
  the whole of it and live with the "warts", if any.  It also seems to me
  that people are reluctant to leave, but prefer to hang around and be
  nay-sayers and negative influences on those who _want_ to like Lisp.  We
  see it from people who come here, too, they pick up the negative attitude
  towards the language _very_ quickly.  I am probably very fortunate who
  can do what I do, but I honestly think that if you do not do what you
  love to do, it is because you decided at the wrong time that you would
  quit searching and settle for the money or something.  That is _poverty_.
  If you cannot love more than the money you get for doing something, at
  least be smart enough to love that, and it should be easy to pretend that
  you love your work so you can continue to make money.  If you cannot even
  pretend, why are you not searching for something better?  How much effort
  can it _be_ to learn a new trade or a new programming language?  I mean,
  _kids_ learn these things.  Kids are _not_ smart.  Kids do not have tons
  of experience and stuff that makes things easier to learn.  Kids absorb
  stuff faster than grownups, but they still need a lot of time getting
  used to _working_.  Grownups _work_.  When grownups _want_ to learn
  something new, they do it way faster than kids do.  At least if they are
  pretty intelligent, and Lisp people are ipso facto pretty intelligent, so
  there simply is no excuse for a disgruntled Lisper to hang around and be
  so negative about Lisp.  This makes me wonder what kind of personal value
  it has to a disgruntled Lisper to hang around in the Lisp community and
  denounce the language, the standard, the people behind the standard, and
  nigh everything that says a _positive_ word about either or all of them.

  I trust that people smarter than John Foderaro understand that criticism
  is not the same as denunciation.  Criticism has a fundamental respect for
  that which is criticized and a desire to see it realize a potential that
  it may not yet have realized fully.  Denunciation is disrespect for the
  potential _and_ its realization, however incomplete.  Good criticism will
  always see how the current realization reflects the potential, not deny
  that it does, which denunciation would do.  Good criticism embodies an
  understanding and appreciation of how something came to be, because
  nothing can really be "improved" by first breaking with its genesis --
  that would be replacing a lot more than that which needs improving.  This
  is why "X is broken, here's an incompatible fix" is _not_ good criticism,
  but bad.  Bad criticism presumes that the current realization defeats the
  potential without actually establishing that premise to be true.  (It
  does happen, unfortunately, as it does with attributes in SGML.)

  John Foderaro has made this into an election and a popularity contest.
  My take on this is that people who have nothing better to do than to
  denounce the standard, the process by which it was created, and the
  people who did it, be shot down and thrown out of the community.  Let
  those who _like_ Common Lisp use it, and let the nay-sayers leave us
  alone to do what we think best.  Those who _like_ Common Lisp will have
  lots of ideas for improvement, too, but at least they can trust that the
  other people they sit down with and compromise with are all good people,
  instead of disgruntled nay-sayers who did not get their will last time
  and never got over it.  Maybe there even are things that are broken and
  not well thought out, but if you like the language, you will care for it
  and its users, not chop off parts according to personal distastes and
  scare people off because _they_ liked the part that got chopped off.

  Now I have a Common Lisp application to update with new requirements that
  are easily met before its users get to work in a couple hours.

  And since this is an election: Remember to vote for Common Lisp with your
  heart -- it is the good language for good people.  Remember who _likes_
  Common Lisp when you want to trust people to take care of its future.
  
///