LWN.net Logo

Wine gets better, but not perfect, with age

November 3, 2010

This article was contributed by Joe 'Zonker' Brockmeier.

The Wine project doesn't get the kind of attention it used to, but the project is still chipping away at being compatible with the majority of Windows applications. One one hand, Wine faces a moving target in keeping up with changes to Microsoft's platforms. On the other, Wine has become less relevant to users in the face of virtualization. Despite the challenges and competition, Wine still is still proving successful as a project and as a commercial venture.

The Wine Project recently released the stable 1.2.1 and unstable 1.3.5 branches with a number of fixes and new features. Like its namesake, Wine has continued to improve with age. A look at the most recent vintage, however, shows that the project still has a long way to go before it's ready to tackle any and all Windows applications.

Wine was once widely considered a very important piece of software for the success of Linux on the desktop. The theory being that if users could run Windows applications more or less flawlessly on Linux, it would encourage people to switch. Assuming an application runs under Wine, it would even have advantages over Windows because one could leverage the strong points of Unix/Linux with a popular Windows application. That hasn't quite worked out as planned, though. Wine has been a useful tool for many users, but its adoption and influence on the spread of Linux has been fairly limited.

After nearly 17 years of development, running Windows applications on Wine is still tricky business. Some applications and games run flawlessly, while others run only with several tweaks. In testing Wine 1.2.1 and Wine 1.3.5, a few applications installed and ran without any problems — like Notepad++ and Evernote. As CodeWeavers founder and CEO Jeremy White says, "we've hit a point where you have a better than 50/50 chance of your app working. And if your app is simple/small enough, there is a good chance it will work perfectly."

And that seems accurate. In testing some other big and complex applications, there was little joy to be had. Microsoft Office 2010, for instance, doesn't get past the the installer. Safari for Windows fails immediately after installation, and the Internet Explorer beta fails as well. Internet Explorer 8 installs, but does not work correctly. This is not to fault the Wine developers too much, however. The fact that complex Windows applications run at all is a commendable feat. Seeing a Windows application like Evernote running flawlessly on Linux is deeply impressive. But it's not necessarily useful if a user wishes to run Word 2010 instead.

Commercial variants and concerns for Wine

Part of the challenge with Wine is that it's very capable, but complex to configure. Users who are willing to spend the time and effort can make many applications run that don't run "out of the box." To that end, several commercial offerings have developed over the years to help users more easily harness Wine.

First and foremost, there's CodeWeavers, which does the bulk of development work on Wine and employs its lead developer, Alexandre Julliard as CTO. There's also Cedega, which is developed by TransGaming off a fork of Wine created in 2000. TransGaming has not been a significant contributor to Wine, and has gone so far as to ask projects not to make it easier to build from their CVS tree.

CodeWeavers, on the other hand, has been extremely generous to the Wine Project and community. White says that it's company policy for "all work [to] go into Wine *first*." He does acknowledge that there are a few differences between CodeWeavers Wine and the Wine Project, but not many. "CrossOver has a few proprietary hacks^H^H^H^H^Hadvantages that enable specific applications (e.g. MS Office) to function better, but by and large the code base is identical."

If you're hearing less about Wine these days, it's probably because most users now turn to virtualization instead of emulation to run Windows applications. White says "candidly, virtualization is kicking our rear end. In the Mac space, we're probably outsold 25 or more to 1 by things like VMware and Parallels, even when Wine would run a given user's application."

White acknowledges that virtualization has an advantage in that it works "in a predictable fashion," and says users have "a really hard time accepting and working within" Wine's limitations. The other factor working against Wine is the sheer ubiquity of virtualization and the fact that today's desktop and laptop computers can comfortably run two or three OSes without a significant performance cost.

Still, White says it's frustrating that more users don't at least try Wine to see if their applications will run. "I always hate when someone jumps to use virtualization without ever having tried Wine or CrossOver. This probably flows from the fact that we're a technology company, with a passion for Free Software; if we had instead a passion for Marketing, we'd probably be in better shape..."

What kind of shape is CodeWeavers in? The company probably won't be raking in Apple-sized revenue anytime soon, but White says that CodeWeavers is doing well. "Of course, you always think you can do better, but we're doing well." The business comes from a split of individual subscriptions and businesses. White says "a bit more" than half comes from individuals, and a "very nicely growing business doing ports; using Wine and CrossOver to do a very fast port can be a great business case."

Though Wine has been considered a major application for Linux, much of the revenue that's supporting Wine development is coming from Mac users. White says that "the Mac business is now a bit more than half of our business as well. That's good for Linux — without that revenue, we wouldn't have been able to contribute as much to Wine lately as we've been able to."

Where Wine is going

For CodeWeavers, White says the company will put emphasis on its porting services for Windows applications in the near future.

What's on the horizon for Wine 1.4? Firm release criteria haven't been set, according to the Wine wiki but unfinished release criteria from 1.2 indicate several priorities.

