Subject: Re: CLOS is hard. Let's go shopping (Was Re: Lisp in Python) From: Erik Naggum <email@example.com> Date: 28 Sep 2002 15:58:01 +0000 Newsgroups: comp.lang.lisp Message-ID: <firstname.lastname@example.org> * 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 /religious/! -- 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.