Ruby in 2012

by on April 23, 2012

Matt Aimonetti

Ruby is more popular than ever, but it’s also not as trendy as it used to be. rubylearning.com students1 asked a few questions to about his vision of Ruby in 2012 and for the future.

is a well-known Rubyist, technical writer, speaker and active open-source contributor. He currently works as a software architect for LivingSocial. Prior to joining LivingSocial, Matt worked for Sony PlayStation.

How does Ruby fit in with the future, as you see it?

: This is a really hard question. If I could predict the future, I would probably already be rich. Ruby is a very powerful and flexible language.

Very much like Python, Ruby is a great glue language, a great language for the web and overall a language that allows you to get a lot done before you hit the language limitations.

The ecosystem also keeps growing and there seems to be more and more people focusing on performance and documentation which are two things Ruby could still improve a lot on.

I think it’s quite obvious that the pendulum is swinging back and server side code is going to be more and more API oriented with smart clients consuming these services. Ruby is great for that because services need to be easy to write, easily to maintain, well documented and flexible. I wrote a DSL to do just that using Ruby and it would have been harder in any other language.

So, to answer the question more directly, I think that Ruby will keep on playing a major role in web development but at the same time, developers will become more and more polyglot and might switch back and forth between languages.

I have talked to people that think that Ruby is falling by the wayside, even to the point where they say that Rails is killing Ruby. What do you think?

Matt Aimonetti: I wouldn’t say that Ruby is falling by the wayside, what’s going on is that Ruby outgrew the startup world where it became very popular a few years ago. However, you now find Ruby (and Rails to that matter) in a lot of more established places thanks to its efficiency of development, strong focus on testing, active community and great ecosystem.

When some people say that Rails is hurting Ruby, I think what they mean is that for them Ruby’s fate is directly related to Rails’. If Rails doesn’t manage to stay the web framework of reference, it might hurt the language. This is certainly not entirely wrong. Without Rails, Ruby wouldn’t have been as popular, but at the same time, there is much more to Ruby than Rails and I think that as a community we need to seriously start looking at all the great things we can do with Ruby outside Rails.

What is your opinion on Node.js? Is this the future? Do you think Node.js will beat Ruby in web application development?

: This is a question I often get. I personally like node.js, I think it’s fun, easy to get started and with CoffeeScript, writing JavaScript (JS) is almost fun. That said, Node is really young, not very well documented and relies extremely heavily on callbacks which can be quite confusing at times. My experience with Node is limited, but as my personal project started growing, I started struggling to keep my code simple and easy to maintain. Because I already know Ruby quite well and because equivalent tools exist in Ruby land, I don’t see a real need to use Node besides being the new cool framework.

But the project is fast growing, the cross-platform focus is welcomed and I think that for some developers, Node.js can be a great solution, especially when developing simple web APIs.

Will it “beat” Ruby? Well, a framework and a programming language are two different things. Will it beat Rails in popularity, that’s a possibility due to the fact that JavaScript is becoming very popular. However, some of the issues I mentioned earlier might prevent Node.js to become as popular as some people seem to believe. Finally, at the end of the day, if a JS framework becomes a better solution than anything else I use, I will certainly switch. But so far, I don’t see that happening.

Do you think Ruby is the best programming language to be introduced to newbies to get them started in programming?

Matt Aimonetti: I do believe Ruby is a great language to learn some of the basis of programming, especially Object Oriented Programming. It allows students to get easily started and to build things quickly. However, different people learn differently and are attracted to other things and parts of Ruby can be quite hairy. To properly learn a language, you also need to have a way to practice and quickly see the fruit of your labor. That’s why If you are a designer, I might suggest you start with JavaScript and then move on to a better designed, high level programming language like Ruby or Python. Finally, you need to look at your motivation being learning a new language.

If you want to learn programming because you want to work in this field, consider starting learning a language which will allow you to easily start working (hint: there are a lot of Rails positions out there waiting for you). But don’t stop there, keep learning new languages and way to solve problems using code.

How to become a better coder? I still feel it’s hard to get involved contributing to OSS, could you give us some advice?

Matt Aimonetti: I personally get better when I practice a lot and when overcoming problems I didn’t know how to solve before I started. Open Source contribution is a great way to get feedback and learn from others. I think that with tools such as Git and GitHub, OSS contribution has become much easier than ever. That said, a lot of developers think that their contributions have to be significant, and, that’s in my mind, a mistake. Start by contributing documentation, examples and helping others. File bug reports and try to reduce them to an easier to handle case. That might seem trivial to you, but it’s extremely useful, it will teach you a lot about the project you are involved with, its design, the pros/cons and how an OSS project is run. Doing that will help you debug and diagnose problems faster and when added to the design knowledge and communication skills you would have acquired, you have all the ingredients of a good developer. Another thing I like to do is to pick something that seems absolutely impossible for me to do. If you only know Ruby, memory management and writing code C might seem hard. Give yourself a reasonable time frame and a challenge such as 6 months to have a small C program that will do X, Y and Z. Keep it small and simple and don’t forget to have fun. At first it will be hard, but don’t give up, keep trying until you learned something you thought was impossible. When you will go back to writing Ruby or whatever language you write, you will look at things from a different angle.

Finally, the last thing I would suggest is to never feel too comfortable in your daily programming tasks. If you are to the point where you just execute and aren’t challenged, you might want to consider talking to your supervisor about giving you more challenging tasks.

Are you excited about MobiRuby? Do you think it will become a viable platform for iOS development?

Matt Aimonetti: MobiRuby is being developed on top of mruby, the new Ruby implementation written by Matz that’s targeting embedded device and offering an alternate for Lua and to some extent JavaScript. I’m quite excited about mruby and its potential and I wrote about both mruby and MobiRuby a couple days ago. Basically, from my view point MobiRuby is an interesting project but it will have to overcome some serious challenges described in details in my blog post. My hope is that thanks to the Ruby language, MobiRuby will be able to transcend Cocoa/Android API to offer an easier, simpler API making mobile development more fun and more easily accessible.

This is quite a big challenge, but I do believe this is something that can be done and that might change the way mobile development is done.

I hope you found this article useful. What are your thoughts? Feel free to ask questions and do give your opinion in the comments section of this post. Matt would only be too happy to reply. Thanks!

Technorati Tags: , ,

  1. Thanks to Michael Kohl, Samnang Chhun and Victor Goff.
Posted by Matt Aimonetti

Follow me on Twitter to communicate and stay connected

{ 14 comments… read them below or add one }

Matt Aimonetti April 23, 2012 at 9:57 pm
Kevin McCaughey April 25, 2012 at 12:21 am

It seems to me that there *is* a real problem with the Ruby Ecosystem at the moment. It seems to be falling away. A lot of the projects that I look at have fallen into disrepair. An example of this is any kind of maintained GUI framework: wxRuby, GTK+ for Ruby, both stagnant. This is a real shame I think as 2 years ago these sorts of things were very active.

I reached a point where I wanted to do more with Ruby than server side scripting. I would love, for example, to be able to write useful GUI apps. At the very least I would like the possibility of having a GUI side to Ruby. For that to happen, and for Ruby to grow as a general language for general use, you really need a way to package it (so a user does not have to do the installing and GEMs etc) and a front end. The packaging is another example. There used to be two ways to do this, but neither program has been worked on much since 2010, the heyday of Rails.

As people like Twitter start refactoring because Rails didn’t work well for them, Rails has become less ‘uber’ and as a consequence of that I think (and I would say the evidence shows) that Ruby has suffered as a result.

Unfortunately I am only one developer and much as I would love to make my own GUI and maintain it, this is not feasible. To me it feels like a lot of once busy projects are either coming close to the 1-man-band mark or have already reached that point, with said person unable to keep up. A good look through the posts at http://www.ruby-forum.com/ certainly shows this to be the case.

Regardless, I love the language and am determined to keep going. I hope the trend reverses.

Reply

Postmodern April 25, 2012 at 9:01 am

You might want to checkout Visual Ruby (http://visualruby.net/) and Freightrain (https://github.com/bolthar/freightrain#readme).

Reply

Kevin McCaughey May 25, 2012 at 5:33 pm

I have been following Visual Ruby since it’s first release. My worry about it is that the author has not responded when asked if this is going to remain open source or he will make it a paid product.

Now, full credit to him – if he makes it a paid product I think he deserves success as it is good (if a little rough round the edges at this early stage). But I am focusing on open source.

Once I reach a respectable point in my code writing I will most definitely be contributing to at least one open source project, and it will be Ruby almost certainly. I believe I owe a lot to the community and would be delighted to give something, if even a bit rusty, back.

Reply

rtmex April 25, 2012 at 2:43 am

I agree with Kevin when we says there’s a need for a working Ruby GUI, it would be great if Ruby had an IDE like Lazarus (and IDE for free pascal). I think there’s many frameworks and tools if you want to write web applications with Ruby, but there’s nothing real usable if you want to write Cross-Platform Desktop Client/Server apllications, and I think that’s a shame

Reply

Postmodern April 25, 2012 at 9:02 am

There are a couple IDEs for Ruby. RubyMine (http://www.jetbrains.com/ruby/) and Aptana (http://www.aptana.com/) are the most popular IDEs.

Reply

Kevin McCaughey May 25, 2012 at 5:35 pm

I found that the best way to learn was from the command line with notepad++ and a theme.

When I needed an IDE I went for Rubymine. It is a one-off fee and I got it for about £35 on offer. If Visual Ruby was similar I might go for it.

Reply

Matt Aimonetti April 25, 2012 at 1:38 pm

@Kevin @rtmex you both have valid points. But maybe there is less of a focus on GUI apps because the web is taking over and some people prefer to work with the APIs provided by the underlying OSs instead of creating cross platform GUIs which don’t seem to belong. That might explain why MacRuby is quite popular when it comes to writing GUI apps for OS X (and apparently MobiRuby will provide the same possibility for iOS). Now when it comes to cross platform development, JRuby is a great option as RedCar http://redcareditor.com/ (IDE written in Ruby) demonstrated.

Reply

Matt Slay April 28, 2012 at 8:03 am

There was a MacRuby book released in April 2012, (“Mac Ruby in Action” – it’s on Amazon), but didn’t I hear that the main developer of MacRuby left (see this post: http://lists.macosforge.org/pipermail/macruby-devel/2012-April/008685.html), and now they are encouraging the community to take it to the next level? In my experience, when the main dude is no longer on board, most projects come to a halt.

The same thing seems to have happened with Microsoft’s Ruby IronRuby when Jimmy Schementi left Microsoft. There hasn’t been a new IronRuby release since March 2011 (that’s been 13 months). Details here: http://www.zdnet.com/blog/microsoft/whats-next-for-microsofts-ironruby/7034

I saw a MacRuby session a CodeStock 2011 in Knoxville, TN, and It looked cool, but my interests are more on web apps (like you said), so I can’t spend any time playing with it, since I need to focus on Rails and JavaScript better.

Reply

Kevin McCaughey April 25, 2012 at 3:43 pm

The fact that Mac Ruby still has a GUI option available only increases my feeling that we need a proper cross platform one. GTK2 or wxWidgets seem ideal for this and I think that they should be a priority for the community as a whole, considered part of the basics which keep it adoptable.

I understand what you are saying about webapps, but whilst I still have my desktop I still need apps.

I would ask the community to think about the importance of having at least 1 working GUI. Otherwise I do believe that Ruby will go backwards, if that has not indeed already started happening.

I would like to have a crack at it myself, and have already been asking questions and reading up on both GTK and wxWidgets. A large barrier to the maintenance of either of these GUI frameworks seems to be SWIG. Once I gain a bit more experience this issue will still be on my radar, and I hope to be able to contribute. In the meantime I encourage other Ruby/C programmers to at least have a look at this to see what the issue is. If we have to go to Java to do our GUI then that will chip away at the integrity of Ruby. I believe we need some core components to keep Ruby viable, and a GUI is one of them.

This is just my opinion though – I do not claim to be anything big in the Ruby world. I’m just concerned about what I see happening.

Reply

Dark Phoenix January 23, 2013 at 8:52 pm
Manuel Ramos Caro April 30, 2012 at 7:56 pm

Kevin McCaughey… I’m 100% agree with you… I’m usually programing GUI with Ruby… to have some fun… and it’s really hard to do some task because we have a lot of implementations and there’s a lot of tools and sometimes you don’t know what to choose because really not all are crossplatform… years ago we have Shoes but after _why the project it’s slowly shutdown… I think that the only real GUI option is on Jruby….And it’s a pity that MRI haven’t a good GUI toolkit… It can be a good initial point for lots of GUI tools that make more atractive and easy the live of a Ruby Developer…

Reply

Allerin - Ruby on Rails May 2, 2012 at 12:41 pm

Rails 3.2.3 has been released and I hope with new updates new implementations will also be considered and there will be more features with less errors and complexity.

Reply

Eric Cunningham December 12, 2013 at 2:34 am

Thanks for the great post. I obviously agree that Ruby needs GUIs. That’s why I wrote visualruby.

I’ve finally found the time to make an upgrade. I just pushed visualruby v 1.0.13 to rubygems.org. I’d love to get your feedback on it.

Reply

Leave a Comment

{ 76 trackbacks }

Previous post:

Next post: