After 15 years of "pain" and "despair," open-source developers on Tuesday celebrated the release of version 1.0 of the Wine emulation software by, you guessed it, opening a few bottles of wine.
Wine allows Windows applications to run natively on other operating systems, including versions of Linux, Unix and the Mac OS. It adds a Windows compatibility layer that lets Windows programs work on those other OSes. Unlike virtualization software, it does not require Windows to be installed locally.
The software has been available in beta releases for several years, but Tuesday marks the first "complete" release. Over the years its developers have sometimes struggled to keep pace with the changes in Windows, which helps to explain the long development cycle for version 1.0.
A group of developers started writing Wine in 1993, around the time Windows 3.1 was becoming widely used. The initial versions ran Windows 3.1 applications on Linux, with the Solitaire card game being the first program successfully tested.
The changes needed to support Windows 2000 and Windows XP were "a lot more painful than we thought," said Jeremy White, CEO of CodeWeavers, a software development company that has been the core driver in Wine development.
There weren't any fundamental changes to Windows XP that stopped Wine from working, but the support in Wine for Windows features like COM (component object model) and OLE (object linking and embedding) had to be rewritten, White said.
Beyond the developments to Microsoft's OS, changes made by software vendors to their applications also added work, White said. The vendors stopped developing applications for older versions of Windows, and as a result, changes were needed in Wine to support the updated applications, White said.
Intuit, for example, rewrote Quicken to run only on Windows XP and not Windows 98, which led to numerous changes in Wine, White said. "What affected us is what the application makers did," White said.
Features were also added to the Ubuntu and Fedora flavors of Linux that broke Wine's compatibility, and Wine developers had to update their software to work with those OSes, White said.
"It became a long, dark tunnel and we despaired," White said.
Finally the project gained steam, and Wine became stable enough to be formally released. However, version 1.0 is not perfect, and changes to Windows and third-party applications will keep the Wine community on its heels, White said.
Despite the advances, the current version of Wine has serious problems with the .Net Framework software platform to build Windows applications. The continuous changes in copy-protection schemes are also a perennial "pain in the neck" to keep up with, White said. As applications have advanced, Linux developers are also continually developing resource-hogging security features that could break Wine compatibility, White said.
The Wine project should be able to keep up with Windows Vista, but staying current with the next release, code-named Windows 7, will depend on what surprises that operating system holds, White said.
Wine 1.0 can be downloaded from Wine's Web site.