November 6, 2005

I invite you to wine.

In a few months, Apple's going to start selling machines with Intel chips in them. This isn't news, but I'd like to point out some things as we get closer.

Some things are easy to predict. For instance, graphics apps are going to be faster. There are a number of reasons for this; they tend to benefit more from x86's fast integer math, and they get a huge win from the write-combining on x86 that actually works.

Another prediction: we're going to triple our marketshare in the next two years. This is an easy one. We're already seeing an increase of marketshare from quarter-to-quarter, just based on how cool Mac OS X is and how many people are impressed with the iPod. When we can tell them, "Hey, you can install Windows on a partition and run your Windows apps as well," then, THEN, we're going to see a stampede. Everyone - EVERYONE - I've spoken to wants to run Mac OS X, but wants some particular Windows-only app that's holding them back. No more! Go forward, younglings, and frolic on a computer that doesn't hate you!

But what do I think the most interesting thing is going to be? WINE. Wine is a cool hack; some guys got together years ago and said, "Hey, wouldn't it be neat if we just rewrote all the Windows DLLs to the Windows specifications, so any program compiled against Windows could also run on Linux using our free DLLs?"

Yes, yes it would be cool. Of course, I don't want to run Linux, and Linux uses X-Windows, and I know X-Windows too well to want to ever go back. I want to run Wine on Mac OS X, so I can just launch any Windows game off the shelf and run it inside the Finder.

So, here's the call to arms, then, gentlemen and ladies. I am throwing down the glove, I am firing the starting pistol, I am painting the target, and I am pulling the flag from the cup.

You want to succeed as a programmer? Work on Wine. Get into it and kick butt. Maybe work on Darwine, which is the version being ported to Darwin already, but I honestly have reservations about that one, because their first emphasis is getting Wine to work with X11 on top of Darwin, eg, NOT the Mac OS X windowing system.

We can see the pieces here, folks. There's a ton of code in Wine that enables Windows applications to run, at full speed, without recompilation, on our new Macs. All that we need is the glue. We need for the graphics calls to call Quartz and the sound calls to call CoreAudio and the keyboard and mouse....

This is, essentially, like porting a game, something I've done several times. It's tedious and it requires a lot of knowledge about the depths of the system. But, here's the kicker.

This will be the last time we ever have to do it.

After this, we're done. We don't have to port games any more. Honestly, people, what's the difference between the Windows version of World of Warcraft and the Mac version? They both look the same to me, because THEY ARE FULL-SCREEN APPS. MOST GAMES ARE.

I DO NOT CARE what library my games are written using. I just want to play them. So does everyone else. And I don't want to wait from 9 months to two years to get slow ports of games that PC gamers are playing today.

When Wine for OS X comes out, it is going to be the end for Microsoft. The actual end.

Because nobody is going to want to pay for Microsoft's increasingly draconian licensing for Windows even as Window gets crappier and crappier. What's the average time from plugging in a Windows machine to it getting its first virus? 7 minutes? Windows has kinds of viruses Mac users have never even dreamed of.

THAT IS ALL GOING AWAY. When you can run Windows apps on Mac OS X, you'll still be protected by Mac OS X. Viruses are going to be dead. D-E-D. Ok, yes, there are certain kinds of pseudo-viruses (the kind where they trick dumb people into running them) that will still exist, but even those will NOT be able to infect the whole system, because even you don't have access to the whole system. The worst that'll happen is your personal account will get messed up, and you'll have to nuke it and create a new user. And then learn not to open mail messages that say, "Free PRON, just launch the executable!"

Now, some people say, "Well, if developers can just write to Windows and sell their software on the Macintosh, isn't that going to be the end of what makes the Macintosh so wonderful?"

No, no it won't. We're gonna get some really ugly Windows apps that some people need (like certain architecture programs, and Half-Life 2), but that doesn't mean our indigenous software is going away. If anything, it'll be enhanced. Windows users are going to see what good Mac software looks like, and they're going to start demanding Mac-specific alternatives to their favorite Windows apps. What's the most popular music player for Windows? iTunes. A Mac app.

Me, I relish the day when Visio comes to the Mac, inside Wine. Because then the whole Visio community will see how thoroughly OmniGraffle kicks Visio's copy-catting ass, up and down the block.

And, with the increase in market share, it's going to make more economic sense than ever to write Mac native apps, for all the reasons I gave before... Mac is on its way up, Windows is on its way down. If you're coming out with a new product, you want to be riding the crest, not circling the drain. Only extremely conservative users are going to be left running Windows, and that's going to be an incredibly hard market to sell into. Everyone who is interested in buying the latest thing is going to be running Mac OS X (and Wine for games).

So, that's the future. How does this affect you, you young, hungry programmer or documentation person or graphics guy, just looking to get noticed?

HELLO! WINE!

It needs to be finished. They've been working on it for 10 years, they've done most of the hard stuff. Now, you guys need to swoop in, make it run beautifully on Mac OS X, and grab your share of the glory.

I absolutely, 100% guarantee that Wine is going to be the shit-hot project over the next year and a half, and that the Wine engineers are going to be able to pick their jobs at Apple. Ask the KHTML team if you don't believe me. Or the iTunes team.

Wine is going to be getting press every single day after the Intel Macs ship. "Wine announces that DOOM 3 works..." "Wine announces that OpenGL works on nVidia cards..." "Wine announces that everything is 10% faster..." Every day, another press release, more fame, more excitement. Those guys are going to be rock stars.

Get on this project now. Get it headed in the right direction (dump X11, run under Finder / CoreGraphics). Get the glory. Get the job. Get the girl.

Labels:

53 Comments:

Anonymous Iain Delaney said...

Am I missing something, or won't you need a Developer Transition System in order to work on this? $999 US, (really $1499 for the Select Membership + transition kit) is pretty steep for a volunteer developer on an open source project.

I have no doubt it's going to get done, but I think it's going to need some funding from someone like Codeweavers.

November 06, 2005 9:21 AM

 
Blogger poetsch.org said...

One of my first thoughts after the intel announcement was that Wine will be the next big thing. Great that you point that out, too, I hope there are some developers reading this that have the talent and ability to start this thing.

I don't see how a tripled mac market will make windows obsolete sine 3x 5% is 15%, at least on my calculator, but I agree on everything else. But without a Developer Transition System it will be hard to get started *now*. We have to wait for the first real and affordabe Intel-Macs.

November 06, 2005 9:33 AM

 
Anonymous Anonymous said...

In the next year or so, Intel Macs will be widespread enough to drive OS X Wine development. Until then, it's up to the developers with a DTS.

...Unless there was some way to work on the glue code on PPC machines now, without it all being lost in the transition.

November 06, 2005 9:34 AM

 
Blogger D'Arcy said...

What ever happened to the Red Box that Apple was talking about in the Rhapsody days? It was supposed to offer a Windows compatibility layer from within Rhapsody...

November 06, 2005 9:48 AM

 
Anonymous Frederik said...

> What ever happend to the Red Box...

Some people say it might return in Mac OS X 10.5. See also OS X Leopard to be compatible with Windows Apps?

November 06, 2005 9:58 AM

 
Anonymous Anonymous said...

Wil: I'd love to, but my own app is more important. You'll see why.

November 06, 2005 10:16 AM

 
Anonymous Anonymous said...

I wish I could help out on Wine for OS X, but I think you will be mostly needing a DTS or just wait until the intel Macs arrive.

November 06, 2005 12:50 PM

 
Blogger thomas Aylott said...

Microsoft: All your base are belong to us!!!

- Your friendly neighborhood Applefan

November 06, 2005 12:55 PM

 
Anonymous Jesper said...

a) Awesome, *awesome* piece. I can't wait for WINE for OS X and Intel Macs. People like my dad, who's stuck on his company's "all computers must run Windows" policy, can't wait for WINE for OS X and Intel Macs. Some of the most hardcore gamers I know can't wait for WINE for OS X and Intel Macs. And most of the rest want Macs anyway. It's definitely true.

b) Infinitely small nitpick - iTunes is *probably* not the most popular music player. Windows Media Player is installed by default and sucks less with every version (maybe some day it will by default let me rip to MP3s which it will not plaster DRM over). Winamp, like iTunes, is opt-in (so its popularity is limited) but it's tremendously popular, and there exists more plugins to play back obscure undocumented streams of 8-bit music ripped straight from the ROM. Recognizing that more people probably don't have MP3 players that sync with their music player of choice than do have and that they also need to play music, what's your basis for proclaiming iTunes the most popular music player?

November 06, 2005 12:58 PM

 
Anonymous Tomas Jogin said...

Those are some pretty bold predictions, I can respect that. I'm not so sure you're completely right on how Wine will effect market shares and developers' perspectives, but I do HOPE you're right.

November 06, 2005 1:32 PM

 
Anonymous Nick Matsakis said...

This post assumes that the dream of WINE is even possible; a runtime environment for Windows apps that is not Windows. Just do the jobs once and you'll be able to run any Windows app unmodified.

Sadly, I believe that to be a pipe-dream. Windows apps are written to run on Windows, and most non-trivial apps (e.g. games) will require some modifications to run properly. As good as WINE gets, it will likely require tweaking for each non-trivial app that it supports.

This may not be so bad. If it could run the top 100 Windows apps, that's probably a lot to make gobs and gobs of people happy, but I think each and every one of them will demand an ounce of flesh from some WINE developer.

November 06, 2005 1:53 PM

 
Anonymous Anonymous said...

Well, Codeweavers has already beat you to the punch on offering a preconfigured Wine for OS X... If you check their website You'll see that's on their roadmap...

I use Linux exclusively, and as such have found Wine to be an invaluable tool, both in terms of playing games (Using Cedega, a flaver of Wine with the thrust being getting DirectX apps to work over getting spreadsheats to work) and using Codeweaver's Wine for apps that have no decent Linux-based open source solution. Codeweavers even lets me run some Windows browser plugins in my native Linux web browser, including Quicktime, since the 'no Linux products' nazis at Apple have yet to offer a native Linux player (how hard could it be?).

That does not mean people can't help the project along... Codeweavers contributes all their code back, so everyone benefits.

In my community there are many who bash wine because it kills native 'ports' of programs. I share your view on the subject however... If the program 'feels' native, than who cares what it was programmed for?

I probably won't be buying an Apple, since I cannot support a company who cripples their OS to only work on certain hardware, charging a premium for its wares over otherwise identical commodity hardware.

Basically I can't support the concept of a closed operating system, period. MS is closed source, crippling my abillity to use it how I need to use it. Macs are relatively open source, but they cripple the software to only work on macs, wheras Darwin at least in concept can work on any commodity hardware.

Nevertheless, I encourage all of those who wish to make the switch to x86 macs to do so. By purchasing such a device and contributing either financially (by buying Codeweavers) or developmentally (by hacking Wine code) Everyone benifits.

This, is the point of open source software, something Apple obviously doesn't seem to understand.

P.S. There's nothing wrong with X Windows when it's not cobbled to fit parallel another graphical environment. Apple should have just used X in the first place, fixing it where it needed to in order to meet its aims. That way everyone would have gained; The *nixes would have had a better window manager and more open-source or Linux-based apps could have been easilly ported to Mac through a simple recompile.

Business is much nicer when you sourround yourself with friends, not competition.

November 06, 2005 1:56 PM

 
Anonymous apple4ever said...

WINE for Mac won't be the end of Microsoft, but the end of Apple. Why would previously Windows only companies ever think about developing for Macs now (and waste money), when they get Mac support for free with WINE? Or even that since Macs can boot Windows, they still can run their program. Its the OS/2 effect, and its bad, very bad for Apple. This whole Intel transition will be the biggest mistake Apple ever made. RIP Apple.

November 06, 2005 2:45 PM

 
Blogger Wil Shipley said...

apple4ever:

Hi, welcome to my blog. It's cool if you read my post before arguing with me, because that way I don't have to say the exact same things again in the comments and bore everyone.

November 06, 2005 2:50 PM

 
Anonymous Gaita said...

Amen

November 06, 2005 4:00 PM

 
Anonymous Mark said...

Anonymous said...
"Well, Codeweavers has already beat you to the punch on offering a preconfigured Wine for OS X... If you check their website You'll see that's on their roadmap... "

On their roadmap is a whole lot different than being a shipping product. Right now they've beaten nobody to the punch. As for the usual Linux spouting free software drivel, well I wish you folks would just say what you mean.

You mean that Apple should open up their code so the Linux community can take it and enrich Linux with it, not MacOS X.

"Friends" are honest with each other.

November 06, 2005 4:20 PM

 
Anonymous Anonymous said...

Don't forget VMWare - I know it's an emulator, but VMWare on Intel emulating Intel runs pretty damn fast.

VMWare for OSX is gonna do a lot to help people who want to run 'doze apps on OSX...

November 06, 2005 5:28 PM

 
Anonymous Mason Mark said...

Yeah, dude, VMWare!

Having used both Wine and VMWare back in the Bad Old Days when I used Linux (e.g., when Macs crashed too frequently for heavy lifting), I can say this: Wine has always sucked, and VMWare has always impressed. I think Mac users will agree it's okay to part with a little cash to get something that works way better... I think the prospect of VMWare for Mac OS X is one of the most exciting things about Mac on Intel (well, besides laptops actually fast enough to run Xcode, of course...)

November 06, 2005 6:03 PM

 
Blogger Troy Phillips said...

Actually VMWare is not an emulator - it is a x86 virtualiser (the virtual machine has same CPU as the host). There are people on the VMWare forums asking for MacTel support, so we can only hope :)

I think that Darwine only wants to start with X11 support (that way they can be doing the work on Darwin x86), but quartz support is definately being worked on too. I think that all work on get WINE on OS X is best done as part of the DARWINE team

November 06, 2005 6:17 PM

 
Anonymous Marshall said...

I'm sorry, I do have to disagree with you on one point. Viruses/spyware tend to use the exact same code 'features' that games and internet interactivity do these days. If these are allowed to work in a translated way, they'll still work to the point of effectiveness. Making the parts of windows that recognize keystrokes work on a Mac means that windows based keyloggers will work, enabling the parts that allow networking for gaming means the 'zombie' programs which form botnets can still function. I could bullet-point out the rest, but enabling windows programming to run on a different system is enabling any malicious software that uses those same functions to run. It would be the fast way to make Macs as virus ridden as windows. Granted, rootkits wouldn't be an issue, but that's not the majority of the issue.

November 06, 2005 7:40 PM

 
Blogger Wil Shipley said...

Marshall,

No es necessito. The flaw that allows serious virus infection on Windows it that the user has the power to modify any system file; the user is root at all times, effectively.

Even if you emulate Windows' problems to the point where you could infect the emulation environment, or even your own account, my point is it would be contained -- the solution wouldn't be "Oh, reformat your entire system every two weeks."

But, honestly, I'm willing to go out on a limb and guess that running most Windows software doesn't require the crappy flaws. Certainly they already have games and Office running.

November 06, 2005 8:21 PM

 
Anonymous Anonymous said...

I usually agree with Shipley's posts, but I'm going to disagree this time.

My guess is no one except a few hardcore nerds and gamers will even try installing any version of Wine on OS X. Hardly anyone will try hacking up a copy of Windows to install on a Mac.

Mac sales will probably double over the next two years, but it'll be because of the quality platform, excellent native software, and the Intel brand; not because you can run the odd crappy Windows program under Wine without a kernel panic on a good day.

Paul

November 06, 2005 9:08 PM

 
Blogger random milk said...

or, maybe apple will be integrating wine into the finder themselves, as speculated by this guy: http://www.macidol.com/forum/viewtopic.php?t=3470&highlight=wine

November 06, 2005 9:29 PM

 
Blogger Wil Shipley said...

Paul:

Don't confuse the journey with the destination. The fact that Wine doesn't run well _now_ doesn't mean it will not run well in the future. The market pressure for it to do so is going to be enormous, and I just don't see this being ignored.

The progress is easy to see. Initially, geeks like me will go to the Wine page, see if a particular game runs, and if so, download Wine and install the game. This won't be a ton of trouble, but it'll be more than, say, my mom would do. Still, it'll give the project momentum.

As excitement builds, more titles will be verified to work. The chances of any particular app working will be better and better, and more and more people will use Wine as a dedicated wrapper for some must-have program. The point won't be "run any Windows program," but, "run specific programs that you badly need." It doesn't matter to someone who needs AutoCad that Wine won't run, say, Office 2008. She won't need Office, she'll just need AutoCad.

Then, the final stage will be when it's stable enough that almost any program will run. People will download and install it as a matter of course, like a web browser in the old days before bundling.

Do I expect Apple engineers to help out the Wine project on-the-sly? Well, it's happened before, on crucial apps. It was just a secret.

-W

November 06, 2005 9:30 PM

 
Blogger Arenzera said...

Sucks to be Aspyr...

November 06, 2005 9:52 PM

 
Blogger Wil Shipley said...

Arenzera:

Aspyr is becoming a general Mac publishing company, and I think will end up stronger than ever.

I think Westlake is going to be in an awkward position, since they make their money doing Mac ports of games right now, but they probably have something up their sleeves, and that kind of expertise is never wasted.

If I were Westlake, I'd probably switch to working on Wine and basically go to each gaming house and say, "Look, we'll make your game work really well with Wine, and then ship it and stand behind it." Big companies aren't going to trust shareware on its own for a LONG time, they want someone to stand behind it.

And, honestly, I'd pay $40 for, say, a box of Wine + Half-Life 3 (or is it just Life 1.5?) instead of downloading Wine and wondering if it'd work or not.

Random Milk:

I'm pretty sure what Jobs was talking about was the ability to decode HD-quality H.264 in real-time, something most Macs can't do (high-end G5s can) and that the new Pentium Ms can. (This is my understanding, anyhow.)

If you're about to start selling HD-quality movies (which would trump DVDs, remember), you need for them to be able to be decoded on your $1000 machines, not your $3000 machines.

November 06, 2005 10:21 PM

 
Blogger eohjkrfglaksjdfhgk said...

It'll be sad to see the niche go, but better sales can lead to greener pastures....I hope.

November 07, 2005 6:52 AM

 
Anonymous ben said...

Graphics drivers, though.

If Apple would provide a kind of WINE for graphics drivers in kext space (ie, so MacIntel users could download the latest ATI or NVidia graphics driver for Windows and it would just work on Mac OS X) then Apple would no longer be permanently behind the gaming curve.

Today's graphics cards are complex and the drivers are a huge effort. While I'm sure ATI and NVidia can re-use a big part of their driver code on Mac OS X Intel, wrapping it up in the (albeit beautiful) embedded Obj-C++ Apple driver model, certifying it, etc, is enough to induce a big lag, which kills in the gaming world. Apple provides a compatibility layer for Mac OS 9-style graphics NDRVs, so why not one for DirectX-on-XP-style drivers?

It shouldn't be too hard for Apple. Since the same graphics cards (hopefully) will work on both Mac OS X and Windows for x86, and since the DirectX DLLs are becoming increasingly thin layers on top of kernel-level drivers that are becoming increasingly thinner on top of what are essentially DirectX accelerators in hardware, Apple catches yet another wave by making things very, very easy for ATI, NVidia, and gamers.

November 07, 2005 7:35 AM

 
Anonymous Shil said...

Although I agree with most of your other opinions on things, I think you're being naive about WINE's downside. I worked for a company who stated with a straight face that their product was Mac compatible, then listed "Virtual PC" as part of the system requirements. I think it is only natural for companies who might have dabbled in Mac versions of their apps to drop their support and say "WINE is good enough for those quixotic 8% market share Mac users".

WINE will be like X Windows - there may be more apps available, but they will dilute the Mac experience. If non-Apple libraries / emulators / vitualizers become "good enough", then only Apple and Delicious Monster will be anal enough to create a strict OS X app using Cocoa and forego the larger market.

November 07, 2005 8:22 AM

 
Anonymous Nick Matsakis said...

Another response to "the availability of Windows programs will kill Mac OS X programs" argument is to look at the past. When Mac OS X was released, there were essentially no Mac OS X apps out there. Most of the software that could easily be run on Mac OS X came from one of three environments, NeXTStep, Classic Mac OS, and unix command line (later X11 apps joined in). As it turns out, an amazing number of these apps got modified to run well on the platform; not every one, of course, but enough.

The comparison with windows is different, I'll admit. NeXTStep and Classic Mac OS were, in effect, dead platforms and so developers had no choice but to port the apps if they wanted any customers for them. The same isn't true for Windows, which is more like the unix command line and X11. But even there we see that Mac support is quite good. Pretty much all the apps I used to use on Linux (with the notable exception of VMware) are available on Mac OS X and run quite decently. Mac OS X is a valid target for almost all important open-source projects and many proprietary projects as well (e.g. Matlab).

I'm still a little doubtful about WINE ever being "good enough" that Windows developers will find it worth their while to cross-develop for it or that Windows apps can just run unmodified. However, I do agree that if WINE is "good enough" to run a handful of the most important Windows apps unmodified it will be a big, big boon to the Mac platform.

November 07, 2005 9:48 AM

 
Blogger Topher said...

I would have to agree with this sentiment. I remember when I was in high school and my family got our first Macintosh. It was important to us that we still have access to the vast library of Apple ][ software we had amassed, so we got a Macintosh LC with a Apple ][ coprocessor card.

During the first few months, we made frequent use of the capability of the LC to run our old software. Over time, though, we found Mac-native replacements for our old favorites. After six or eight months, we never started up the Apple ][ emulator again.

I repeated this same progression with my move to Mac OS X, eventually realizing I hadn't started Classic in a year and deciding that I didn't even need to install Classic when I installed Panther.

I see this going the same way. Folks will be excited that they can run Windows apps on their new Macs with Intel chips. After a few weeks, they will start looking for "real" Macintosh apps that replace the function of those Windows apps and actually fit with the look and feel of the Macintosh.

The only apps I can see surviving this cycle are full screen apps that have their own look and feel, like games. Users will demand native apps for windowed applications, just like we have in the past.

I believe this is one reason why Apple chose to keep the classic appearance in Classic apps. The visual disturbance caused by the different theme is jarring and users subconsciously (or consciously) want to be rid of it. This is why it is important that WINE not try to duplicate the Mac look and feel and instead try its best to keep the original Windows look and feel for which the app in question was designed.

These sorts of things have proved such effective crutches in the past; I think it would be in Apple's best interest to assign some hard core engineering efforts into doing it themselves to make sure it is done right. The end result would be more Mac users and a significant increase in demand for native Macintosh applications.

On a related note, I've been advocating for quite some time now that Apple re-implement the "Yellow Box" for Windows and include it as a part of QuickTime for Windows. This would immediately make Cocoa the premier cross-platform API. Developers would sell their mothers for the ability to truly write-once-run-anywhere (as long as by anywhere you mean Mac or Win), and the results of that demand would be good for Mac users and Windows users alike.

November 07, 2005 12:27 PM

 
Anonymous grey said...

Wil... you've got the right idea in the type of direction that x86 Apple will enable, but IMHO I think you haven't been paying enough attention the the hardware market at large and what x86 has been doing. Hardware level virtualization (Intel's codename is Vanderpool, AMD's is Pacifica) is due out contemporaniously with x86 Apple releases. The hardware that x86 devkits are shipping is going to be a bit different from what production Apples will be shipping, namely the yonah & merom cores due to be used by Apple will have hardware VT (virtualization technology) built in.

This is big news, paired with Xen or VMware as a hypervisor - this means that you will be able to run alternate OS's on forthcoming x86 boxes simultaneously. It remains to be seen whether Apple will push this, but I think they'd be crazy not to at least demo it. Microsoft is also making a play in the VM space and I have it on good word that they are working on their own hypervisor product for x86 VT as well.

Additionally, I have it on good word that VMware has already got or at least initiated a port to x86 Apple devkits, so we can expect possibly VMware, Xen & Microsoft all to offer hypervisors for x86VT cpus, even on Apple's line. It remains to be seen whether Apple will leverage tpm/tcpa type architecture heavily, and if so if that will open the door just to key players in the hypervisor space, or lock them out all together... but I don't have that good of a crystal ball (or insider sources). ;)

However, even without leveraging full on hardware VT support on x86 Apples, which I believe rather heavily that we will see (buzz from colleagues inside Intel at the least seem to think that their Apple partnership will make for the best VT demos) - you need to pay closer attention to the software-virtualization space. VMware recently released VMPlayer, which is essentially a "free" virtualization environment, while this may be bad in the short term for porting software to x86 - this will be a boon for people wanting to ship products to Apples _now_. Expect similar products from other big players to compete I would wager.

I've written a bit more about this here:
http://advogato.org/article/860.html

IMO, I respectfully disagree with you that WINE is an approach that anyone should be looking at. Hardware VT on the other hand (particularly as future Intel procs will be dual core & have SMT so essentially 4 threads can run simultaneously with one physical cpu) will be much faster, much more compatible and require much less developer effort on an app-by-app basis, which WINE has required.

Bigger concerns are whether Apple cares about the VM/VT sector (I think they'd be foolish not to) and whether hardware level DRM may impede competition in the VT space. In a best case scenario, Apple would allow for multiple hypervisor vendors to compete, and be able to offer the only legal x86 platform that can run OSX & whatever other x86 OS of your choosing in _parallel_ (dual booting is far less interesting than VM's, and the current devkits already allow that).

IMHO, I think that programmers who want to jump on the next wave should be reading up heavily on EFI (the GPT partition standard currently only seen in Windows for Itaniums, would dovetail nicely with nesting archaic OS's MBR's), hardware Virtualization (vanderpool/pacifica) & Xen. WINE has been, is and arguably will be a poor solution to a poor problem, and I don't forsee it getting any better. Hardware level virtualization & VM's on the other hand are an old concept widely adopted outside of consumer-level computing, that are finally reaching down to consumer-level products and that is big news.

November 07, 2005 1:36 PM

 
Anonymous Hugh said...

Just a quick note that the Darwine Team is working on using quartz. Have a look on http://wiki.opendarwin.org/index.php/Darwine:quartzdrv

It's way beyond my programming skills but as suggested by Wil, if you like the challenge ... go for it

November 07, 2005 2:51 PM

 
Anonymous Frederik said...

Grey, thanks for the very insightful post about hardware VT. There's one point which maybe someone could clarify: I haven't seen any VT technology other than Virtual PC in action, but as I understand it, WINE allows to run Windows applications right next to your native Linux/Mac/whatever applications. That means you can switch between the different native/non-native applications without switching the whole OS in some way first (e.g. by switching to Virtual PC), right? And without having the Windows Explorer/task-bar/etc. running?

So how does this look for e.g. Xen? Does it run a fully visible copy of Windows, or is there a way to run Windows apps inbetween your Linux/Mac apps?

Depending on what kind of applications you use (e.g. full-screen vs. document-style), this could IMO make a big difference in the acceptance of these technologies. These days people tend to switch a lot between different applications, at least those who still know that IE is a browser and not an email client.

November 07, 2005 3:51 PM

 
Anonymous Gordon Henriksen said...

Wine is never going to be a good solution for general purpose emulation.

The design is backwards; it emulates the vast (Vast, VAST) software interface instead of sticking to the relatively narrow hardware interface. Don't forget, Windows APIs don't even behave the same way for Windows apps; Wine has to emulate Microsoft's compatibility hacks, not just the documented API.

Getting this design decision right is why Virtual PC killed the emulators which preceeded it.

Of course, Wine does get around buying Windows (feeding the beast). So it might be a useful means of providing an invisible Win32 layer to smooth over game ports. (It's not acceptable for GUI apps.) But game code is so introverted that this probably isn't even a compelling value. Emulating DirectX won't perform well; and an OpenGL game is going to be a very easy port when there are no endianness issues or performance variations between platforms.

Here are the solutions I think will float in the market for those looking to run Windows apps on a Mac:

1. Dual boot. Apple has said they won't do anything to sabotage this. Possibly with virtualization.

2. Virtual PC. Until Microsoft gets scared and stops selling it.

Apple could get behind either of these.


As for H.264 on Intel: It sucks worse than it does on Macs. Pentium M's don't even get close to playback of 1080i, and current Pentiums choke harder than G5s.

ATI and Nvidia have announced H.264 acceleration, though; that's probably the way in. Expect that feature to only last until lower midrange CPUs can handle the job, though.

November 08, 2005 12:32 PM

 
Blogger Lain said...

wine is not an emulator

it's a rewrite of documented (and undocumented, it's the _real_ very difficult thing) windows API to be executed on top linux (and now os X) .

the same than X11/gtk on top linux or Cocoa on os X stack.

November 09, 2005 10:17 AM

 
Anonymous Anonymous said...

I've wasted hours trying to make WINE work and I don't see it being any kind of solution, except for people who like to write code. I've tried it several times, most recently a couple of months ago. I've never successfully gotten it to run anything more complicated than Solitare. Every "real" app I try to run fails at some point, usually with complaints about unimplemented functions. This is a plaything, not a useful emulator. It's also perpeptually behind; it basically only emulates operating systems Microsoft has already end-of-lifed.

The only run-Windows-apps-under-UNIX solution I've used that actually worked was SCO Merge. Merge installed and ran an actual copy of Windows 95 under SCO OpenServer, with special display drivers that made it run in a window. It worked great and Windows ran no slower than when it had the whole machine to itself. This is the sort of thing that users will actually find useful.

November 09, 2005 2:58 PM

 
Blogger Wil Shipley said...

Look, the fact that Wine doesn't work well NOW doesn't mean it's not going to work ever. It means that it needs talented people to spend time on it.

It's the correct approach. Users want to run something that is Microsoft-free and runs in a window alongside their other apps. Virtual machines is a very, very old idea that, like every other idea from the 60s (bell bottoms, marijuana), has seen a resurgence recently, but that doesn't make it the right solution here.

I'm not saying that I, personally, won't run a VM that lets me switch to Windows to run games. I'm saying most users won't find this nearly as satisfactory a solution as just double-clicking Windows applications and running them in a window in the Finder.

I'm also not saying that a VM wouldn't be easier to write. I think it probably would, although honestly I haven't do a ton of research. However, that's beside the point. The market will want something like Wine. If it's not Wine, it'll be something else.

It doesn't really matter if Wine is always 2 years behind, because apps are always 2 years behind. It takes SO long to write a Windows app, it's not like you see apps written to the latest Microsoft APIs the day a new version of Windows ships. Also, it's now like Windows actually ships new versions any more. Also, it's not like users particularly want to upgrade any more.

In the Windows world, you see apps still being written to be compatible with versions of Windows 5+ years old, because once users get something, anything working with Windows, they are loathe to "upgrade" and screw everything up.

Let me tell you a parable of a company that had a lock on a standard OS they shipped, and they would come out with a new version every once in a while. But there was a "free" knock-off of the same OS, only people had access to the source, and the "open source" community would always add the features that the big company had added, and would generally do them better. Soon the open version had way more interesting features, higher performance, and was generally considered better than the closed version.

After a while, everyone ran the "open" version, and nowadays nobody remembers there was a closed version that dominated, because it's been dead forever.

The company was AT&T, the operating system was UNIX Systems II-V. BSD ate its lunch; AT&T sold the license to UNIX to Novell, and nowadays the number of people who can say they've used System V R3 is, like, two, including me and my Dad.

-W "sed grep awk"

PS: I know BSD wasn't exactly "open-source" or "free." It was essentially so for universities, though. For a completely accurate history, read a book.

November 09, 2005 3:24 PM

 
Blogger Arenzera said...

Interesting...

November 09, 2005 3:43 PM

 
Anonymous Anonymous said...

Well, yes, it's true that the fact that it doesn't work now doesn't mean it'll never work. But I'm kind of disappointed in the fact that, in the four or so years I've been watching the project, it's apparently not gotten any closer to being useful. It's cute to be able to run Notepad and Solitare under Linux, but that's not very helpful because there are perfectly good open-source alternatives to basic applications like that. If it could run, say, AutoDesk Inventor, that would be useful.

(Also, we're not talking about WINE being 2 years behind. They just recently started supporting Windows 2000, so they're five years behind at this point.)

November 09, 2005 7:18 PM

 
Blogger Jerry said...

WINE (or Virtual PC for Mac on Intel) will be a beautiful thing for users.

But it will likely spell the end of native Macintosh software development from major publishers. Why would Microsoft or Adobe or Quicken continue to produce Mac-specific versions of their products when you could run the Windows version at full speed seamlessly on the Mac?

Frankly, I wouldn't mind running the Windows version of Word rather than the Mac version. At least I'd know it was 100% compatible with the Windows version of Word. Because it WOULD BE the Windows version of Word! A=A.

Unfortunately, that puts Apple in the position of trying to be a better platform for running Windows apps than Windows is. They're still having trouble making Mac OS X a better platform for running Macintosh apps than Mac OS 9 was. This might be too much of a job for them.

Microsoft already has a product that can virtualize Windows on Intel under Windows. And they already have a product that can virtualize Windows on Mac OS X on PowerPC. All they need to do is combine the two. I have no doubt Virtual PC for Mac on Intel will be ready before an Aqua WINE is. Every switcher would buy a copy. Hell, I'd buy a copy.

Remember, while Mac on Intel with WINE/VPC makes it easier to switch TO the Mac, it also makes it easier to switch AWAY. Apple is putting itself directly in Microsoft's sights. Next time Apple wants $150 for an OS upgrade -- well, users already have the copy of Windows that came with Virtual PC, and most of their major apps are Windows apps anyway, so why not see what life is like on that side of the fence?

If Apple brings out Yellow Box for Windows on top of that, making it easy even for developers to switch, then it becomes obvious that they are transitioning their users to Windows and giving up the computer market to Microsoft.

Very good for users to have the choice to run Windows on their Macs. Fine for Apple because they'll probably sell a lot of hardware in the short term and in the long term they probably have an exit strategy. But I think possibly not so good for the Macintosh.

November 12, 2005 5:27 PM

 
Blogger Wil Shipley said...

Jerry (et al):

No, this won't be the end of the Mac. For several reasons.

Your assumption is that Mac users would switch to Windows because (a) all the run is Windows apps and (b) Windows runs Windows app better.

Neither is true.

1) Because the Mac will run Windows programs without the viruses and cruft that Windows itself has, which is why a lot of people are switching.

2) Because the Mac will run Mac-only apps which are FAR superior to their Windows brethren, Windows users will soon get spoiled and will never want to switch back. Honestly, use OmniGraffle and Visio, and tell me which one you can actually draw diagrams with.

November 12, 2005 11:50 PM

 
Anonymous Anonymous said...

Wil, you wouldn't like the answer to that. I tried making a timeline in OmniGraffle the other day :/

November 13, 2005 2:50 AM

 
Anonymous Anonymous said...

I think it could be a little early to say that Mac OS X on Intel could run WIndows apps either better or more securely than they are run on Windows itself. The closer to Windows compatibility you get, the more likely you are to also have at least some of the security problems that still plague Windows today -- despite such improvements as Windows XP SP2.

(Like it or not, there appear to be fewer Windows problems on large and even unsecured networks like those at college campuses, now that XP SP2 has been out in the wild for more than a year.)

Also, it also seems like the Mac platform will be opened up to more potential malware simply by being able to dual-boot Windows or run it in a virtualized environment (software or hardware). Spyware is probably as big or perhaps even a bigger concern now than viruses.

I'm loathe to see the potential for spyware, which so far seems either nonexistent or very sparse, increase on the Macintosh platform through this CPU exchange. The Mac OS X platform right now has few of the built-up defenses (but some intrinsic benefits, yes, absolutely) which have been growing on the Windows platform for years. I don't want to see Mac OS X get attacked the way someone with no immune system might be.

November 13, 2005 2:56 PM

 
Anonymous Jeff Atwood said...

