Ruby Tuesday
I'm firmly of the belief that you can never learn too many programming languages^1^. For one thing, each new language you learn teaches you more about the general principles of programming, which aren't specific to any one language, and makes you think about general problem-solving approaches. Also, no one language — even my beloved Perl — is perfect for every eventuality, and all have their strengths and weaknesses. So recently, I've been looking at Ruby. A comment by Nathan mentioned a review of TextMate, which in turn put me on to Rails — a web application framework for Ruby.
I haven't had time to look at the language in depth, but I like what I
see so far. It's a neat language, with some of Perl's slightly terse
syntax and flexibility, but with very solid object orientation. There's
a package management system
(RubyGems)
which makes it really easy to install and package code. There's also a
very neat self-documentation system rdoc
which produces command line
and HTML documentation from well-commented code. What really knocked my
socks off though was Rails. There's a movie
here
which shows David Heinemeier Hansson (the creator of Rails) using it to
conjure up a working weblogging engine, seemingly out of thin air. The
structure seems really easy to use, and suitable for everything from a
simple application to access a database to a huge web application. This
got me thinking. I've been giving serious consideration lately to
building something web-based to administer Mr. Bsag's paintings. Every
time he has an exhibition, we end up trying to generate a catalogue
manually, matching up paintings, prices and titles. It's a real pain,
and we inevitably make mistakes. I can imagine setting up a database
record for each painting on MySQL with an ID number (which would be
written on the back of the frame), a title, price, details of media and
size and also a digital image of it. Then we could access and administer
these records via a web interface, and generating a catalogue of a
selection would be a piece of cake. It seemed to be a job that was too
big for my limited PHP knowledge, but with Rails, I can imagine that I
would fairly easily be able to put something together. Ruby doesn't
have the user base of something like Perl or PHP yet, but I'm beginning
to see that it has a lot of merits.
^1^ This is one half of my version of the saying, "You can never be too rich or too thin." The other half is, "You can never have too much music."