Subject: Re: CLOS is hard. Let's go shopping  (Was Re: Lisp in Python)
From: Erik Naggum <>
Date: 28 Sep 2002 15:58:01 +0000
Newsgroups: comp.lang.lisp
Message-ID: <>

* Jeremy H. Brown
| I haven't read Keene's book,

  You really, really should.  Several people, myself included, have found that
  the apparent complexity of CLOS was a result of being bombarded with the
  whole complexity up front, but with that thin book, the pedagogical steps
  that were missing were presented in an orderly fashion.  After you have read
  Keene and have spent a little time experimenting with the concepts, like a
  month of spare-time-hacking, go read the full specification.  It wil make
  sense like a revelation.

| I've always gotten frustrated with its complexity while reading the spec and
| wound up ignoring most of it.

  Many people do that with accounting laws and principles, too.

| So I think that'd be my major complaint in a nutshell: it's extremely
| complex.

  No, it is not.  It is just complex, and you have decided not to deal with it.

| (I mean, my God, it's almost impossible to figure out exactly how multiple
| inheritance actually works out; who can truly claim to have mastered that?
| Not many here, I'll wager.)

  Bullshit.  The class precedence list is easy to compute and inspect.

| Method combination is another point of confusing complexity.

  Bullshit.  It is amazingly straight-forward and almost completely free of
  surprises for something that powerful.

| before, after, around, etc...

  Extremely elegant.

| it's easy to make it nearly impossible for someone coming to the code as a
| reader, rather than an original author, to figure out where a program's
| control flow really goes.

  That is a factor of the intelligence, concentration, dedication, and general
  skills of the programmer and has nothing to do with CLOS.

| Where those hypothetical others and I disagree is almost entirely religious
| in nature: where lies the point of diminishing returns?

  Yeah, let's drag in "religious" while you are /not/ arguing.  No wonder you
  refuse to apply yourself to understand it.  I mean, my God, it's /religious/!

| Where does added power get overwhelmed by added confusion?

  Confusion is the result of less understanding than is required to deal with
  the tasks at hand.  If you have seriously tried to understand this and have
  failed, maybe you should just leave it to others?  You have, obviously, never
  seriously tried, or you would never, /ever/ have brought up "religious", so
  this is only an instance of /fear/ that you might not understand it, /fear/
  of watching the time spent go unrewarded, /fear/ that you are not smart
  enough to grasp it.  Snap the hell out of it and start working on it!

| It is merely my opinion that CLOS' complexity overwhelms the advantages it
| enables.

  Life in general is overshelmingly complex to people who refuse to do their
  homework.  I mean, my God, have you looked at those tax laws recently?
  Better ignore them and claim that the IRS folks are "religious" and that the
  whole system is so confusing you should be relieved of having to deal with it.

| I'm certain that for some people that's not the case, and so we come to
| questions of how many people, what type of people, etc., should have how much
| difficulty with mastering CLOS (or any language feature), and that way lies
| madness.

  Have you looked at superstring theory in physics?  That's complex.  That's so
  complex I cannot seem to remember how things interrelate between each time I
  sit down to study it.  But to people who work with this stuff all the time
  seem to have no problems dealing with the complexity.  Should I attack their
  theory for being too complex for me to understand because I would sort of
  like to, as a hobbyist science-philosopher kind of guy?

| But anyhow, that's roughly why I think CLOS is hard to master.

  These thoughts hold you back.  Please be so decent as to avoid letting them
  hold other people back, as well.  Lazy people tend to look for excuses not to
  work, and if some other lazy person can tell them "I tried, I failed, but
  look at all the trouble /that/ got me into!  *snicker*", they will be very
  happy because now they can rationalize their laziness.  I mean, my God, it's

Erik Naggum, Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.