18 Apr 2001 wnewman   » (Master)

More programmers should read Martin Fowler's _Refactoring_.

There is always one more bug.

Bach is excellent. The Dallas Bach Society is also excellent. I can't believe that I missed their last concert. Seeing Murray Perahia last night was not an adequate substitute. But I shouldn't be so negative, because a lot of that concert was pretty good too.

tbmoore, olandgren: Paul Graham's Lisp books are excellent, but I don't think his OO stuff is up to the standard of the rest of the books. His illustration that it's remarkably easy to hand-roll an object system in Lisp is very good, but he doesn't IIRC say anything useful about getting your mind around CLOS, and what he says about OO being like spaghetti code is IMHO seriously misleading, so much so that I wonder whether he might be clueless about this area. (OO stuff adds regularities in your code, spaghetti code doesn't. If the regularities match regularities in the problem or solution space, it can be a big win. For that reason OO techniques are more like structured programming techniques than spaghetti code. Of course, it's different too. Structured programming is applicable to 90+% of problems while OO to only maybe 40% of problems. A substantial proportion of the regularities that OO captures live in the problem space, while 98+% of the regularities in structured programming live in the solution space. And that it's much more tedious to hand-code OO constructs in a language which doesn't support them than it is to hand-code structured programming constructs in a language which doesn't support them. And probably other differences too..)

I already recommended Keene's _Object-Oriented Programming in Common Lisp_ in email to olandgren. It's good for illustrating the unusual approach that CLOS takes (multimethods, nested INITIALIZE-OBJECT methods with &KEY arguments, all the :AROUND/:BEFORE/:AFTER and other method combination flexibility, etc.) which is important when going to CLOS from a a C++/Scheme background.

Norvig's _Paradigms_ book is also very good in general, but I don't have an opinion of the CLOS section one way or another because I already knew CLOS by the time I got the book.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!