Well, my last post generated a fair amount of feedback. I was surprised at how well the choice of using Traveller for a coding example went over. Two people on reddit up modded it just for that reason, while a guy on del.icio.us simply tagged his link with “has an example of Traveller world generation– kickass.”
While it was apparent to the hard core Lisp crowd that I “wasn’t very experienced in Lisp,” the old timers had to “give me credit for trying.” One lisper give me “props for implementing [my] own infix syntax instead of complaining about prefix syntax on Usenet.” This slightly patronizing response is actually a step in the right direction: the last time I ended up with a “hawt post” my poorly crafted ramblings (peppered with hyperbole no less) spawned a minor language war that forced a more experienced lisper to come in and set the record straight. Even Paul Graham had to drop in to correct my code! I was clearly out of my depth back then, but I at least learned in the process that a good blog post should be written so that inexperienced readers can easily pick up on what you’re talking about while at the same time you should make sure that expert readers are not put off by imprecise or incorrect language. When I was first writing, I really had no idea who my audience was… or even that I could have one… but apparently in blogging you can find out a lot about your audience quickly.
As before, I continue to (inadvertantly) insult Peter Sieble with my off hand remarks. The discussion of “entry level” Lisp books is not going to go away, so I’ve got to do something about this. I think I will have to try the PCL experiment. It works like this: carefully read PCL from cover to cover. Think up a short project to work through, code it, and then write a blog post about it. Finally, check the feedback on it and try to get a feel for whether or not my techniques are acceptable to the “real” Lisp programmers. If there are fewer patronizing “well, at least he’s trying” type remarks, then PCL must be the mack daddy of Lisp books. 😉
Oh, one last note for those that need an inspiring thought to keep them motivated in their quest to master Lisp. One nit-picker over on reddit had to point out that not only was my technique not limited to working in the Common Lisp dialect, but that I was merely specifying a DSL and then coding an interpreter for it– something that could be done in just about any language! When I answered back that the point was that Common Lisp makes writing embedded languages intuitive and natural even for intermediate level coders, he responded: “Having the foresight, imagination, and experience of implementing a DSL requires a learning curve which is far beyond the average enterprise programmer of today. They are far more likely to consume an entire bookshelf of books about other people’s DSLs than they are to ever construct one.” And that’s why you’re investing such effort into learning Lisp: you want to spend your time mastering skills that will set you apart from the “average enterprise programmer.” Thanks to the unusual features of the Lisp language and the extremely high quality of materials on it by people like Paul Graham, Peter Norvig, and Peter Seibel you can achieve that goal in a matter of months. Don’t give up, guys! Illumination will soon strike you like lighting out of a clear sky!