9 comments

[ 5.3 ms ] story [ 24.1 ms ] thread
windows is definitely easier for newbie developers, but once you start to want more tools, the unix env is still the best place to be. It's like trying to use vim when you've eclipse all your life. Vim plugins have all these "requirements" that make it look painful in comparison to eclipse addons.
I'm entirely a Linux person and would never want to use anything else. However, I think Windows really isn't that bad as a development platform--probably not the most fashionable idea in the HN crowd. I know developers--experienced ones, at that--who are very efficient on Windows. There are now tools like Powershell that give Windows the functionality you'd need.

While Windows is still proprietary and annoying, I don't think that just having a unix env is enough to be so much better than Windows. Of course, Linux is the best option for me because I'm used to it and can leverage it completely--and I'm sure it's the case for you too--but I've seen too many people efficiently using Windows to just ignore it out of hand. (Well, I can safely ignore it because it's proprietary, but that's completely unrelated to the topic at hand.)

Though, speaking as someone who started on Unix, moved to Windows, and is now starting to migrate back to Unix again - The plethora of tools can be as aggravating as it is liberating. Figuring out which of 50 different options will give the best development setup for $LANGUAGE strikes me as another chore I have to do before I can really sit down and start programming (i.e., the thing I actually want to be doing) more than anything else.

I'm sure some of that is simply that I'm out of the game and needing to catch up a bit. But it seems like there's something real going on there too. For example, I've noticed that at meetups for Windows developers folks spend the majority of their idle time talking about code and software design, whereas at meetups for Unix developers folks seem to spend a much bigger chunk of time talking about various gadgets and their pros and cons and how to tame them and whatnot.

His frustrations with getting the correct version of Python and Ruby packages is completely correct. I don't understand why OSX and Ubuntu still bundle a specific (usually old) version of languages to their operating system, and then we (as developers) need to wait until a new package is available for our operating system.

Is there any other good way to decouple the package management of languages (Python, Ruby, Java, what have you) from the operating system? I've used homebrew (edit: and rvm/rbenv) and like it, but it's not an official product from Apple.

(comment deleted)
I think the lesson learned is that switching to a new development platform on a completely different OS then with which you're familiar is not something to be undertaken trivially.

I say this having gone through all his pain when I switched to a Mac but now I'd never go back to Windows by choice.

I've done something similar and flip-flopped back and forth between Ubuntu and Windows. Other than the initial pain of installing Ubuntu and getting everything working just right (which actually wasn't any worse than Windows) I never had any trouble getting things to work beyond finding out what the right tool was. Gotta love apt-get.
While this doesn't help him get his time back, next time I'd encourage him to use rvm as the other posters have previously indicated — but instead of actually installing the massive XCode bundle (4GBs is a lot if you're using an SSD) I recommend he check out this 300MB bundle you can install which is just gcc and the other bare minimum tools you'd need to get ruby and the various gems working:

https://github.com/kennethreitz/osx-gcc-installer

Also, one small gripe is that it sounds like the majority of his complaints were actually trying to get Python and Mercurial working. This isn't really the fault of OS X nor does it bog down most Rails devs working on OS X. Just some perspective!

What? Just use whatever you're comfortable with. All the OS dogma is BS.