Subject: Re: Barriers to Lisp acceptance - a "survey" question
From: Erik Naggum <erik@naggum.no>
Date: 1999/02/25
Newsgroups: comp.lang.lisp
Message-ID: <3128923412064097@naggum.no>

* Steve Gonedes <sgonedes@worldnet.att.net>
| The whole idea of marketing crap software seems to be based on selling
| limitations as benefits.  Lisp just can't compete very well on this level
| I don't think.

  well, marketing crap software is more about selling a better tomorrow
  than anything else.  the whole "new version" drive is about having people
  believe that the next version will somehow improve things.  as long as
  they have a next version dangled in front of them, they keep working with
  their present tools, _expecting_ the pain to end with the next version,
  or the next version after that.

  if you can make people _believe_ in tomorrow, they'll accept _whatever_
  today has to offer.  many religions may well be based on this principle.

  however, if what you have today is basically the top of the line, the
  opportunity for a belief in tomorrow as the relief of today's pain is
  gone: if it's painful today, it is likely to be painful tomorrow, too,
  and thus we have people bitching and moaning about FFI's and DEFSYSTEM
  and sockets and runtime licensing and "Lisp is dead" and all those
  extremely useless things compared to what other languages go through.

  I have also come to believe that the desire to see thing "standardized"
  comes from this lack of a belief in a better tomorrow.  if there is no
  better tomorrow, let's at least create a perfect _past_, instead, and
  that's what proper standards do.

| What I get upset with is when people invest _so_ much that their brains
| warp or something and they think that the original limitations are
| actually _desirable features_!  Don't understand how this happens, but
| this seems to be a reaction of fear in losing on their investment.   How
| many business people would invest lots of money, lose their investment,
| and continue to invest more money?  Why do people do this with software?
| Writing programs is so difficult.  Sigh.

  well, if you do something good and get rewarded for it every time, you'll
  get disappointed the first time you don't get rewarded, as if it were an
  actual signal that you were doing something wrong, and you try something
  different right away or maybe after ensuring through one or two attempts
  that you don't get rewarded, anymore: the world has changed, and what you
  do now has changed from good to indifferent or bad.  (if you can figure
  out why, a sense of efficacy reinforces your "do good - get rewarded"
  behavioral pattern.)  however, if you do something good and you get
  rewarded for it randomly and you very seldom get reprimanded for any bad
  things you do, lack of reward is a _reinforcer_ to keep doing the same
  thing over and over because you will _eventually_ get a reward, and then
  it'll all be worth it.  prayers work this way: if you pray for something
  and nothing happens like a million times, but then something close enough
  does, it wasn't coincidence -- your prayers were actually heard, and now
  you can pray for other things, and they'll eventually come true, too, if
  you pray sincerely enough or do whatever you can be duped into doing by
  some manipulative, evil person who exploits your lack of understanding of
  statistics.

  in other words, if you get what you deserve every time, your reaction
  pattern will be extremely well adjusted to whoever rewards or punishes
  you, but if you get random signals or no signals at all, you have to
  generate your own feedback, and this is how all psychological problems
  start if the feedback loop is out of tune with what's really out there.
  since programming is basically devoid of feedback from anything but the
  computer, a programming environment with random feedback will attract
  more users than one with consistent feedback.  another psychological
  aspect to programming is the time distance between action and reward.
  the reward or punishment may be consistently delivered, but after a
  random time, like a very frustrating random crash or bug.

  the clue to whether an environment succeeds, I think, is whether it
  manages to make people believe that they will get rewarded for doing the
  right thing, however, with sufficient randomness in delivering the reward
  that the users think that the system isn't always responding without that
  being their fault.  when it works, it's like a prayer come true, and
  people will refer to the stuff that works in religious terms like
  "incantations" instead of simply "commands" or "code".

  Common Lisp environments fail this test.  in safe mode, every error is
  reported, so you get punished consistently, you get a value (reward) from
  almost everything you do and you can predict when you won't get it, so
  the entire Common Lisp world is one that appeals to a certain type of
  people who, I believe, thrive with competent colleagues who demand and
  respect a consistent quality from their performance.  in contrast, C++
  and Perl and Windows and the other useful crap out there attract people
  who have non-caring bosses and incompetent colleagues from whom accurate
  feedback is a very rare thing, indeed.  I also believe that these tools
  _create_ that kind of working environment and that the introduction of
  Common Lisp to such environment poses a very significant threat to the
  prevailing belief systems, not because of any actual investments, but
  more like it would be to convince very religious people that their God is
  a figment of their own imagination.
  
#:Erik Covenant, the non-believer