One is the implementation of Direct3D 10 for DirectX, and fixing a mouse problem in the interaction between X11 and Wine/Windows applications that means Wine has to fake the position of the mouse by calculating the difference between its absolute position and how far it's moved. This is a problem when the mouse moves to a window not controlled by Wine.

Another target is to ship Mono with Wine to run .Net applications. The project, or at least Andre Hentschel, is also working on ARM processor support, which first shipped in 1.3.4, which might be important for ARM-based netbooks.

Interested in helping with Wine development? The project has an extensive TODO list and docs on how to become a developer. They even have a list of "fun" projects.

Though Wine doesn't seem to be the Holy Grail to pave the way for widespread desktop usage of Linux, it still plays an important role for quite a few users. Given the continually shifting and changing Windows platform that the Wine Project has had to target, the current state of Wine is very impressive. It will probably never achieve 100% compatibility, but it does many things very well and means that many users need not pay Microsoft for Windows licenses they don't want in order to use a few Windows-only applications.


(Log in to post comments)

Wine gets better, but not perfect, with age

Posted Nov 4, 2010 14:02 UTC (Thu) by wookey (subscriber, #5501) [Link]

I've found wine to be vital in the area of building design. There are hundreds if not thousands of tiddly little programs for helping to design and cost buildings: U-value calculators, dewpoint calcs, hundreds of apps for calculating how many fixings of a particular type you need, or which size bracket, or how many bricks, what size rafters, and so on. It's a huge area, largely untouched by Free Software currently. You can't design anything non-trivial without wine at the moment (or at least it would be incredibly hard work). I've really enjoyed the way that most of this stuff 'just works' under wine. Even google sketchup with a bit of faffing.

I wrote a little page about how we really ought to start work on this whole area - some intergrated Building information systems software and bringing together stuff that does exist could make something incredibly useful:
http://wookware.org/openbuilding/

That badly needs turning into a wiki and a project to start making some progress. Do please contact me if you agree it's interesting. So far there are about 2 of us...

Wine gets better, but not perfect, with age

Posted Nov 4, 2010 14:32 UTC (Thu) by promotion-account (guest, #70778) [Link]

Indeed. There are lots of software areas outside of the free software realm; a recent case I faced was software for programming different kinds of hearing aids.

Wine gets better, but not perfect, with age

Posted Nov 5, 2010 15:20 UTC (Fri) by tnoo (subscriber, #20427) [Link]

Most data loggers can just be programmed with some Windows software. Unfortunately they usually need Serial or USB ports, which only sometimes work under Wine. What usually works is Windows XP under Virtualbox, but this is not as fine-grained as having apps run under Wine, and the Windows are not managed by the X11 window manager.

Good serial communication would be vital for this task.

Wine gets better, but not perfect, with age

Posted Nov 4, 2010 20:42 UTC (Thu) by cracauer (subscriber, #15239) [Link]

Cedega seems to be pretty much dead anyway. You might speculate that this is what not cooperating got them. Apart from new releases petering out they have also broken the few things that older Cedega releases did for me that Wine did not.

Overall, I am more concerned about things that seem to openly not to want to run under Wine. I think you can count iTunes as an example. As people move more and more to web-based things instead of local applications we Linux and FreeBSD folks have it easier. However, iTunes and a few similar things stand out as a new generation of "killer applications" that you need. As it is you have to gear up VMware for it.

I understand that Amazon's kindle for PC (Windows) runs under Wine, but do I really want to invest money in electronic books on Amazon when the reader might become broken under Wine any day?

We have seen this story and know how it ends..

Posted Nov 4, 2010 23:41 UTC (Thu) by jmorris42 (subscriber, #2203) [Link]

Wine is chasing a moving target with insufficient resources to ever catch it. This it is always in a state of almost, but not quite, running a lot of things yet never getting over the hump before the thing in question is obsoleted by new thing that almost but not quite runs.

Wine started out to clone Win16. Assuming anyone cared, is there a non-trivial Win16 app that runs on it now? Photoshop, Quicken, Office, Wordperfect? No, because the action moved to Win95/NT's Win32 before Win16 ever stabilized. Wash, rinse, repeat as the action moved to supporting WinXP applications. Because of the unusual length of that product's lifespan things got much closer and several large applications were actually usable, especially if you sprung for Crossover. But Microsoft got back in the rewriting the API game pretty big time with Vista & 7 so XP support will never quite get finished because the action has shifted back to taillight chasing.

I remember this story.... DOSEmu reached 1.0 just in time to ship in exactly ONE RedHat major release cycle before being dumped for lack of interest. Now you can't even run it anymore since modern kernels don't even include the support for running 8086 code. And once you go 64bit it is a hardware limitation.

FreeDOS released a 1.0 version. Yea, nobody except a few industrial control people cared by the time it happened.

ReactOS is trying to make a clone of NT/XP. And have been for well over a decade without producing anything approaching something useful. Pretty safe bet the same will remain true as they celebrate their twentieth anniversary.

Haiku is closing in on a decade of effort to clone BEOS to a stable release. But hey, they are self hosting and might actually get a 1.0 in time to celebrate their tenth anniversary. BEOS was great tech.... for the 1990's. But how much multimedia are you doing restricted to VESA video modes or running in an emulator.

Linux could do what it did because of the long toil of the GNU Project to have a full userland and development environment ready for it to complete.

Think the lesson to be drawn is that unless you have a plan to have massive resources to bring to bear at a big cloning project, don't bother as you will just get a lot of folks worked up, many will spend a lot of effort and in the end it ends in fail.

If a major player were to throw a thousand third world developers at it, Wine would succeed in a year or two. Success defined as having a top ten list of major current Windows apps running as reliable as they do on Windows and 90% of random apps installing and running even if with imperfections. Problem is the ongoing effort to keep up with something like Windows is probably beyond what volunteers or a small company like CodeWeavers are likely to muster so unless a fairly large revenue stream was found it would only be a temporary success.

Sorry to be a Eeyore.

and yet wine still hasn't ended..

Posted Nov 5, 2010 9:29 UTC (Fri) by mlankhorst (subscriber, #52260) [Link]

Yes wine will not be able to run all programs perfectly, it's still useful though. 16-bits support is still functional last time I checked, and even some dos applications might still be supported..

Oh and I have to point you to http://wiki.winehq.org/Debunking_Wine_Myths#head-0a74c315...

We have seen this story and know how it ends..

Posted Nov 8, 2010 8:04 UTC (Mon) by nix (subscriber, #2304) [Link]

DOSEmu reached 1.0 just in time to ship in exactly ONE RedHat major release cycle before being dumped for lack of interest.
And now we have DOSBox, which can run most things anyone cares about on DOS anymore (old games) under emulation accurate enough that even a lot of 1990s-era demos work.

Wine gets better, but not perfect, with age

Posted Nov 5, 2010 14:25 UTC (Fri) by Quazatron (guest, #4368) [Link]

I disagree. Wine is an important project. How else am I supposed to play Half-Life and Portal?

VirtualBox just recently gained 3D acceleration, and I still couldn't get it to work. If Wine gives me the option to run Windows games without the hassle of installing Windows, I'm all for it.

Wine gets better, but not perfect, with age

Posted Nov 6, 2010 13:13 UTC (Sat) by ballombe (subscriber, #9523) [Link]

I use wine for running test in configure scripts when cross-compiling my software for windows. That way I can provide window binaries without running any proprietary software. This is great.

Virtualization would still require me to have a window license, and would be much more painful to set up.

Wine gets better, but not perfect, with age

Posted Nov 6, 2010 18:12 UTC (Sat) by dlang (✭ supporter ✭, #313) [Link]

not to mention that if you run a virtual machine, you thenhave to worry about patching windows, anti-virus, and all the other problems that windows administration brings.

<rant>
people seem to consider virtualiation to be a solution to administration problems, they tend to ignore the fact that every virtual guest that you create is another (logical) box that has to be administered.

I've seen management reject good network architecture designs because they 'add to much complexity' because it adds a couple more pieces of hardware, but this same management doesn't blink at the thought of adding a few dozen virtual machines.

there is less hardware to manage, but the software management is the majority of the effort.
</rant>

Wine gets better, but not perfect, with age

Posted Nov 10, 2010 12:11 UTC (Wed) by nelzas (subscriber, #4427) [Link]

I agree. Just two weeks ago, as a student I've been asked to deliver exercises as windows executables. I installed mingw cross-compiler to do that, and then Wine to check that those executables run ok. I didn't need to do anything to configure Wine. Although I would like to play with virtualization, I don't have enough time to deal with it currently, but then only to try other Linux distros, not to have to deal with Windows...

.NET binaries

Posted Nov 8, 2010 14:53 UTC (Mon) by pr1268 (subscriber, #24648) [Link]

> Another target is to ship Mono with Wine to run .Net applications.

I thought one could run .NET binaries (semi-)natively in Linux with a "Kernel support for MISC binaries"-enabled kernel. Wouldn't running these through WINE be substantially slower?

I, for one, do appreciate the hard work the WINE developers have done, as I use several Windows applications in Linux (mostly games). Thank you.

.NET binaries

Posted Nov 8, 2010 23:39 UTC (Mon) by johnflux (guest, #58833) [Link]

In practise, most .net programs rely on the native windows libraries - "winforms" (http://en.wikipedia.org/wiki/Windows_Forms). This is the part that wine supplies.

Wine gets better, but not perfect, with age

Posted Nov 12, 2010 21:26 UTC (Fri) by chrisV (subscriber, #43417) [Link]

The use space for the open source version of wine in future is almost certainly going to be the user who has a small number of windows applications which she needs to use in order to "round out" the linux/bsd desktop. I make a lot of use of wine for spotify (I couldn't do without it) and to run an old but legitimate (ie purchased) copy of Word 2000 which is still required in order to turn around amended versions of Word documents which recipients expect to receive back in perfect native format. (They provide a draft, I return a revised/corrected version.)

For that kind of use area it is extremely valuable.

Commercially, the porting service referred to sounds like a sustainable revenue stream while windows is a mainstream OS.

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds