Fifteen years in the making, everyone's favorite software to run Windows programs on Linux and Unix, Wine, is almost ready for its 1.0 release.
If all goes well, Alexandre Julliard, Wine's lead developer, says that Wine 1.0 should appear on June 20, two weeks after the program's fifteenth birthday. While at this point there are about 1,300 Windows applications that will install and run on Wine to some degree, only four sets of Windows applications -- Photoshop CS2, PowerPoint Viewer 97 and 2003, Word Viewer 97 and 2003, and Excel Viewer 97 and 2003 -- are considered critical for the 1.0 release.
Wine, largely based on volunteer efforts, has always lacked the resources for comprehensive quality and assurance testing. This problem is even bigger than it appears since there are so many different Windows environments, Windows applications, and Linux distributions. Wine has spent so many years in testing in large part because it must replace poorly documented Windows application program interfaces (API), which vary wildly from one release of Windows to another.
As Julliard explains, "There are several reasons [it has taken Wine so long to get to this point]: the Windows API is huge, not well documented, and full of tricky behaviors and side effects that applications depend on. It's also a moving target, as Microsoft keeps adding new features and pushing developers to adopt them (not always successfully, fortunately for us). Also, finding what goes wrong with an application is hard, because we don't have access to the application source code so we can't easily see what confuses it."
In addition, Julliard says, "There are a huge number of Windows applications out there, and while most people only need one or two, they all need a different one or two. So for a credible 1.0 we need to support a broad range of applications, which means we can't take any shortcuts in our implementation, since any shortcut is bound to break some application somewhere."
Jeremy White is CEO of Wine's commercial sibling, CodeWeavers, creators of Crossover Linux and Mac, programs that make it easy to use Wine on Linux and Mac OS X. White says, "I think people don't realize just how very hard Wine is. We're completely recreating Windows from the ground up. Microsoft, with their tens of thousands of employees, has a hard time shipping a new release of Windows that is backwards compatible *cough* Vista *cough*. So imagine then, instead, a scrappy band of volunteers replicating that work with a fraction of the people." [...]
Wine's biggest kick in the pants may have come in 2006 when Google got involved. White says, "This is actually a remarkable story of how much impact one person can have, because the honest truth is that for all that it's cool to say that Google is involved, what's really helped is that Dan Kegel [the WINE release manager], who happens to work at Google, is involved."
Google's first contribution was paying for CodeWeavers to bring over Picasa, its popular free photography program, to Linux. Google is also funding CodeWeavers' work on getting Wine to support of Adobe Photoshop CS and CS2. Kegel says in a recent Google Open Source blog posting, "Photoshop is one of those applications that desktop Linux users are constantly clamoring for, and we're happy to say they work pretty well now."
White would like to see Windows applications work even better with Linux. Still, White says, "I think the key message people should get is that Wine 1.0 is not the Wine from three years ago, or even two years ago. It's pretty remarkable in what it can do -- people should give it a try.
Looking ahead, Julliard sees a lot more work ahead for the Wine crew. "There are a lot of things we want to support: USB devices, 64-bit apps, .Net apps, user interface themes, a Mac OS native interface, etc. Then of course all the new functions that Microsoft will keep coming up with, and all the remaining incompatibilities in the ones we have implemented already. There's plenty to keep us busy for the next 15 years!"
Found on Reddit
Props to the wine folks - they do an amazing job. Reverse engineering a system as messy as windows is no small task.