I’ve been taking the time to learn about Ruby, as it will be my primary language for the forseeable future. There’s much to like, and little to dislike, at least at first glance. The first thing to notice is the versioning of the language itself. At the time of this writing, Ruby is on version 1.9.3. Most of the training material I’ve been using, much of it very recent, has a modest amount of dated and/or deprecated code used in the examples. This can be attributed to the frequent “phasing out” of old elements in favor of keeping the language relatively clear of clutter and debris.
This presents an interesting dilemma: compatibility. Most languages I’ve used save as many of the major changes for the next primary version increment. In other words, what works in version 6.0 will likely have no issues with version 6.9. Even then, when a method or class is deprecated, that term is more superficial than enforced. In Ruby, it seems as though it’s something of a guarantee. To maintain compatibility, developers need to keep multiple versions of the Ruby core, as well as associated gems and other such extensions, in order to ensure the stability of applications based on those versions.
So far, the differences between Ruby and other languages are abudant, but mostly trivial. The major difference rests in the substantial library of classes and methods that provide more functionality than I yet know how to handle. Luckily, I’m surrounded daily by people with an extraordinary wealth of knowledge, available to the right questions.