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,528

3 Answers3

6

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.

5

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,774
1

Yes it can work fine as a desktop application. In the case where you have multiple users on different systems you can set up the system to operate from some accessible server configured so each user has a different database. I have been operating a system like that with over 120 different customers each having one or more users on their database. I run a central server that all of the customers connect to using their browser of choice. The system is not decorated in a fancy manner, it is dedicated to a specific function in the running of the customers business so the ui is fairly simple and task specific.