I have been asking me this question several times over the last few months. Are people really stuck on Windows? Some minds out there pretend that it is so, but I really have to disagree.
I don’t want to convert anyone to using Windows. Nor do I want to argue that some OS is better than other. I just believe in using the right tools for the right job, and most of my job consists on getting stuff done on Windows these days, so I’ve been able to rediscover it, and learnt to love it in the process.
This is a lenghty summary of my roughly 10 years of involvement with computers in general. I hope you don’t get bored from reading it. Most people might identify themselves with the narrative, and others might just ignore it. But it’s my story, and most of what happened through those years serves as a justification of why I came to be who I am today.
For a long time I was a Mac OS user. It all started around 1997 if I recall correctly, when I bought my first laptop, a tangerine iBook. It was about the same time that I started using Linux. Not on the desktop, no. On the server.
I had just started working on an ISP, my second computer-related job. The first one was about maintaining some applications written in Clipper, which I then started porting to Visual Basic 5.
But back to the ISP. My job was to do, erm, everything. I started by learning about this new thing called PHP on my first day. Then I learnt that there was this database called MySQL that you could use with PHP, and that it was really fast and easy to use. For sure it made me forget about my bad experiences with DBase.
I remember the pain that it was to setup Apache + PHP + MySQL back then. Package management existed, but PHP and MySQL were so new that packages did not exist for them. Or at least not the versions that I wanted to install (my memory fools me sometimes).
I was very young at the time, and I remember the pleasure that I had when I ripped off that last NT4 server.
But for quite some time, that was pretty much all that my experience with Linux amounted to. At the same time, I was responsible for doing some design work, and most of that was done on my iBook, with Dreamweaver and Photoshop.
I also had a desktop running Windows 95 with the basically the same applications, but the machine was so old and slow that it pretty much served only as a jukebox, with Winamp and thousands of mp3 files.
For almost two years, that’s what I used. I had a really bad impression about Windows 95, because that machine that I used was so slow and crappy, it would constantly hang or crash. On the other hand, OS 8 and 9 got the job done, and the Linux servers lived on. We got hacked once, cause I forgot to turn the telnet service off. And a disk failed once, and after a painful time with fsck, some 300 email accounts had their guts sprayed through lost+found. Ooops.
Then I left the ISP, to start my own company, X3ng. Some Linux distributions started supporting the PowerPC, so I gave it a try. I got YellowDog Linux into the iBook. I remember it was a very awkward process to do it by the time. There were no bootable CD images at the time I think, and all the HOW-TOs described the installation process using floppies. Floppies on an iBook in 1997? No thanks. :)
Somehow I stumbled upon some documentation describing how to telnet into the OpenFirmware (!) and then net-boot (!!) from a disk image served by TFTP (!!!). Wow, that was wild. Not for the faint of the heart, no.
It was about the same time that I’ve learnt Python, the hard way, through Zope. I believe there was a Python package on YellowDog, because I don’t recall compiling Python itself. Or maybe it was so painful that my mind blocked it. Who knows.
I don’t quite remember what editor I used at the time. I believe it was Quanta. And my email application was KMail. I remember how excited I was when KMail added every new feature. And how slow it was. Poor KMail. Quanta wasn’t exactly the best HTML editor around either. Compared to Dreamweaver, yuck. And I used Konqueror I believe. Constant crashes. Then Firefox came along, and more crashes. I also used XChat.
But YellowDog wasn’t exactly fast at updating packages. And the constant crashes begged for constant updates. Around that time Debian started supporting the PowerPC. I believe bootable CD images existed at this time. And to boot (no pun intended), I needed more space so I replaced the iBook internal drive, and put Debian on it.
Life was much better on Debian. There I discovered Emacs, and mutt, and fetchmail, and ion, and irssi. I turned into a command-line monster. And applied for being a Debian Maintainer. Then gave up. I think that’s where I started to realize that I was spending more time tweaking and configuring my system than doing actual work, but it wasn’t a strong feeling, just something on the back of my mind.
About 3 years into that, I got hold of an used Powerbook Pismo, which was just a little bit more powerful than my iBook. Just enough to boot OS X in a reasonable time. Oh, and how I wanted to run OS X. I really wanted to.
But the machine was just not fast enough, so I made a partition for ‘ol Debian and left OS X on a corner, in the hope that I would go back to it eventually. But there really wasn’t much intersting stuff to do on OS X at the time. I created the first Plone installer for Mac OS X at some point, and that was pretty much the only useful thing I got done on OS X for quite some time. I tried Fink, which gave me that warm feeling of using Debian, but it wasn’t the same thing. I remember that I tried to install some package, and the box went on, churning for some 20 hours until a binary popped out on the other end.
To make a long story short, and this is one of the longest ones I’ve written, I started working at Enfold Systems. And the goal there is really to make Plone work and be a nice and well-behaved Windows citizen.
For quite some time I tried to stay on Linux, but at some point it just didn’t cut it anymore. I would write tests, and they would fail on Windows. I would have to debug something, and it would be running on Windows. I wanted to try some cool new technology, nope, Windows-only. And I, stuck on Debian PowerPC. No Java 1.4, no Flash. Really stuck.
So I bit the bullet. First I borrowed a machine from X3ng, and put Windows XP on it. Then I got a desktop from Enfold. Got good ‘ol Emacs going, and dropped mutt for Gmail. Got used to cmd.exe, it’s not that bad when you get used to it. In fact, every time I go back to bash I miss that tab-completion style. I heard that zsh works similarly, or that it was borrowed from zsh, not sure.
Many open source applications are available for Windows these days. I’ve mentioned Emacs, but notable apps include Firefox, Gaim. Evolution is quite close from working on Windows. I installed it, but it crashed right away. I heard Gimp works on Windows too. There’s some great stuff on SourceForge. Checkout ‘console’, it’s a tabbed terminal written in .NET. Really neat stuff.
I haven’t missed much of the stuff I used on Linux. I was really used to mutt and was hard to give up on it, and irssi, but that is pretty much the only two things that I really miss.
I was stuck on Linux, at least on PowerPC. I didn’t have good Java browser plugin, or Flash. Now I’m on Windows, and I’m happy. I’ve got to keep some of the tools I was used to. And they work on Mac OS X too. I am able to checkout some of the latest trends in technology, Windows Workflow Foundation, Silverlight. I have iTunes. And now Safari too. And Gaim. And Emacs. And even Mono. And they all happily work.
I don’t feel stuck on Windows. I now have a Macbook. The little beast is pretty darn fast. I ordered it with Parallels and Windows XP pre-installed. In retrospect, I haven’t used Mac OS X much since I’ve got this Macbook. Which makes me wonder why I haven’t moved to Bootcamp yet.
Parallels is quite fast. Sometimes I completely forgot that I’m running Windows XP on a virtual machine. One such case was when I installed Skype. Download, setup, login, made a call. Then I realized, “but wait a minute, I’m running this inside Parallels!”. It was *that* transparent. Parallels is really a miracle on its own.
From time to time, I install some new “app du jour” on OS X. Just to then forget about it completely. I sort of have a similar feeling to OS X than I have to Linux. That when I’m on OS X I spend too much time playing with an app here and there and never quite get my job done. I really try to use OS X, but can’t get used to it. Maybe it would work best on a larger monitor. Those large fonts just take too much space on my screen. And lots of windows. I don’t know, just haven’t got used to it.
To be fair, I feel a little bit stuck on Windows at this time. But only because I wanted to move to Vista, but I can’t just yet because I want to wait until Bootcamp supports the x64 bit version. Then I will be a happy camper.
Blogged with Flock
For me, it’s all about the tools. There’s really no equivalent for the following tools on any other platform — all in my personal opinion, of course:
– TextMate
– CSSEdit
– QuickSilver
– Colloquy
– Keynote
– MacPorts (I know Windows has CygWin, but it’s not the same :)
– OmniGraffle / OmniOutliner / OmniFocus
– Pixen
– Tofu
– WriteRoom
etc etc.
These applications have no equivalents on Windows that come close to the quality and sheer joy of use.
And then there’s all the small things like UI consistency, shortcut key consistency, wi-fi handling, startup time from standby mode, audio card handling, dual monitor handling, internationalization handling, font rendering (and the insane quality of the default fonts), Bluetooth handling, flawless phone/computer synchronization, I could go on and on. :)
But hey, use whatever works for you. I just know that I’m much more productive in OS X than anywhere else. Of course that’s going to be a very different thing for different people.
Why are you waiting for Vista, if this one promise to have nice features that OS X already has since years ago!? And this is about stock features of the OS X, i didnt even mention those apps that Limi just cited.
IMHO, unless you use windows for games, there is nothing else it can do better than OS X.
cheers
Indeed, Alexander, I forgot to mention some of those OS X apps that I use now and then.
I love Colloquy, and it’s my most used OS X app, even though I seldom use OS X. And Keynote just rocks, though Office 2007 comes a close second.
The Omni suite is amazing but I never actually had to use it for anything. You must understand that, as I’m just a developer. Some of those editors have Windows-equivalents btw. There’s a TextMate clone in the early stages, and there’s DarkRoom. I was one of the first to discover Quicksilver, btw.
Some of the things you mentioned are really good points, and people should have those in mind when considering moving from Parallels to Bootcamp:
– Parallels boots *way* faster than Bootcamp
– You get OS X wi-fi handling, bluetooth, dual monitor, audio card, etc.
The last one is really important. It saved my day once when I used my phone as a bluetooth modem to connect to the internet via GPRS.
@Henrique:
As I said, I believe in tools that get the job done, not on using technology because of it’s ‘coolness factor’. Don’t get me started on ‘Windows is only for games’. The XBOX is good for games, and the PS3, and the Wii. PCs are not good for games.
Using Windows might not be cool, but Windows has a rich development environment with several tools and technologies that are just not available anywhere else.
.NET and COM for example, keep surprising me. If you take a look at the pywin32 mailing list, there are people using COM to automate and embed the most diverse applications.
Now, say I want to build an IDE for OS X and embed some components from TextMate into my app. Is that even possible?
I remember that when I made my switch to OSX (about 1 year ago, from GNOME/Linux) it took me some time to get used to it, and it was probably a full month or two before I really felt good about it. If I wasn’t determined to move to OSX I probably would have gone back to Linux and continued to use VMWare for Windows when needed.
My point is that switching environments is difficult and it is not likely to happen unless there is a driving need. Mine was to have a Unix core with a nice desktop environment (limi is right, cygwin just doesn’t cut it). OSX fits that need…
I have to say though, in the past year what has really sold me on OSX is the obsessive developer community. Mac apps have a level polish that no other system comes close to. It’s nuts. It makes it worth putting up with the zealots (granted, if you dig deep enough in any community you will eventually discover a group of zealots, or at least some smugness[1]).
As for running XP on a Mac, Parallels is indeed fantastic (VMWare is turning out to be very nice as well). Note that you don’t ever need to “move to Bootcamp” because both Parallels and VMWare can boot from the Bootcamp partition, so if you really need that little speed boost that running XP natively provides, it’s always an option.
Anyway, I’m straying off topic. If XP is working well for you, that’s great, keep on using it. You have the benefit of owning a MacBook so you can use any system that suits your fancy. If you can live without Quicksilver, more power to ya :)
[1] An aside: one of the things that I have always liked about the Python/Plone/Django community is that the “smugness and zealotry” level is minimal. In general, it’s a very level headed group.
How do you handle your normal plone development tasks? I’m under the impression that you almost *have* to use an IDE to get work done, as (again, my impression) the normal unix commandline tools are a pain to get working on windows. I remember trying cygwin once on a windows-inside-vmware-on-my-linux-machine.
You mention emacs (hurray), so that doesn’t sound like you’re using wingware, eclipse’s python thingy, etc.
So: you apparently have a good cmd.exe replacement. What about the rest of the stack? Commandline svn, tar, you know. Any tips/links/overviews you can give? We’ve got some customers that do a bit of developing themselves (on windows), that’s why.
Reinout
Reinout :
“What about the rest of the stack? Commandline svn, tar, you know. Any tips/links/overviews you can give?”
– svn : I get a commandline from installing TortoiseSVN
– tar, grep, etc. I get from installing UnxUtils and setting the path to point to the bin where are the *NIX executables are (cp.exe, etc.).
I find it a bit awkward to find the right version or repository of UnxUtils. Everytime I have to set it up I google for it.
Sidnei:
You’re definitely a much more meaninful coder than I will probably ever be and I truly admire your programming history/experience/skills. In fact I’ve been long enough in the Plone community to see a shift in your position about Windows. However most of your arguments – and also those of commenters – focus on utilitarian aspects e.g. “getting the job done”.
No doubt windows is in some respects very slick. I’ve been using it 95 % of the time over the last 20 some odd years. However, I feel an urge to move away from Windows for reasons other than utilitarian. I’m willing to sacrifice some of the goodies of Windows and MacOS for sustainable community development. I don’t know when that’ll happen, but that’s my target.
Free as in my 2 cents.
Yves
I think it is an error of not considering the openness of the platform and tools you choose to work with.
As a developer, I’m sure you can appreciate the inherent problems in relying on proprietary components you have no control over.
Not trying to “convert” or otherwise convince you to switch and all that. Just saying that it is an important point that shouldn’t be overlooked when making a choice about your development process and products, specially on the long-term.