Running Windows Apps on a Mac & Other Stories

One of the best stories I’ve heard about Apple’s history concerns Ellen Hancock, whom Gil Amelio brought into Apple as Chief Technology Officer. Her role is pretty much overlooked these days, but she is responsible for pulling the plug on Copland, looking for a viable replacement, and — ultimately — acquiring NeXT, Steve Jobs, and Avie Tevanian (her successor).

Anyway, back to the story which I am reciting from memory. Ellen Hancock comes in to work and she is the most senior woman — ever — at Apple, surrounded by a lot of cocksure guys. She holds a meeting with her key reports and during the meeting utters the following statement. “One of the things that’s always puzzled me about Macs is why when I have a Windows .exe file on my desktop and I double-click it, it doesn’t just work.” The reaction is one of utter consternation. How could anyone working at Apple, let alone its new Chief Techology Officer, be so utterly clueless. And then it starts to dawn on them:

1) She has a PhD in Maths.
2) She has done serious shit at IBM.
3) She’s right.

Not long after this, Virtual PC added a feature which actually allowed .exe files to “just work” if you double-clicked them. It was a horrible kludge — you double-clicked the .exe and Virtual PC (which claimed ownership of that type of file) launched, loaded up the last version of Windows you had run with it, booted Windows, copied the .exe file over to some place Windows (under VPC) could see it, and then attempted to execute it. If the .exe required a bunch of local context to work (as most Windows .exes do) it quite likely crashed.

But the principle was there.

The only word we’ve seen from Apple on Windows compatibility lately is (a) Bootcamp — a pretty much wholly unsatisfactory option for serious users (it’s a great security blanket for switchers). (I am not going to reboot my Mac to run some dumb Windows app; I hardly reboot my Mac at all period. If a Mac OS update requires a reboot, I often leave the dialog up for days before I finally click “Restart”…); (b) pushing Parallels Workstation — almost as unsatistfactory as Bootcamp since it won’t run games, which are Windows’s killer app; and (c) a statement by Phil Schiller that Apple is not going to implement virtualization in Leopard.

So Apple has implemented one pretty much lousy option, is pushing a second, also lousy option, and has denied that it will implement the second lousy option itself.

What Apple hasn’t denied, because no-one has asked, is whether it will implement the correct answer to Hancock’s question — a Win32 compatibility box in the Mac OS X block diagram. You know, those rectangular diagrams which show “QuickTime” in a box that is kind of offset on top of another box labelled “Quartz”. The one with “Carbon” and “Cocoa” sitting side-by-side.

This isn’t the stuff of Science Fiction or a bad rumor page. It has existed under UNIX for years, Linux for not-so-many years, and is currently available for free as Open Source WINE (WINE is not an Emulator) and in various commercial forks. Apple in fact used to sell an equivalent product for UNIX that let you run Mac apps on Sun workstations. Unlike bad option #1 it doesn’t require rebooting your Mac, and unlike bad option #2 it doesn’t require partitioning your hard disk, booting up Windows in a virtual environment, or giving up games. Word has it that World of Warcraft (for Win32) actually runs faster under WINE than under Windows itself.

Let’s see. This option is Open Source or (for certain versions) fairly inexpensive to license, works better than any other option, satisfies the it just works mantra, is unbelievably cool (as in “would make a kickass TV ad”), is already out there, and Apple hasn’t denied that it is working on it. Oh and it doesn’t sell more Windows licenses.

But, you know, maybe Apple will just buy Parallels.

  • dacracot

    The Holy Grail… the last criticism of Mac OSX that is true… there are lots of Windoze apps not available for OSX…

    …but wait, in Leopard you can just double click the .exe…

    I can hear Redmond quaking from here.

  • Lisa-Joy and John

    If a Mac OS update requires a reboot, I often leave the dialog up for days before I finally click “Restart”…

    Ha! Me too!

  • Stuart Koch

    I blogged on this exact topic in more depth back in April.

  • Loweded Wookie

    This is the very option that I have been touting as the way Apple will do Windoze apps for quite some time.

    Apparently this had been worked on when Steve was working for NeXt. A Wine style set of APIs would allow most PC apps to run. I personally don’t care for games but there is one app I use that requires Windows and thus the only reason I have for VPC.

    Incidentally I had this idea and posted it to a New Zealand Mac site.

    Possible scenario for Microsoft continued support

    My idea actually also went as far as being able to work on both PPC and Intel which seriously IS the Holy Grail.

  • Khalid

    This would be an awesome improvement over OS X. But, I wonder how beneficial this would be for non-gamers once all the big Universal Binary applications (photoshop, etc.) are out.

  • dlo5482

    Is this the solution you’re after?

    http://www.codeweavers.com/products/cxmac/

  • Tom Howard

    There are a two major problems with going down this path: Windows programs will not be officially supported, especially if they are MS programs; It reduces the incentive for developers to develop native OS X apps.

    I wrote about this back in April in an article called Why Apple won’t make running Windows apps too easy

  • Garrick Anson

    Since OSX is a pretty front for UNIX anyway, than whatever Unix has been doing for an answer will be the bassis for Apples answer.

  • Daniel Eran

    Windows applications don’t “just work” on Windows. Why would they all start working seamlessly on an independent implementation of the Windows API?

    Even Microsoft has a hard time getting existing apps to run on newer versions of their platform. So Apple should drop the future and try to be Microsoft?

    I wrote morea about why this is a bad idea in:

    Unraveling the Red Box Myth

    http://www.roughlydrafted.com/0506.redbox1.html

  • winchou

    I assume you heard of CrossOver?

    CodeWeavers

    No Windows needed. Click the .exe and it just works.

  • Glenn, Ginny and the boys

    Does this open up security holes? Viruses, worms, etc…

  • unavailable_username

    Maybe folks should look at crossovermac. It’s WINE for OS X

    No Redmond tax required — sweet

  • Drew Thaler

    WINE would be great to include in Leopard, maybe the way X11 is included. But it would not be something that they’d want to heavily publicize (eg, in TV ads) because it could give people the mistaken impression that all Windows apps “just work”. Frankly, they don’t. With WINE a lot of apps don’t work, or to get them to work you often have to manually hack an app or install a DLL override. The fact that WINE needs an application database describing “What works” and “What does not” (and effectively “How to get it to work”) for every application is enough to make it unsuitable for Apple to install by default.

    What if Apple wrote their own, or extended WINE?

    Supporting the entire Win32 API as a peer to Carbon and Cocoa would be impossible and undesirable — for the same reason that supporting the entire original Mac OS API wasn’t desirable. They had to limit it to just Carbon, a carefully chosen subset of the older APIs. There’s a lot of old cruft that many older apps still use but simply isn’t worth the engineering effort to maintain in a new operating system.

    It’d be possible to support just a newer subset of Windows APIs – maybe .Net or the stuff used by MFC applications. But doing that means you would never be able to run any old random .EXE file. In fact, I’d guess that most apps would not work because even recent apps probably contain at least a couple of legacy calls.

    Here’s what would need to happen for an API-level (non-virtualizing) solution: First, Apple would have to write a compatibility layer for what has grown to tens of thousands of Win32 calls, or pull in something like WINE. Second, they’d need to provide an API compatibility checker like Carbon Dater. Third, and most importantly, they’d have to evangelize it to Windows developers and convince them to care.

    It’d be easier just to buy Parallels. πŸ˜‰

  • Stephen

    When it comes down to it, would you rather Apple work on implementing “it just works” for .exe files…. or keep all their programmers working on improvements within Mac OS X…?

    While it would be great to be able to run Windows apps right inside Leopard for that rare program now and then, I think it would actually hurt the overall Mac experience. Not keeping a clear division between Mac and Windows programs could allow Windows issues (viruses, file name issues, etc.) to leak over and become a problem on the Mac side.

    Also, the ability to run Windows apps without even a tinge of inconvenience might cause switchers to buy a Mac and then install all their old software and end up basically running Windows and not seeing the Mac advantage.

    Most of the good things about Macs lie in the fact that they aren’t Windows — but even more, it is that Mac developers create applications that provide a better experience. I think the current setup is perfect — if Leopard has .exe support, it will make me sad to think about all the cool Mac features that were put on the back burner…

  • Fernando Lucas

    Gee people, leave Apple alone. Let them do their stuff. Wondering what they’ll implement or not is not going to make it happen.

  • pocketkaos

    Crossover Office for Mac will do what you just described, via a customized WINE port. That’s right, runs Windows applications without requiring Windows, and at full speed, within a Mac Finder window, just like a native Mac application.

    *drool*

    http://www.codeweavers.com/products/cxmac/

  • Pete and Flav

    What about something similar Fast User Switching? Instead of switching accts it switches OS.

  • Ramin

    I totally agree. This is precisely the scenario I’ve been waiting for ever since hearing the words ‘Intel’ and ‘Mac’ uttered in the same phrase. Parallels is close, but not quite there yet.

    My current Thinkpad is reaching its customary three year drop-dead date and I have a lot of Windows software accumulated over the last few years which I’d like to keep using. I’m holding off until someone offers the scenario you present (or the next rev of MacBook Pro comes out, whichever coems first πŸ˜‰

    I’m not that familiar with the WINE internals (so what follows may be obvious) but architecturally Apple could also run Windows as a ‘headless’ client (in X-windows nomenclature) and each double-clicked app could pop up under an X-server window with an MS-Windows window-manager.

  • Mike

    My fear is that it will open up OS X to the wonderful world of “It just infects and keeps spreading” windows viruses, spyware and malware. Atleast running under a VM or via bootcamp, any infection is kept quarentined.

  • bitswapper

    If you stroll over to http://www.codeweavers.com, you’ll find a commercial implementation of WINE, and news that a port to OS X on its way. I run crossoveroffice on a linux laptop, and it runs office and explorer just fine.

  • Marc

    I’ve heard good things about Parallels from my Intel-Mac-owning friends. And I just read last night that Parallels is for sale in Apple stores now.

    Marc

  • XP On Mac

    Quoted from the article: “Unlike bad option #1 [bootcamp] it doesn’t require rebooting your Mac, and unlike bad option #2 [parallels] it doesn’t require partitioning your hard disk, booting up Windows in a virtual environment, or giving up games.”

    The above statement is wrong in terms of Parallels requiring you to repartition your hard disk. That is true only of Bootcamp not Parallels.

    Anyway, I think the best current solution for those who want to play Windows games or other graphic or CPU intensive Windows application is Bootcamp. Rebooting is not that big a deal. It only takes about a minute and you can hibernate on the Windows side to save any work in progress. I suppose you could safe sleep on the Mac side but the tricky part is enabling safe sleep in the first place.

    Parallels works well for most other Windows applications. The only major limitations are the inability to write CDs or DVDs and lack of USB 2.0 support (the ports only run at USB 1.1 speed). Parallels also does not use both cores so might not perform as well as Bootcamp in some multithreaded applications. For non-gamers, Parallels is a good way to run Windows especially if they take advantage of the virtualization features such as cloning. If you run off cloned copies of an activated known good install of Windows XP including updates and security software (antivirus, anti-spyware, firewall, etc.), then you can always quickly restore a VM that was compromised in some fashion. You can also use the clones for running beta software like IE7, Office 2007, and Firefox 2.

    Of course, you can use both Bootcamp and Parallels if you have or are willing to buy 2 Windows licenses. Supposedly, Parallels is working on a solution that will allow you to run from the Bootcamp partition which would only require a single license.

  • dostler

    I think what really needs to happen is for Apple to make program that will allow developers to easily convert their applications to be mac compatible. If they made it free and easy to convert windows programs to mac I think most developers would jump on board and we wouldn’t have to worry about ugly .exe’s. I’m not a programmer so I don’t know if this is feasable.

    -David

  • dostler

    I think what really needs to happen is for Apple to make program that will allow developers to easily convert their applications to be mac compatible. If they made it free and easy to convert windows programs to mac I think most developers would jump on board and we wouldn’t have to worry about ugly .exe’s. I’m not a programmer so I don’t know if this is feasable.

    -David

  • Petey

    Yes, why not create the awesome success of OS/2.

  • Tonio

    “xp on mac” is partially correct — parallels doesn’t require partitioning your hard disk per se. It just requires creating virtual partitions (a la Virtual PC). This is really not that big a difference except you don’t need to set aside a fixed amount of space.

    But wrong here. “Parallels works well for most other Windows applications. The only major limitations are the inability to write CDs or DVDs and lack of USB 2.0 support (the ports only run at USB 1.1 speed).” The inability to support games or other applications which require accelerated 3D means that you can’t run what is for many if not most users the most important class of Windows only apps on the Mac, and will also prevent Vista from running properly. It isn’t terribly thrilling for me to run, say, Office apps under Parallels, since I have perfectly acceptable native equivalents.

    petey said “Yes, why not create the awesome success of OS/2.” I really don’t see what this has to do with anything. OS/2 was slow as treacle, butt ugly, and a resource hog. The fact that it let you run Win 3.x apps natively is hardly the reason it failed. This is like arguing that a car with an internal combustion engine will create the awesome success of the Edsel.

    Why is BAD Windows app support a good idea, but GOOD Windows app support a bad idea?

  • Tonio

    “If they made it free and easy to convert windows programs to mac I think most developers would jump on board and we wouldn’t have to worry about ugly .exe’s. I’m not a programmer so I don’t know if this is feasable.”

    In essence, providing support for a major subset of the Win32 API under Mac OS X is the first step to doing this in a viable way (it’s quite feasible for a Windows “make me a button” API call to generate a native Aqua button — this kind of thing would be phase 2).

  • XP On Mac

    Tonio wrote:

    But wrong here. “Parallels works well for most other Windows applications. The only major limitations are the inability to write CDs or DVDs and lack of USB 2.0 support (the ports only run at USB 1.1 speed).” The inability to support games or other applications which require accelerated 3D means that you can’t run what is for many if not most users the most important class of Windows only apps on the Mac, and will also prevent Vista from running properly. It isn’t terribly thrilling for me to run, say, Office apps under Parallels, since I have perfectly acceptable native equivalents.

    My reply:

    I think you took that quote out of context. The key is “most other Windows application” which I intended to mean other than Windows games or other graphic intensive Window applications which need more graphics horsepower than Parallels offers. As I wrote in my original comment, Bootcamp is currently the best solution for Windows applications that require more graphics horsepower. I also realize you won’t be able to run Vista under Parallels since the minimum requirements are DirectX 9 support.

    Since most games are run full screen anyway, is it that big a deal to have to reboot in Bootcamp to play them? It is not like you need to run them directly in the OS X environment since it won’t be visible while you are playing.

    I am not sure about your statement that Windows games are the most important class of Windows only apps for the majority of user. Maybe that is true from your perspective and people you know but may not be true of the majority of users. For games at least, there is always the option to play them on a console instead particularly now that many console games are or will be online enabled.

  • Tonio

    “xp on mac”

    You’re right about my taking you out of context. Sorry. I didn’t fully parse the preceding paragraph. Given your qualifications, you’re right — but guess what, accelerated graphics/audio apps are a *huge* proportion of Windows only applications.

    You may doubt that games are the most important class of app, but ask yourself why anyone bothers upgrading their PC if not for games? Why has AMD just bought ATI? You don’t need this horsepower to download porn, run Office, play DVDs, or run custom VB.NET apps for work.

    World of Warcraft has collected six million subscribers in two years; how many apps which people aren’t forced to use for work have this kind of user base?