Thanksgiving, Computer Languages

I’m at the in-laws over thanksgiving; no high speed internet or anything like that (posting this over my FIL’s AOL account). I’ve got a lot of reading time, so I’ve been making my way through Practical Common Lisp, whose hardcover I bought back this summer.

My new hosts happen to support Common Lisp as a CGI language, of all things, so the potential to have some fun with it is there.

I’m up to chapter 9.

Some parts of it make me want to run back to my old friend Scheme. The whole “function namespace” thing, having to refer to functions in a non-function-call context #’like-this. Goofy. But it’s a great book, and I’m really enjoying it. Taking it in small enough doses that my attention stays focused.

Finally having considerable real-world programming experience (in Perl) has given me an idea of just how useful something like Lispy macros could be… You can achieve something kind of like Lisp macros using source filters, but it’s far more hassle in Perl and far less powerful.

I also brought my Ruby on Rails book, but it’s not quite as interesting to me right now. Honestly, I know Ruby reasonably well, having played with it in work and home contexts since about 2001. I have never used it for full-time programming work, which would give me a serious knowledge of it, but I’ve used it for a lot of goofy little scripting. But I find Rails kinda hard to understand. I’m gonna have to put some serious attention into that Rails book and play with it a lot to “get” it.

I’m also a little worried about all the megahype Ruby’s getting. Pride goeth before a fall. It makes me kinda queasy to see one of my favorite languages get quite that level of buzz.

But my buddy Jim is interested in acquiring some Ruby-Fu, and he’s schooled in Java, so I wanted to pass along for him this link I found — 10 Things Every Java Programmer Should Know About Ruby. Looks pretty cool.

Catch y’all later.

4 thoughts on “Thanksgiving, Computer Languages”

  1. I’ve spent a good chunk of the past few days immersed in the Ruby on Rails book. I’m very impressed, though I’m also a Ruby newbie. The test will be when I get back to my test apps with the new knowledge I’ve acquired, but every time I’ve found myself thinking “yes, but I need to be able to do X” the next section has covered it.

    The hype is going to hurt Rails, particularly with way too many people touting it as a replacement for Java. But for medium sized web apps, it seems like a great option.

  2. Cool. The Rails book is still calling my name.

    As is Why’s Poignant Guide to Ruby.

  3. The business of using #’ is because Common Lisp is what’s called a “Lisp-2”, a Lisp with separate value cells and function cells. Scheme is a “Lisp-1”. For the best discussion of this topic, see

    Kent Pitman and Richard Gabriel explain it all.

    Here’s one simple thing: There’s a function called “list”, but it’s useful to be able to use “list” as a variable name.

    Common Lisp had to be a Lisp-2 in order to compatibly run the vast majority of existing Lisp code that existed in the ancestor dialects. We didn’t have any real choice in the matter. It was highly controversial, nevertheless, during the original Common Lisp design.

  4. It makes sense in retrospect I guess — and it *would* be nice not to have to use “lst” as the name of a variable for a generic list in a generic list-processing function. Thanks! :)

Comments are closed.