Ruby, Python, Lisp, and all that

I've been reading a very good book about the Ruby computer language. In Ruby circles it is known as the Pickaxe book (due to the picture on the cover). Apparently the rest of the world is also reading this book. Tim O'Reilly had a much discussed blog post that they are now selling more Ruby books than Python books, with sales up 1250%! Given that they are only selling the Pickaxe and one book on Rails development, that is pretty impressive.

My friend Brad thought my previous post about Ruby was a bit terse, so I'll give a little background. I've been doing some surfing myself, finding out about the Ruby community.

Ruby is a very nice little language, which is riding a huge wave of hipness and popularity, driven largely by a web development framework called Ruby on Rails. Like any good system, it was developed by a guy who can be a TLA, in this case David Heinemeier Hansson, or DHH. He's also been a very effective advocate, making videos and presenting at conferences on why Rails is such a productive environment. For maximum hipness you should use the TextMate editor on a Mac. You must use a black background with white letters, or you're not cool.

Ruby has true continuations, which is the first thing the "language guy" in our office asks about a new language. Here's an interesting post called Why Ruby is an acceptable Lisp. Notice all the Lisp guys freaking out in the comments. I especially liked this followup post comparing Ruby (and Rails) to Python web frameworks.

So Ruby has a good book, good language features, a killer app in Rails, and lots of momentum.

I don't do web applications of any sort, so I can be kind of a neutral observer. It seems like Ruby is intersting a lot of Java talent. I personally never clicked with Java, so I can certainly.see.why.they.would.want.to.try.something.new. Ruby is also giving the Python community fits of naval gazing. Why didn't the killer app appear on Python? Python is a very nice language, and I really should be learning it first. However, I get bored whenever I start to read Learning Python. So for me, a more engaging intro book and a streak of impracticality have led me to tackle Ruby first. I'll get to Python after that.

I'm sure I'll find that Ruby is kind of slow, so I'll be waiting for the version that uses a Virtual Machine, coming in Ruby 2.0. The particular VM they are using is called YARV.