Brad Choate argues that Wine and other Windows emulation packages for Linux are a bad idea, because once Linux attains full Win32 compatability, people may just decide to write Windows apps and ignore writing native Linux apps altogether. I disagree.

First of all, the emulators provide a way to counter the old “if only” argument. “If only Linux could run Outlook, I’d use it as my desktop OS.” “If only Linux could run this inventory management app we use at work, I’d install it.” Emulators provide flexibility that some people could not run Linux without. Now let’s look at the other side of the coin. First, here’s the core of Brad’s argument:

Huh? How’s that? Waitaminute — Microsoft loses if you don’t need Windows to run Windows apps, right? No — Linux loses because there will be less incentive to develop native Linux software. Worst case, the Linux application development community shrugs and starts learning Visual Studio and MFC. Because if Linux can run Windows apps, they might as well make Windows apps, since Windows certainly can’t run Linux software. And if there’s little to no development going on for Linux, then eventually people will realize that they might as well be running Windows for all their Windows software.

I think Brad is a bit confused about what motivates Linux software developers. Windows is already running on like 95% of the computers out there. Let’s face it, the people who are writing Unix software right now are people who want to be writing Unix software, whether it’s because of the tools, or because they like free software, or because they enjoy using Unix. If they wanted to write applications for everybody, they’d write Windows applications. The fact that Windows applications can run under Linux isn’t going to woo software developers to Windows, because those apps will still be Windows applications, not Unix applications.

Brad is also flat out wrong about Windows running Unix software. It’s easier than ever to port Unix applications to Windows. Most really popular Unix software already runs on Windows, by virtue of Cygwin or people just doing the work required to get it there. I run Windows on my laptop at work, and the applications I use most of the time are Emacs, vim, bash, cvs, and Mozilla. The rest of the stuff I use is mainly Java-related. You know what? Windows still sucks. If the Linux desktop gets just a smidgen better, I could see myself dumping Windows altogether (except for games).

The bottom line is that emulation holdes a lot of promise for Linux. Imagine a day when you can do all of your productive work in a Unix environment, with virtual desktops, a killer file system, real ability to access the machine remotely, Unix copy and paste, and the ability to start up that killer new game you picked up last week, all without rebooting. If anything is going to get us there, it’s emulation. No fear.

Brad emailed me a response to this piece, and I followed up on that here.