Apple will have DRM on their hardware that makes consoles look like open source systems. Which in turn means you'll be paying 3x as much for the same hardware. But it'll be, like, really pretty hardware.

It's a nice dream, but until this crazy OSX thing runs on standard beige box intel/amd hardware, it's just that: a dream.

I guess I'll just quote the Smash TV announcer: Good luck! You're gonna need it!

> I don't see how a tripled mac market will make windows obsolete sine 3x 5% is 15%

You don't understand. Wil Shipley will drive a car that is THREE TIMES HOTTER.

Seriously, have you seen his car?

November 17, 2005 2:39 AM

 
Blogger Wil Shipley said...

Jeff:

Your post is full of assumptions with which I disagree. First off, historically speaking there's really no evidence that you have to write software and license it to others in order to succeed. If you look at stereos, cars, and basically any other device, you find that a single brand provides the entire experience for you, and nobody complains. You don't license Sony's stereo software to run on your Harmon Kardon CD player.

Second, Apple's don't cost 3x as much as similarly equipped PCs. It's more like about 1.5x, and that's ignoring the cost of Windows, which is extra. Yes, you can find MUCH cheaper PCs than the cheapest Apples, but that's largely because Apple doesn't stoop to selling incomplete and crappy machines. Compare on features.

Third, I didn't say Microsoft would be dead in three years. I said Apple will triple its market share, and eventually kill MS. It'll take a long, long time for Microsoft to be fully dead, but it'll be apparent in very short order.

Everyone ALWAYS thinks that the current monopoly will last forever. AT&T, IBM, you name it. They all fell.

-W

November 17, 2005 3:22 AM

 
Anonymous Anonymous said...

...that's largely because Apple doesn't stoop to selling incomplete and crappy machines.

You forgot to add "any more" to that. I had a Mac LCII once. You can't fool me.

November 17, 2005 11:03 AM

 
Blogger Troy Phillips said...

There is alot of talk about WINE and how it is playing catchup with Microsoft. The other option is Mono - the open source alternative to Microsoft .Net

The important things to note:
1. Microsoft is expending a lot of effort to move developers to managed code, and although it will take years, it really looks like the way of the future.
2. Microsoft had much less of a head start, so the mono project is not so far behind.
3. It already runs on OS X (granted many of the library classes are still only partially implemented compared to Linux/Windows)
4. There is corporate support behind the project - OK so Novell isn't exactly in the best of shape - but they do have a grudge with MS:)

Whatcha reckon Wil?

November 19, 2005 8:37 PM

 
Anonymous Jeff Atwood said...

> Everyone ALWAYS thinks that the current monopoly will last forever. AT&T, IBM, you name it. They all fell.

Well, I thought the craptacular x86 architecture monopoly would be dead by now, too.

I guess I need to start stocking up on those regulation "Intel Inside" stickers for my children.

November 20, 2005 12:53 AM

 
Anonymous Anonymous said...

Well, I'll join Wil in calling for people to work on WINE for OS X. Good luck to anyone who does, and as I once said to a colleague who worked on the Windows version of iTunes: Thanks, and better you than me. ;-)

-jcr

November 22, 2005 1:59 PM

 
Anonymous TNHG said...

Ok. Everything you described seems to be "THE PERFECT WORLD". I agree it would be cool if everything would work like you described.. but...

1- What if Microsoft buy Wine?? (If they see they're losing some market shares, they'll be ready to put the cash on the table...(that's what I would do as Bill Gates))

2- Why programs would perfectly work with Wine, but not viruses???

I still have a bad feeling about the PPC->x86 Switch... so easy to crack and install OS X on every PC... The full version of OS X for intel isn't yet released, but already cracked...

December 02, 2005 7:32 PM

 
Anonymous Van Fruniken said...

Things people seem to forget in this discussion:
1. the disadvantages of/extra resources needed for
- dual booting (extra disk space (partitions), time to reboot)
- virtualization (even more extra disk space (for swapping, more RAM)
- Wine-like solutions: (reasonable disk requirements, low extra RAM to support those extra APIs).
A lack of disk/RAM resources is what hampered Classic at the time, and still will be painful for entry level Macs, if Apple continues to sell those with ridiculously low amounts of disk/RAM space.
IMHO wine is a clear winner (I agree they shouldn't change anything to the GUI (e.g., cancel/OK button order, space-wasting in-window menus), just to annoy people enough so they would switch completely).
2. What if MS starts creating DRM-like blocks against running Wine or other compatibility software they don't approve of?
3. The transition to Intel will NOT bring more developers to MacOSX (as some seem to assume), unless they can use XCode/Cocoa(+its API) from within Windows (cross-development on a Mac would only be a partial solution).
Just my 0.02€.

December 13, 2005 1:54 AM

 
Anonymous Josefin said...

Isn't it more likely that Microsoft will release a really awesome version of Virtual PC for Mac that runs Windows Vista or XP virtualized on the native hardware, and then sell Office 2006 + Virtual PC + Vista and earn lots of money, letting Mac users switch between both running operating systems?

Virtual PC for Windows is an extremely fast and good product and runs Windows exceptionally fast. We use it for testing at work.

January 27, 2006 9:16 AM

 

Post a Comment

<< Home