blog

Towards Ruby    Nov 06, 2007 15:58

I have a desktop application that I've started building out with Delphi and it's going pretty well. I'm 100% confident that I can do everything/anything I need to do with Delphi on Windows. But I've been thinking a lot about going after the Mac market with this product and how to get there. After Ruby Conf, I'm becoming more convinced that Ruby might be the answer for OSX...and Windows.

I've been a Delphi developer for a fairly long time. I'm very comfortable using Delphi and am productive with it. However, I don't see the Delphi market going anywhere. The community is a great one and one that I'm proud to be a part of, but it seems stuck; stuck on things that are just not very productive.

Besides, every few years I think developers need to reevaluate their skillset and push themselves out of their comfort zone to grow. I did this with C++ and I've done this with web development. Each time I've done it, I've had to work to acquire the skills that I wanted. But each time I've done it, I've become a much better programmer. And each time I've done it, I've been rewarded with interesting and fun opportunities. In short, it's always worth the effort. Enough philosophy. :)

Delphi is an ancient greek place. (that few people visit anymore)

One of the biggest, if not the biggest technical issue facing Delphi is its lack of cross platform capabilities. This is something that I believe will be essential to the long term goals of the product that I'm building. I don't think I'm the only one with this issue. Many ISV's, including Microsoft, have significant cross platform offerings. As the usage patterns of personal computers shift, the software development community can no longer rely on a single vendor/platform for their deployment needs. Why would I want to take that risk? Why wouldn't I want to be able to deliver my product to as many people as I can?

Despite the best efforts of CodeGear, Delphi suffers from several other problems:

  1. Closed Source/Proprietary: Delphi's progress is at the mercy of CodeGear's competency and resources.
  2. Activation/Licensing: The ability to use Delphi is at the mercy of CodeGear's activation servers.
  3. Poor Documentation: Their documentation sucks and very few people care to document it for them. The user base is mature, those that know, already know.
  4. Dwindling User Base: How many developers you know are choosing to learn Delphi? How many companies that you know are starting new projects with Delphi? How many companies are hiring new Delphi developers?
Ruby is a gem.

I like Ruby. I really like Ruby. It addresses virtually every weakness of Delphi and keeps most of its strengths. Ruby has a fantastic framework with many third party options. The language itself is extremely pliable and expressive. The notable weakness Ruby has, is Delphi's greatest strength. Ruby doesn't have a great GUI layer. Delphi is the best Windows GUI tool there is, so this is a big weakness, especially for a desktop application.

But, the interesting thing is that I've moved towards webifying my Delphi UI's anyway. So, why can't I do this with Ruby? A Ruby wrapper for WebKit would be perfect (I haven't found one yet, thinking about writing one). This would make the development of a cross platform shareware application viable with Ruby.

This is pretty close to what Rich Kilmer and the InfoEther guys are doing today. They use Flash for their UI, but they've got all the machinery and according to Rich's RubyConf session, they'll be releasing the core infrastructure as an open source project RSN. What Rich & Co have done is package the entire Ruby interpretor and framework in a way that it can be distributed with your application.

Speaking of Flash, some will ask why not Adobe AIR? I think Adobe has the right idea. I think they need another version to get it right. I'm not sold on having my customers having yet another runtime "pre-installed". It's promising, and I'm going to keep my eye on it, but I'm not as keen on it as Ruby.

In moving away from Delphi, I'll certainly miss great components like NexusDB. But Ruby offers so much more than Delphi in the intangibles. These things are hard to ignore and it's at the tipping point for me.

The next steps for me is to do a few projects with Ruby and see where the limits are for my application. Once I explore a bit, I'll be able to determine quickly if Ruby has what I need to implement my vision.

Ruby is a vibrantly shining gem.

Ruby is a on the upswing. It's got a smart, vibrant community that is cranking out useful stuff very quickly. It's open sourced so there is no bullsh*t about activation/licensing/escrow, dealing with a single vendor, etc. There is no fear that if I create something great in Ruby that it will be shackled (technically or legally) by some corporation other than my own. :)

Looking forward, Ruby's intangibles add up to a lot. It might mean more work for me to achieve my goals initially, but in the end, I believe the payoffs will be worth it. They always are.

Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.
Security Code:
 
Gareth Conner
Posts: 1
Comment
How's the progress with Flash as a Ruby Gui?
Reply #1 on : Fri April 18, 2008, 13:47:04
Hey Brian,

I realize that this post is several months old, but how's the Ruby/Flash project coming?

You may remember that I was a guy that was trying to learn Delphi to port a VB6 application. After a couple months of struggling, I gave up on Delphi. I flirted with Python (which I loved!), but the lack of a strong GUI kit there eventually drove me to VB.Net and WPF. The project is done, and worked out very well with .Net & WPF, but it was very tempting to chase a cross-platform solution with Python.

Anyhow, I'm looking at a few new apps these days that I would really like to target towards the Mac. So I'm back looking at some options and curious to know how you're finding Ruby with Flash as a front end.