The Artima Developer Community
Sponsored Link

Ruby Buzz Forum
Those poor, dumb Win32 bastards

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Daniel Berger

Posts: 1383
Nickname: djberg96
Registered: Sep, 2004

Daniel Berger is a Ruby Programmer who also dabbles in C and Perl
Those poor, dumb Win32 bastards Posted: Mar 30, 2005 10:11 AM
Reply to this message Reply

This post originated from an RSS feed registered with Ruby Buzz by Daniel Berger.
Original Post: Those poor, dumb Win32 bastards
Feed Title: Testing 1,2,3...
Feed URL: http://djberg96.livejournal.com/data/rss
Feed Description: A blog on Ruby and other stuff.
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by Daniel Berger
Latest Posts From Testing 1,2,3...

Advertisement
From the blog of DHH: "I would have a hard time imagining hiring a programmer who was still on Windows for 37signals. If you don't care enough about your tools to get the best, your burden of proof just got a lot heavier."

I'll try not to take that personally David. ;)

Actually, I never intended to become a "Windows guy" in the Ruby world. It happened mostly by accident. You see, we were developing a custom tcp/ip software monitoring daemon that had to run on several different platforms. We're mostly a Solaris environment, but we have a smattering of Linux, HP-UX, and Windows servers as well. As fate would have it, we had a couple Windows servers where we needed to monitor applications. So, we needed a version of our code that would run on Windows machines as well.

This is when I realized there was a giantic gaping hole in the Ruby programming world. The Windows support, well, sucked (keeping in mind that this was still in the Ruby 1.6.x era). The first issues that came up were dealing with processes, daemonization and logging. Did you know there was no Process.kill for Windows in Ruby 1.6.x? Well, there wasn't. I think writing a version of Process.kill for Windows was my first foray into Windows programming. That code is still part of the win32-process package. See the documentation if you want to know why it's still there, even after Process.kill support was added in Ruby 1.8.x. :)

The next big issue was daemonization, because I didn't just want to run our app in the foreground from a terminal (which I've seen commercial, 3rd party applications do - lame). That's when I learned about services. Services are actually pretty cool. I tend to describe them as fork + setsid + logging + signal handling all roled into one. This was also the toughest code to figure out, so I recruited Park Heesob to write the hard parts for me. :)

From there I just kept going into other areas, even where it didn't necessarily apply directly at work, in part because I didn't want Ruby to become saddled with a "great on Unix, sucks on Windows" label. Perl and Python, in some part thanks to ActiveState, had become the scripting languages of choice for the Win32 platform due to their wide variety of available packages. I wanted Ruby to become at least as good as, if not better than, Perl and Python as a choice on the Windows platform if for no other reason than as a means of promoting Ruby the language. I'd like to think we've had some success there.

But back to David's point. I'll be the first to agree that Microsoft is a disgusting monopoly, and that the Windows operating system has been riddled with security problems. However, while learning the Win32 API I've come to like a lot of what I saw (about Windows the operating system, not Microsoft the company). The OLE/COM/WMI/ADSI stuff is pretty dang cool and I can do things in Ruby on Windows that I could never do on any Unix variant. Some of the functions are far more fine-grained as well, such as CreateProcess when compared against fork, for example. Or even the concept of services. To make a long story short, it's far more programmer friendly than Unix. In fact, if Windows is guilty of anything, it's that they provide too many ways of doing (nearly) identical things.

I'm not really sure what David is getting at with regards to toolsets. When I'm programming, all I need is a terminal, a web browser and an editor, regardless of operating system, and I've got 4 at home - FreeBSD 4.9 and Windows XP Home on the laptop, and Suse Linux 8.0 and Windows XP Pro on the desktop. Once upon a time I had BeOS 5.03 as well. I also use Solaris (now 10) at work. Mostly I think it's fun to see how things work on different operating systems. The tools are mostly the same. Is working with Ruby + PostgreSQL + Apache + Rails on Mac somehow different than Ruby + PostgreSQL + Apache + Rails on Windows? No.

I suppose that David is actually targeting folks who *prefer* Windows as an operating system over other operating systems. I don't, generally. I suspect he's indirectly targeting the .NET/C#/ASP zealots who tend to denegrate dynamic languages in the same way that Java zealots do, and those are the folks that DHH isn't interested in hiring. At least, that's my pop psychology guess.

That being said, even if the Win32 Utils project didn't exist I would still keep a Windows partition around for games and peripheral support, however. But, if you were to ask me which operating system that I prefer, well, that's easy.

BeOS. :)

Read: Those poor, dumb Win32 bastards

Topic: Web Programming with Continuations Previous Topic   Next Topic Topic: Wiki on a Dragon Roll

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use