Wednesday, March 12, 2008

Note to Bruce Eckel (regarding lisp)

On page 24 of 'Thinking in Java', 4th edition, Bruce Eckel writes
The alternative to modeling the machine is to model the problem you're trying to solve. Early languages such as LISP and APL chose particular views of the world("All problems are ultimately lists" or "All problems are algorithms")


I strongly disagree with this statement. Lisp is not about looking at problems as lists, at all. It just happens that a list is simply the most basic organisational unit. (well actually, a cons is). And lisp is all about building new abstractions on top of things that are less abstract. And lisp's macro is where it's true power lies.

Wether or not lisp is a good language for the Real World(TM), is an entirely different question. But in terms of 'modeling the problem you're trying to solve' I believe there is no language more powerful than common lisp or something similarly lispy (like scheme, though scheme seems even more powerful yet even less fit for the Real World)

For those out of touch with Common Lisp, let Practical Common Lisp be your guide. Read the first 9 chapters. (7, 8 and 9 are where it gets interesting)

No comments: