Wine 1.0 Brian Vincent and I have been conspiring to bring the Wine community some insights from some of the more well known and established members of the Wine Development community! We're going to try and have at least one interview posted each week up until the 1.0 release! We asked our targets the same set of 10 questions designed to try and get at some of their key thought processes and we present to you their responses each week. 1. It's been a pretty long road to 1.0. Do you think Wine should have tried to have a release based on any of the older versions over the years? If so, at what point or points do you think Wine should have tried to have a release? Why? Do you think the actual 1.0 release is at an appropriate time? Initially Wine only supported Win16 since it started in the Windows 3.1 days, and we could probably have made a release with pretty good Win16 support sometime in 1998 or so. But of course at that point everybody wanted to run 32-bit apps, so to concentrate on Win16 support to bring it to release would probably have caused many developers to lose interest. Instead we started re-architecting things to support Win32, which in the long run was the right choice, but meant that we couldn't release anything decent for a long time. 2. What highlights do you think we should point out about 1.0? I mean, now that we're here, shouldn't we be standing on the rooftops shouting, "We can do [this]!". What is [this]? If someone wanted to go take Wine for a spin, are there any Windows programs out there you'd recommend they try out? There's still a ton of Windows apps with no comparable Linux version, are there any in particular you find useful that you'd suggest someone try? Photoshop CS2 is clearly the flagship application here, but I think the message is to try anything they can, that's why we put all that effort into getting installers to work. At this point there's a good chance that just about any application will install and at least do something interesting. 3a. Looking ahead, what technical changes do you see Wine needing? Are there any large patch sets that are already sitting out there that haven't been merged because of the code freeze? The DIB engine is the major missing feature, I'm hoping to see this in 1.2. Some other interesting patches sitting out there are the iPod support (and more general USB devices support), and the animated cursors. In the longer run, 64-bit support will clearly require some deep technical changes; it's fortunately not as bad as the 16->32 transition, but it's still a lot of work. 3b. We've had a few different groups driving Wine development for a Wine, namely Google and CodeWeavers. What do you guys have planned for areas of focus? Over the years we've seen quite a few large changes that have moved Wine in very different directions - for example, D3D8 development really ushered in a new era of gaming support for Wine, the port to OS X has really opened the door on portability, is there anything like that on the horizon? Do you ever think someone will have ntoskrnl loading Windows drivers or hooking into the kernel or something like that? I don't think Windows drivers are all that interesting for Wine, except in a few specialized areas like USB devices or printers. General driver support would really have to go into the Linux kernel to be useful, and while that's certainly feasible it would be a separate project. On the Mac OS front we clearly need a quartz graphics driver, it would make the user experience a lot nicer. Doing it right is a pretty major task though, so I don't know when it's going to happen. 4. What don't we want to do? What technical things shouldn't we worry about? Are there any parts of Windows that aren't worth trying to support? For example, Win31 support hangs on tenuously at this point, is there ever a point where it's not worth supporting? Or does Wine fill a valuable role in that it allows legacy applications to be usable? I think there will come a point where the current Win31 support will have to be killed; it could be replaced by a cleaner architecture that is really independent from the 32-bit codebase instead of being intermingled with it, so that it doesn't get in the way of 32-bit changes and doesn't get broken all the time. The difficulty will be to find someone to do the work, working on new features is a lot more interesting... 5. Is Wine too ambitious? Are we trying to tackle something too big? Will there ever be a point where the complexity of the project combined with the regression rate isn't manageable by the size of our developer community? At one point about a decade ago it seemed like Microsoft was releasing new technologies and new API's every week. Things seemed to have really slowed down, but do you think that that trend will continue? Do you think we'll be able to keep up with future APIs with Vista, Windows 7 etc? So far we have been able to keep up, and I don't expect that to change. We are of course always lagging a bit behind, but I don't see the gap increasing, on the contrary. Besides, all the complexity is a major headache for Microsoft too, they are finding it increasingly difficult to make significant changes. 6a. If you could wave your magic wand and change one thing about Wine, what would it be? More regression tests... 6b. If you could wave your magic wand and change one thing about Linux [or OS X], what would it be? I'd like to have proper desktop standards, implemented correctly by the various desktop environments. We are slowly getting there, but it's taking much longer than it should. 6c. If you could wave your magic wand and change one thing about Windows, what would it be? I wouldn't know where to start, there are so many things that would have to be fixed... 7. Now that Wine has hit 1.0, do you think the major distros will bundle Wine? If not, why? Are they scared of lawsuits? If so, should they be? I doubt that they will bundle Wine, since they are all scared of Microsoft. It's all FUD, there's no rational reason to be afraid, but even if the likelihood of a lawsuit is very small, the infinite resources that Microsoft could put into it is enough to discourage them. 8. We should ask this only because there's no better way to incite violence than to start a flamewar on licensing, but do you see any need to switch to LGPL3? Most developers seem to be pretty happy with version 2. Then again, most people seemed happy with the X11 license before we rather quickly changed our minds. Is there anything within the LGPL3 license that would particularly be a problem for Wine? I don't think there's any problem for Wine either in LGPL2 or LGPL3, so there's not a lot of motivation for switching. I imagine that the switch will happen eventually when the need arises to share code with LGPL3 projects. 9. With 1.0 out, do you see the need for any process changes? Will patches still enter the Wine tree the way they have been? Do you think anything will change after 1.0 with regards to development style? I'm hoping we can make stable releases a bit more frequently than once every 15 years... Also we'll hopefully be able to put in place the system for keeping track of contributions that we've been working on with the SFLC; but that's mostly a paperwork issue, it won't change fundamentally our way of working. 10. If we could magically add all the developers in the world and have a Wine 2.0 this time next year, what would you want to be included? Some of the obvious major features are the DIB engine, Win64, .NET support, the quartz driver, etc. But what really takes time is to track down and fix all the nasty little incompatibilities that break applications that would otherwise be quite happy with our existing feature set. That's where magically adding developers would really help.