4

I was wondering if there are obvious advantages and disadvantages to using Ruby on Rails to develop a desktop application.

RoR has great infrastructure for rapid development, proper implementation of specs and automated acceptance tests, an immense number of popular libraries and the promise of being actively developed and maintained in the future.

The downsides I can see are mostly about usability - installation of a Rails app as a local service and launching of a browser when it needs to be active may not come naturally to many users... or be technically easy to implement and support for different platforms.

Armand
  • 6,508
  • 4
  • 37
  • 53

2 Answers2

5

No, for many reasons:

  1. Sub-par UI. Either you will be limited to traditional web forms based UI, or you will die trying to emulate rich UI interface with lots of JS/HTML5.
  2. No direct access to hardware. If you would like finer control of your print output, access to the scanner or smartcard reader or audio headset, you're doomed.
  3. Difficult deployment. While it's easy to set up your web server, Ruby interpreter and set of gems on a single web server, making a self-installing executable out of it is impossible, or nearly impossible.

Probably a lots of other issues I forgot. And this stands for any web platform, not only for RoR.

Mladen Jablanović
  • 1,267
  • 7
  • 10
  • thanks for the thoughts. 1. I can see this could be a problem for richly graphical applications, but mostly I haven't seen UIs in desktop software which don't work with web forms or javascript. 2. Cross-platform hardware access is difficult anyway. Java + JNI would be the obvious choice to me, and running e.g. JRuby could allow access to this. 3. Again this is perfectly possible with JRuby - see e.g. Mingle http://www.thoughtworks-studios.com/forms/form/mingle/download – Armand Nov 22 '10 at 15:33
4

Rails is a web framework, I'd use it for that or if you really want to produce a desktop application then pick something else. You might be able to get it working as a desktop platform now but that's clearly not how it's seen by the community so who's to say it won't be changed in the future to make your implementation harder or impossible?

I'd also suggest that if you're going to be constrained by a browser based UI, why not just host it on a server and get the benefits rather than having to deal with support of local installs?

The best desktop applications will be ones written in a language which is intended for that purpose and ideally which are native (or in the case of .NET native-ish) to the operating system so they can adopt all the usual UI components, metaphors and functionality users are used to seeing on that OS.

Jon Hopkins
  • 22,734
  • 11
  • 90
  • 137