Back to article
Editor's Note: Turning the Town Red
Wine and WineLib: Still Under Active Development
October 9, 2000
One of the ripple effects of the Microsoft investment in Corel was a potential change in the status of Wine, a technology that Corel had mightily championed and used as the underlying technology for its release of Corel WordPerfect Office 9.
For those unfamiliar with Wine, the technology: Wine is an implementation of the Windows 3.x and Win32 APIs on top of X and Unix. Wine provides both a development toolkit, Winelib, for porting Windows sources to Unix, and a program loader, allowing unmodified Windows 3.1/95/NT binaries to run under Intel Unixes, including Linux. Find more information about Wine here.
For many years Wine has been the Holy Grail of Linux development, offering a graceful solution to those critics who decry Linux as being ineffectual for the desktop because of a lack of native applications: if you can run Windows applications on a Linux box, Linux becomes a much more compelling replacement for Windows.
Corel, with its profitable stable of Windows applications, became a big supporter of Wine and in fact devoted some serious dollars--Canadian dollars, of course--in developing Wine code that addressed COM, OLE, multithreaded messaging, CommDlg, CommCtl, header files and definitions, GDI, and printing issues. In the course of aggressively developing Wine code, Corel ended up forking Wine--or, as Corel admits, Corel ended up with a "parallel internal branch of the WINE code."
But when Microsoft invested in Corel recently, speculation was that Wine was a dead duck; Microsoft tends to aggressively attack efforts to emulate Windows behavior in non-Windows code.
Enter CodeWeavers, a small but important vendor of Windows cross-development tools (i.e., Twine, a commercialized implementation of Wine development tools) and the firm on the forefront of Wine development, serving as the employer of lead Wine developer Alexandre Julliard and a total of 14 Wine developers. I sat down with Jeremy White, the founder and president of CodeWeavers, to discuss the future of Wine, given Corel's new relationship with Microsoft.
The future of Wine, White admits, isn't nearly as rosy (or--pardon the pun--ros�) as he or other Wine developers would like. Which isn't bad news. Confused? Let Jeremy explain:
"I actually think that Wine is less important than WineLib, because you can now buy VMware and run Windows applications on a Linux box," White says. "Sure, you need to pay for VMware, but the solution exists."
WineLib is the programming toolkit that lets developers compile their Windows applications for use on Linux. Instead of relying on Wine to run native Windows applications, WineLib allows developers to release a Linux version of their software without having to massively convert source code. As Wine 1.0 is still months away from release, the Wine developers have quietly turned their attention to WineLib.
"Basically, Corel forked their version of Wine, to the extent where it would take months to merge their tree with the primary Wine tree," White says. The problem, White says is that while the Wine developers have been incorporating Corel code and solutions into the main Wine tree, Corel has not been incorporating newer Wine code into their fork. So while Corel's plans for Wine are uncertain, given the huge investment Microsoft had made in Corel and Microsoft's traditional antipathy toward anyone reverse-engineering Windows APIs, the Wine project enters a state of uncertainly. Which, White says, is good news.
"The truth is, the uncertainty helps us out enormously," he says. "For companies that don't know what Microsoft will do, the better off we are. We can serve as the main resource for the people who want to hedge their bets and come out with a Linux version of their software." Under this scenario, commercial vendors and VARs will need a source of expertise to come out with Linux versions of their software, which creates a market opportunity for WineLib and CodeWeavers--and for Linux, both on the desktop and on the server.