For the past two years, RubyLearning has been promoting the Ruby language world-wide, by conducting its Free Online Ruby Programming Course. 1000s of participants have either completed or are in the process of completing the course. Most Ruby course participants have a plethora of questions related to the language; opportunities in Ruby; Ruby’s future etc.
FiveRuns is building an ecosystem of tools around Rails, including its flagship monitoring and management tool, FiveRuns Manage, and a free Rails stack, FiveRuns Install. Built on Rails and delivered as a hosted service, FiveRuns’ products enable organizations to save money and reduce operational complexity by managing the entire Rails application lifecycle – from installation to production. For more information or to download a trial subscription, visit FiveRuns.
Satish>> Adam, a warm welcome to you. For the benefit of the course participants, could you tell us something about your self?
Adam Keys>> I hail from the great state of Texas, USA, living with an army of dachshunds. When I’m not coding, I’m probably thinking of something absurd to say!
Satish>> Most of the course participants trying to make a switch to Ruby, come form a Java background. What advice would you give them?
Adam Keys>> Ruby’s syntax is similar enough that it looks like you could write Java in Ruby. For your own sake, resist the urge. Spend a lot of time reading other Ruby code and trying to assimilate the style projects like Rake, Mephisto and Rails use.
Secondly, don’t let the lack of documentation scare you. It might seem like a nightmare, but in reality, you can learn most of what you need to know about a Ruby application or library by reading its code. This isn’t a very practical strategy in Java, but Ruby is more concise and to-the-point so I find it works.
Really, its all about reading code. I can’t say enough about the importance of developing this skill.
Satish>> Which Ruby books should the course participants read or always refer to?
Adam Keys>> I came to Ruby just before Rails came out, so I’m a Pickaxe guy myself. Despite recent criticism, I still think its a fine tutorial and reference.
Satish>> Which sites / blogs do you recommend, so that the participants are always abreast of the latest developments in Ruby?
Adam Keys>> Time spent poking around in projects on GitHub is time well spent. So far as blogs, The Rails Way and Err The Blog are classics, though they don’t publish much as of late.
Satish>> While learning Ruby, what are the kind of projects the course participants should get involved with, to enhance their Ruby skills?
Adam Keys>> I think the best progression, over the course of many months is as follows:
- Simple Ruby scripts
- Small Rails apps
- A small Ruby gem to use across many applications
- A larger Rails app
- A Rails plugin
Once you’re to the point that you’re creating gems or plugins for a project, you’ve sort of “arrived” as a Ruby developer.
Satish>> Which tools / utilities / libraries / applications in Ruby (apart from Rails) should the course participants focus on? Why?
Adam Keys>> Knowing how to make Rake and RubyGems do your bidding is essential. From there, I’d say start with what interests you and work your way outwards.
Satish>> What do you like / love about Ruby? Why?
Adam Keys>> I will not go back to a language that doesn’t have something like blocks. Metaprogramming is also a big deal for me. Beyond that, the community is largely the friendliest I’ve known in my years building software. I think this is overlooked sometimes, perhaps overshadowed by some personalities, but its a really important aspect.
Satish>> What are the attributes of really good Ruby programmer?
- They are well spoken and write well
- They are interested in other languages and other disciplines
- They laugh at my jokes.
The last one is probably optional!
Satish>>How do you keep your skills sharp and keep up-to-date with the latest developments?
Adam Keys>> Chad Fowler’s “My Job Went To India” has the best advice to this question. From his writings, I’ll emphasize exposure to people smarter than yourself, “practicing” and continually reading about what’s going on and writing about what you think (even if you don’t publish it).
Satish>> Is it important to learn Rails for a Ruby programmer? If yes, why?
Adam Keys>> Its certainly useful. Not knowing Rails but doing Ruby is akin to playing guitar but not knowing any Jimi Hendrix tunes. You can do it, but there’s a missing chunk in your vocabulary.
That said, there are more straight-Ruby jobs than there were a year ago, but its mostly around the various Ruby implementations (Rubinius, JRuby, etc.)
Satish>> According to you, what have been the major obstacles in the Enterprise adoption of Ruby?
Adam Keys>> I don’t think the enterprise-adoption hype cycle has really picked up yet. By “enterprise-adoption hype cycle”, I mean ads in InfoWorld, sales pitches on golf courses, etc. This seems like a weird thing to happen with out little old Ruby, but if it follows the Java adoption trajectory, it will happen at sometime.
At this point, Ruby has snuck in the “backdoor” of many large shops. It will continue to grow there, but that probably won’t result in any big news items. If you want to understand technology adoption, Tim Bray’s series on the factors that lead to adoption inside and outside of enterprises is very illuminating.
Satish>> JRuby, Rubinius… so many new areas to explore and know about. How important are these for beginners in Ruby?
Adam Keys>> Beginners who are operating in Java or .NET shops will want to familiarize themselves with where JRuby and IronRuby can help them integrate with existing projects. If you’re interested in how the language is implemented, Rubinius is a great source of information, especially for the core library.
Otherwise, it’s something to keep an ear out for what’s going on in those spaces, but you don’t need to follow it closely.
Satish>> According to you, what’s the future of Ruby?
Adam Keys>> Better runtimes is the current drumbeat. After that, I think Ruby needs another killer app or two. Adhearsion could take this throne or maybe RubyCocoa. Its possible the next killer app will come out of left field, somewhere no one thinks Ruby is currently viable. I would enjoy that.
Satish>> It has been fun interacting with you Adam and thank you for sharing your views with the RubyLearning participants.