Subject: Re: lisp as a day to day language
From: Erik Naggum <erik@naggum.net>
Date: Wed, 20 Jun 2001 23:26:10 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3202068359974614@naggum.net>

* Gerald Doussot <gdoussot@eircom.ie>
> I wonder if I am learning lisp the correct way.

  Probably not.  You seem to take the "tools" approach to programming.
  This works almost like LEGO.  Somebody pretty brilliant somewhere made up
  a lot of components that you could plug together and have loads of fun
  with, but you cannot really construct your own components.  As long as
  you work within the tools world, you are never going to be programming
  anything.  Admittedly, some tasks are now so routinely performed as to be
  suitable to working with tools, but more often than not, those tools are
  written by other tool workers, who are nearly completely unable to do
  serious programming, anymore.  Building tools for tool users to use is
  not exactly rewarding for a serious programmer.  However, it is very,
  very exciting for a tool user to write something in the tool world that
  can act like a tool to other tool users.  It will generally disgust a
  real programmer, but what the hey, it is only used by tool users, anyway.

  Common Lisp is not a "tool" language.  If people used Common Lisp to
  write their programs, they would not _need_ to build the stupid tools
  that e.g., the Perl community needs.  However, you can drag any rat out
  of the sewer and teach it to get some work done in Perl, but you cannot
  teach it serious programming.  Who was it that said "Learn Programming in
  10 Years" as an alternative to all the "dummies" books out there?

> If I had to process large amount of file, connect to database or program
> for the web, I would be using perl, C, php etc...I would be afraid to do
> the same in lisp.

  And rightly wo, in my view, because if you did it in Common Lisp, you
  would realize at least one of several really uncomfortable things: (1)
  The way people store "information" in files is so approximate as to make
  you crazy, (2) Those who use databases usually do so because they master
  no data structures of their own, and (3) Programming for the Web is so
  insanely boring and incredibly worthless work that you would find
  yourself inventing at least one new language to do it for you.  However,
  given some massively inferior "tools", you can get sufficient challenge
  and fun out of a day's work that you never get your head above the water
  and see what is really going on: An industry-wide job-creation racket
  caused by really retarded managers who are desperate not to rely on the
  competence and loyalty of people they are too stupid to understand what
  are doing, anyway.  It used to be that computer people were really smart,
  but recently, I would encourage anyone whose intelligence is 1 standard
  deviation above the mean in his community to stay _away_ from computer
  science.  It is _dreadfully_ boring to work with computers both in the
  Perl and the Windows paradigms.  It is a complete waste of talent to put
  good brains to use in this field at this time.  Largely due to the way
  the "tools" communities grow.

  A few years from now, programming will have been revolutionized and lots
  and lots of work will be done by software that writes itself.  _This_
  will requrie massive talent and intelligence and thinking outside the box
  and what have you, but for the time being, programming is a "consumer"
  job, "assembly line" coding is the norm, and what little exciting stuff
  is being performed is not going to make it compared to the mass-marketed
  crap sold by those who think they can surf on the previous half-century's
  worth of inventions forever.  This will change, however, and those who
  know Common Lisp will be relieved of reinventing it, like the rest are
  doing, even in the "tools" world, badly.

> I've got this feeling taht lisp is powerful but I am not sure I am seeing
> its true power.  For me right now, Lisp is good for prototyping but not
> for day to day stuff.

  I think this is because you are _only_ prototyping, even in those other
  languages you use.  Writing a serious application in Perl is simply hell
  on earth.  Writing it in C these days is worse than insane.  All the crap
  you have to deal with from other "tools" surrounding yours makes it so
  hard to do useful _original_ stuff in any of those languages that people
  will resort to plugging together LEGO components and be happy with
  whatever they make.

> What do you think of this last statement?

  If people did their day-to-day-stuff in Common Lisp, 75% of the work
  force in IT would be out of work, those who were left would be very well
  paid, and the rest of the economy would get back on track and make money
  instead of paying "IT consultants" (like myself :) to do idiot chores
  because the managers are from the 15th century in their understanding and
  appreciation of what makes computer _professionals_ work well.  All this
  crap about "information technology" and any goddamn cave-dweller has a
  better grip on what constitutes information and how best to use it in his
  actual life than 99% of those who think they are doing anything useful in
  this field.

  Using Perl and those other "tools" languages, you get very good at gluing
  LEGO parts together, and that definitely is useful in this current day
  and age, but if you start to use Common Lisp seriously, you realize that
  what you are doing is retarded, an obscene waste of both your own and the
  users' time, and actually effecting the economy _negatively_ because you
  do more information destruction than information processing when you chew
  on those large files and databases instead of trying to figure out what
  the _real_ problem that people are so desperately _not_ solving is.

> Is this because the documentation available to the lisp programmer is not
> very easy to find compare to other language?

  No.  It is simply because writing software in Common Lisp is so much more
  fun and inspiring than gluing LEGO pieces together that those who can do
  it move out of the "day to day" stuff as quickly as they can and leave it
  to the Perl-droids who, probably for lack of any real education, think it
  is fun and rewarding.  For as long as it lasts.  Kids and ignorants can
  be tricked into doing almost anything for peanuts, but computer _science_
  is not about employing as many kids and ignorants as possible, it is
  about finding that one person who has the brilliant idea that obviates
  all the menial labor that billions (soon) of people are currently making
  the most costly experiment in flawed technology evolution management the
  world has ever seen.  The last time management did something similarly
  staggerinly unintelligent, they abused their labor force so much they
  formed unions and invented socialism and communism to take their power
  away so they could not abuse it on innocent people.  We are moving into a
  new "slave labor economy" where young, inexperirenced people continue to
  be such a formidable and employable force that technological development
  will go backwards over the next few years.  Brilliant advances in hardware
  (which are done by _very_ few people compared to the software world) will
  make it less and less relevant to be a good software designer, and so few
  people will be able to construct anything _efficient_ that problems that
  cannot be solved in hardware will remain unsolved for sheer lack of talent
  in thinking about complex problems.

  If you are _not_ crying and ready to leave your job and go fishing or
  hunting or something, take heart: Just do your boring day job in Perl or
  whatever, and study Common Lisp like your future depends on it.  You will
  be part of the New Renaissance of Computer Science.  Remember: Tools are
  for people whose most prized asset is their opposable thumb.  Common Lisp¹
  is for people whose most prized asset is still their brain.

#:Erik
-------
¹ I could have said "Lisp", but then somebody would be hell-bent on
  believing I had included Scheme.
-- 
  Travel is a meat thing.