I know the Ruby on Rails framework is only for web development and not suitable for desktop application development. But if a ruby programmer wants to develop a desktop application, is it suitable and preferable to do it with Ruby only (not jRuby, as most of the tutorials are for jRuby)? If yes, please provide some good tutorials. I want to use linux as OS for development.
Please suggest something, as I am a ruby developer and wants to develop desktop application.
Bowline was (the last version goes back to 2010) a framework for making cross platform desktop applications in Ruby, HTML and JavaScript.
On the other side if it interest you, here’s a tutorial on deploying a rails app as a desktop app.
0
If you’re using Mac OS X then you’d likely want to use MacRuby, which allows you to create desktop apps. I think its one of the cleanest ways to develop for the desktop using Ruby. Also, I know its not desktop, but you might want to also take a look at RubyMotion, which is compiler and toolchain allowing you to develop iOS apps (iPhone, iPad, iPod touch) using 100% Ruby.
I’ve personally used the excellent Ruby game library called Gosu which lets you develop for Windows, Linux and Mac (I tried it on Ubuntu Linux). It sits on OpenGL.
I love working in Ruby, and I don’t have much opportunity or desire to do web development, so I tried doing exactly this. I grabbed ruby-gnome2 to give me an interface framework and got a good deal of (fairly basic) stuff.
Then I tried it out on a VM under Linux. And sending it to friends. And I learned how horribly difficult it is to distribute Ruby code. For example, the Ruby Windows Installer gives you a lot of basic libraries (such as YAML) for free, which don’t come under Linux (and I never did find the right gem install for it). Some libraries work on one OS and not another. A lot of the graphical stuff, especially lower level* stuff, seems to be entirely broken as of 1.9, and isn’t getting updated.
So I wouldn’t recommend it really.
Ruby is great for scripting purposes, and if you’re completely in control of the deployment environment (like a web server) you can do just fine. But distribution is a pain. You might be able to mitigate this though, by using JRuby or IronRuby, which run on the JVM and CLR respectively. They also give you access to graphical toolkits.
*I had a nasty experience trying to get OpenGL to work with Ruby 1.9.3 on Windows. It turned out to be essentially impossible, even after following several rather arcane guides by people who ran into the same problem.
2