Monday, April 14, 2014

Despite the absolutely ideal weather this past weekend*, I spent a small chunk of time beginning to learn Ruby. The programming language itself seems fun and friendly; it's billed as a conceptual hybrid of Perl and Python with the object-oriented nature of something like Java. There are a few reasons why I'd like to learn the language:
  1. Learning new programming languages enhances understanding of the others. My Perl and Python can always be improved.
  2. I've seen a few bioinformatics-related job postings lately which specifically mention the desirability of Ruby experience. They're usually talking about Ruby on Rails and its use in web development. 
  3. It's either that or go back to learning Haskell. As far as learning a new language goes, most programmers seem to take Ruby seriously, at least.
I do have a few concerns.
  1. Is Ruby (or Rails) becoming obsolete? There's clearly room for a great diversity of frameworks in the scope of web application development. I'm also not qualified to answer such a question. Programming is just one of those areas where a newly-learned language or skill can quickly become a dusty relic. Every framework might as well be Esperanto in the long run: they all have their strengths, even if the only strength is facilitating communication between the right people.
  2. Will I ever really need to know Ruby (or Rails)? This question is even more difficult to answer, but I'll give it a try: "probably not." There will always be someone with better code than mine and it may even be in a different language or even an entirely different framework (for all I know, even scientific applications will be most frequently run in a mobile OS in a decade from now). 
Learning for fun seems like the best plan of attack. I can do it at my own pace without worrying about how applicable it is to Doing Bioinformatics. I'll just have the background to know it when I see it. 


*Here's a shot of the grounds at the University of Virginia.
Brooks Hall.

No comments :

Post a Comment