Archive for August, 2007

links for 2007-08-28

Tuesday, August 28th, 2007

links for 2007-08-24

Friday, August 24th, 2007

links for 2007-08-20

Monday, August 20th, 2007

links for 2007-08-14

Tuesday, August 14th, 2007

links for 2007-08-10

Friday, August 10th, 2007

links for 2007-08-08

Wednesday, August 8th, 2007

Considering LISP

Tuesday, August 7th, 2007

I’ve been really enjoying the work resulting from switching my programming language focus for the past year+ over to Ruby and/on Rails. Ruby has really widened the range of possibilities in terms of what kinds of systems I can build and concepts I can employ in doing so.

However, having done a lot of metaprogramming on the edges of what is possible in pure Ruby, I’m finding myself craving more. While there are ways to add more to Ruby with C libraries like ParseTree and RubyInline, the time has come for me to start planning learning my next language.

As part of my self-education, for the past two years I’ve watched and re-watched countless times, the free online MIT Video lectures from 1986 entitled Structure and Interpretation of Computer Programs. These videos are an amazing treasure-trove of insight for anyone in the field of software engineering and computer science. They cover so many different styles of architecture and techniques for program and language design, yet the course is taught all in a single language: LISP

Why would LISP still be relevant? Probably the most important reason is that as languages go, LISP doesn’t set any specific limitations on what LISP can do. You can use LISP to write in pure functional style, or use objects with multiple-inheritance, multi-methods, modules, logic-programming… In terms of pure functionality, LISP makes the possibilities feel truly limitless.

From the outside looking it at least… So why doesn’t everyone just use LISP? My guess is that it’s partly because it looks very arcane. Most of its built-in functions and reserved words are just scarily obscure, and programs appear to have endless nested series of parentheses which tend to make even basic constructs appear intimidating:

Example screenshot full of LISP code.

But the thing is, once you get past the surface, there is a lot of inherent power in this basic structure. Since everything in LISP is a symbolic expression that can be interpeted by LISP code, LISP code can read itself and write itself without needing to do the naive and opaque string evaluations of other scripting languages, and can even interpret the same code differently, as desired, in different contexts. I think LISP is still the sleeping giant of the software world. And if it isn’t sleeping its at least the stealthiest language out there (at least when you compare it to C, C++, Ruby, PHP, Java, Perl, Python, or LOLCODE!)

At the moment, the technology I use at my day job is still powered pretty much 100% by Ruby on Rails, and its likely to stay that way for a while. I will probably continue to do a lot Ruby work in my spare time as well, but I am going to try and get in at least 30 minutes of LISPery into my schedule daily until it starts to gel. I am looking forward to seeing where it takes me.

links for 2007-08-07

Tuesday, August 7th, 2007

Dog School

Wednesday, August 1st, 2007

Tonight, Matty and I went to puppy class at Tucker Pups. It was the third session so far, and our teacher, Debbie is really great. As far as Matty and I are concerned she’s on par with Cesar Millan.

Going to a class like this is already starting to pay off in terms of knowing how to handle Matty’s little puppy tantrums as well as helping her learn the basics (”sit”, “heel”, “stay”, “okay”, “leave it”, “YES!”)

Matty was pretty weary and quiet in class though, because she spent all day at doggie day-care over at The Mutt Hutt. I love the Mutt Hutt Webcam — You can watch dogs play together all day long. Even if you don’t have a dog, its pretty hypnotic and relaxing to just watch the live cam.

There is nothing as awesome as knowing she had a big fun play-day, and having a break from constant puppy playtime tonight since she’s out like a light.

Matty Sleeping