Saturday, March 29, 2008

Windows: Ruby's Red-Headed Stepchild

In case you missed it, there has been increased online discussion these past few days regarding the viability of Windows as a development platform for Ruby. This was triggered by at least two blog posts...

Luis Lavena:

"Is Windows a supported platform for Ruby? I guess not"

Peter Cooper:

"Is Windows a first class platform for Ruby, or not?"

"All the cool kids are doing it."

I've been disappointed by some of the readers' comments to these posts. As in so many discussions within the open source community, there's a significant anti-Microsoft sentiment. There are many reasons to dislike Microsoft and Windows. But those who wonder aloud if anyone still uses Windows, or that comment that "real programmers don't use Windows" are either tragically ignorant or blinded by their passion for Linux and/or MacOS. Yes, I know, we're wandering back towards the Ruby in the Enterprise debate.

“The race is not always to the swift, nor the battle to the strong, but that's the way to bet.” -Damon Runyon

Fortunately, there are voices of reason in this discussion, including Peter Cooper, who, while not a Windows user, says "a poor Windows Ruby ecosystem could harm the growth and spread of the language". Whether you like it or not, Windows is far and away the most popular desktop OS. Many desktop developers in the [insert Darth Vader/Evil Empire theme here] Corporate World are required to develop for Windows because that's where the users are. We might be able to "sneak Ruby through the system", but expecting a company to switch hundreds or thousands of users from Windows to Linux or Mac is childish.

If you love Ruby, and care about the future of The Language, then you want Windows to be a "first-class platform for Ruby". It's not about developer preferences. It's about market forces.

Ruby is more than just Rails.

Software development is more than just websites.

Ruby needs Windows more than Windows needs Ruby.

Think about it.


Digg my article

6 comments:

Rainer said...

I totally agree, David. If Ruby is to survive, it needs to be present on all platforms. I'm tired of all these "Only platform X is cool" arguments. I have grown to like the Ruby language pretty much, and I'd really like to use Ruby in a Windows project. ("Why Windows?", I hear the zealots ask. "Because that's where my customers are.", I hear myself answer.)

Keep up the good work, and blog more often; I've missed your programming examples!

Charles Roper said...

In a recent Ruby on Rails podcast[1], Ian Mcfarland of Pivotal Labs talked about where the sweet spot is for Rails in terms of large-scale enterprise apps vs. lone scripts, etc. He talks about how, traditionally, Rails has been used by start-ups and small teams. He then goes on to say that the biggest growth area for Rails (and thus Ruby too) would be within small teams and workgroups in the enterprise arena producing highly specific (or vertical, if you want to use the buzz-word) apps that could benefit from rapid, agile development practices. He concludes by saying, "why *wouldn't* you use Rails in these scenarios?". Indeed. Well, if Ruby isn't well supported on Windows, and this is where the majority of enterprise workers and programmers serving small to medium workgroups are, then that would be a compelling reason not to use Rails and Ruby, no? Surely the world would be a better place if these developers were introduced to the beauty and joy of Ruby?

Now I'm not sure if the core Rails team, or the core Ruby team care about Windows or Windows developers much at all. I'm pretty sure DHH does *not* want to grow Rails into the world leading framework particularly. So I don't think this is purely about numbers. I think by saying, "if Ruby is to grow..." is looking at it the wrong way. I'm not sure how Matz feels about Ruby going more mainstream, but he's on record as saying he wants to bring joy to programmers. I think *that's* why Ruby on Windows is so important. Engaging Windows programmers would seem like a priority if that aim is to be achieved. If we want to maximise joy in the world, get Windows developers on board.

Charles Roper said...

Whoops, forgot to post the link to that Ruby on Rails podcast:

[1] http://podcast.rubyonrails.org/programs/1/episodes/ian-mcfarland-of-pivotal-labs

SeanJA said...

Additionally, you don't have the same problems installing ruby on a Windows environment that you do installing it in a linux one. I love using it in Windows, there are so many more extensions for it (Watir for example)! It is a pain using it in Ubuntu and having to set all of the permissions on all of the folders and then finding out that you didn't set them right on one folder. Once you get it set up however, it is pretty much the same experiance to me (I am not that experienced in the ruby world though).

Anonymous said...

"It is a pain using it in Ubuntu and having to set all of the permissions on all of the folders and then finding out that you didn't set them right on one folder."

I feel the other way. Ruby on Linux is much easier than on windows. Maybe you are using the wrong distribution.

I recommend you to GoboLinux or Archlinux. (Archlinux has more people, but GoboLinux has a better design.)

Also you should run as superuser all the time. Simply because there are people who tell you to not do so.
If you meed them, laugh at them.
If a distribution - like Ubuntu - makes it hard for you to run as superuser, switch distributions.

And never accept any distribution that splits up packages arbitrarily.

Michael said...

Anonymous: You're so, so right. Come on, Seanja, don't let your experience and your needs push you around. Do the right thing instead. And never let anyone else tell you what to do. And I mean that, so listen up and do what I say!

[/eyes roll]

---Michael B. , living in the world as it is, rather than the world as we would like it