Apologies for starting a new thread, but I felt this was veering well off the "Leopard including Virtualization Software" topic I started writing under.
Ok, I posted a joke something a few days ago which implied much the same thing, only with the timetable just a little quicker than that. Here's the thing, and it's important:
- There are strong arguments for suggesting it may, eventually, be in Apple's best interests to switch to a Windows-based operating system.
- That doesn't mean it's going to happen now, and it doesn't mean they've got a long term plan to do this.
- It's Apple, Job's Apple: they do have a long term contingency plan to switch to Windows. That is, they're not ruling it out, but the circumstances would have to be right. They have all kinds of contingency plans. Most of these will never go into action.
What would the circumstances be for Apple to switch to Windows?
Well, the major possibilities are:
1. They have to be in the same situation as they were at the beginning of the 1990s. Back then, Apple needed a next generation OS. It was clear that most rival operating systems were either technically superior, or on their way to being technically superior. Commodore had AmigaOS. IBM had OS/2. Microsoft was developing NT. The Steve had NeXTStep. Be had BeOS. In the midst of all of this, Apple's System 6 only had "multitasking" with an optional bolt-on, and would have to wait until System 7 for anything standard. They had A/UX, but A/UX didn't belong to them and would never be an option as a base OS. They didn't actually have an OS.
or
1. Development of Mac OS X is costing too much money.
2. Their development paths would be way behind or non-existant as far as the NG OS goes. This also happened to Apple in the early nineties, Pink/Taligent went no-where, and Copland was (a) not even a next generation OS (it was a stepping stone to one. It was to MacOS what, I don't know, DR's DOSPlus was to DOS. Old farts will know what I'm talking about), and (b) getting further and further behind.
3. Microsoft must want to be flexible enough. This is probably what killed Apple's early looks at NT in the 1990s, I don't think Microsoft wanted to give up control over the API to anyone. Apple would have insisted on a front end that required a non-Win32 API to be practical, and MS would have balked at that.
Ok, that's not forseeable in the near future, right?
Well, unfortunately it is. Here's the thing: we do, actually, know that a next generation OS is necessary. We're talking about managed code, an entire system architecture that makes security much more fine-tunable, makes hardware architecture independence more possible, and adds a new layer of reliability (as opposed to an extra layer of complexity) to software development. And it's happening - the original spec for Vista had most of the front end rewritten in .NET; this went by the wayside because it can't be done yet (just as NT was never completely finished), but long term, that's the direction Microsoft's going to go in.
Be very wary of coming up with "But customer's don't need..." or "Isn't that less efficient...?" type arguments, because exactly the same things came up in the eighties, when everything went OOPs, and in the early nineties, when hardware memory protection and pre-emptive multitasking took over from the cooperative environments that preceeded it. No, ordinary users don't understand obscure buzzwords, but security, especially in the age of networking, is important, and to date, nothing outside Java or .NET has it. Nothing. Not even Mac OS X. Yeah, I said it. Don't believe me? Apple releases a set of security updates how often? That's because there are holes in OS X as there are in all operating systems.
(Aside: Yes, I know you've never experienced a virus. That's not the point. Mac OS X has the benefit of low usage at this point which means (a) it's not that attractive as a virus platform and (b) it's lack of usage helps - imagine a biological virus that can't only spread into people with a left green pupil and a right brown pupil, and can't even be carried by anything else. Wouldn't spread far, would it? Despite this I can think of at least one major hole in Mac OS X, and the funny thing is most people think it's a feature. Of all the times Mac OS X has asked for your administrator password, how many times did it first try to authenticate it against you? That is, did you know you were really giving your username and password to Software Update? Or did it just look like that? Could you reasonably prove the program that was asking was the actual, bona-fide, Apple-supplied, Software Update.app?)
So anyway. Where is Apple with "managed code"?
- It's just deprecated the Cocoa interfaces for Java.
- It's hired the LLVM, another MC environment, people, but LLVM is only the lowest level of a managed code environment. It will have to build high level APIs and then get programmers to program for them.
- Microsoft has .NET, which has had a few false starts, but is slowly gaining acceptance. Programmers can write for .NET now, but are using Microsoft APIs.
So Apple's quite a way behind. They're clearly knowledgable about the issue, and comments by Jobs about coming upgrades to Objective C, coupled with their LLVM activity, shows they're taking the job seriously, but as of now there's no signs they have such a system ready.
Is Apple going to switch to Windows soon? No. The combination of Windows and .NET just isn't ready. At the same time, imagine this scenario:
1. Apple begins by working with Microsoft on porting .NET to the Mac. The .NET APIs, just as the Java ones were, are made to make apps look as native as possible on the Macintosh. Apple also provides access to Cocoa and Carbon, and gives .NET full Xcode support.
2. Apple completely deprecates everything that doesn't result in .NET CLR code. The iApps are ported to .NET, and, indeed, with the aid of a Carbon/Cocoa interface for Windows, are provided for both Mac OS X and Windows users as one binary.
3. Work begins on an Apple version of "Windows .NET". The OS X look and feel is implemented, and Apple ports the Finder and Dock to .NET, changing the default shell of Windows. Microsoft finally creates WinFS, so that services like Spotlight can continue to function adequately, and Windows finally has decent file metadata support.
4. Apple announces plans to bundle both operating systems will all future Macs. Mac OS X will usually run as a virtualized operating system rather than independently, possibly even with the same kind of integration that we saw between Mac OS 9 and OS X via "Classic" mode.
5. Development on Mac OS X ceases. Apple continues to distinguish themselves from the competition, as their OS has an entirely different look and feel to Dell's, or HP's, or whatever's; but their OS also is cheaper (no need for an entire operating system development group), and developers can develop applications that will run on every platform without problems. Issues like DRM fall by the wayside as Microsoft's adoption of a particular content protection scheme no longer locks content out of the Mac world, or whatever.
Likely? Well, it's likely that if it happens, it'll happen as the above. Probable? Not today. But don't rule it out. Apple did switch to Intel. Anything's possible. Note though that if it happens, it's going to be well sign-posted. Don't assume that (1) happening means that it's going to happen, but if Apple starts porting everything to .NET, then the likelihood is close to a 100%.
(And one other thing: the above is the good scenario. I'm making the possibly unjustified assumption that Apple feels it needs to distinguish itself from the competition by having its OS have a particular look and feel. Sony, for one, doesn't feel that way. It believes the hardware alone can sell the machine. Sony though doesn't have a legacy associated with it, so, who knows?)
Undecided said:Here's the plan:
Phase 1 - fully develop the NeXT OS as a GUI to Unix for the Mac, and secure Microsoft Windows during this time (phase complete)
Phase 2 - adopt Wintel hardware and continue to use the OS from Phase 1 (in process)
Phase 3 - virtualize Microsoft libraries, to seamlessly run Windows applications on the Mac OS
Phase 4 - Invert phase 3, by running Windows as a base, but with a Mac OS GUI (so you get the dock, expose, single menu bar, etc.), and virtualize Mac libraries to continue to run existing Mac software. From the user's perspective, it will look, feel, and operate exactly like in Phase 3. This Mac GUI will only run on Apple Macs, which will continue to use innovative hardware (like scrolling trackpads).
End result: Macs, based on the Windows core (so MS does most of the development), that can run all Windows apps and "Mac apps" which over time will simply be the same as Windows apps. Apple makes money from the hardware sales, just as the do with the iPod, while retaining their distinctive look and feel.
Of course, that's just my opinion, and I could be wrong.
Ok, I posted a joke something a few days ago which implied much the same thing, only with the timetable just a little quicker than that. Here's the thing, and it's important:
- There are strong arguments for suggesting it may, eventually, be in Apple's best interests to switch to a Windows-based operating system.
- That doesn't mean it's going to happen now, and it doesn't mean they've got a long term plan to do this.
- It's Apple, Job's Apple: they do have a long term contingency plan to switch to Windows. That is, they're not ruling it out, but the circumstances would have to be right. They have all kinds of contingency plans. Most of these will never go into action.
What would the circumstances be for Apple to switch to Windows?
Well, the major possibilities are:
1. They have to be in the same situation as they were at the beginning of the 1990s. Back then, Apple needed a next generation OS. It was clear that most rival operating systems were either technically superior, or on their way to being technically superior. Commodore had AmigaOS. IBM had OS/2. Microsoft was developing NT. The Steve had NeXTStep. Be had BeOS. In the midst of all of this, Apple's System 6 only had "multitasking" with an optional bolt-on, and would have to wait until System 7 for anything standard. They had A/UX, but A/UX didn't belong to them and would never be an option as a base OS. They didn't actually have an OS.
or
1. Development of Mac OS X is costing too much money.
2. Their development paths would be way behind or non-existant as far as the NG OS goes. This also happened to Apple in the early nineties, Pink/Taligent went no-where, and Copland was (a) not even a next generation OS (it was a stepping stone to one. It was to MacOS what, I don't know, DR's DOSPlus was to DOS. Old farts will know what I'm talking about), and (b) getting further and further behind.
3. Microsoft must want to be flexible enough. This is probably what killed Apple's early looks at NT in the 1990s, I don't think Microsoft wanted to give up control over the API to anyone. Apple would have insisted on a front end that required a non-Win32 API to be practical, and MS would have balked at that.
Ok, that's not forseeable in the near future, right?
Well, unfortunately it is. Here's the thing: we do, actually, know that a next generation OS is necessary. We're talking about managed code, an entire system architecture that makes security much more fine-tunable, makes hardware architecture independence more possible, and adds a new layer of reliability (as opposed to an extra layer of complexity) to software development. And it's happening - the original spec for Vista had most of the front end rewritten in .NET; this went by the wayside because it can't be done yet (just as NT was never completely finished), but long term, that's the direction Microsoft's going to go in.
Be very wary of coming up with "But customer's don't need..." or "Isn't that less efficient...?" type arguments, because exactly the same things came up in the eighties, when everything went OOPs, and in the early nineties, when hardware memory protection and pre-emptive multitasking took over from the cooperative environments that preceeded it. No, ordinary users don't understand obscure buzzwords, but security, especially in the age of networking, is important, and to date, nothing outside Java or .NET has it. Nothing. Not even Mac OS X. Yeah, I said it. Don't believe me? Apple releases a set of security updates how often? That's because there are holes in OS X as there are in all operating systems.
(Aside: Yes, I know you've never experienced a virus. That's not the point. Mac OS X has the benefit of low usage at this point which means (a) it's not that attractive as a virus platform and (b) it's lack of usage helps - imagine a biological virus that can't only spread into people with a left green pupil and a right brown pupil, and can't even be carried by anything else. Wouldn't spread far, would it? Despite this I can think of at least one major hole in Mac OS X, and the funny thing is most people think it's a feature. Of all the times Mac OS X has asked for your administrator password, how many times did it first try to authenticate it against you? That is, did you know you were really giving your username and password to Software Update? Or did it just look like that? Could you reasonably prove the program that was asking was the actual, bona-fide, Apple-supplied, Software Update.app?)
So anyway. Where is Apple with "managed code"?
- It's just deprecated the Cocoa interfaces for Java.
- It's hired the LLVM, another MC environment, people, but LLVM is only the lowest level of a managed code environment. It will have to build high level APIs and then get programmers to program for them.
- Microsoft has .NET, which has had a few false starts, but is slowly gaining acceptance. Programmers can write for .NET now, but are using Microsoft APIs.
So Apple's quite a way behind. They're clearly knowledgable about the issue, and comments by Jobs about coming upgrades to Objective C, coupled with their LLVM activity, shows they're taking the job seriously, but as of now there's no signs they have such a system ready.
Is Apple going to switch to Windows soon? No. The combination of Windows and .NET just isn't ready. At the same time, imagine this scenario:
1. Apple begins by working with Microsoft on porting .NET to the Mac. The .NET APIs, just as the Java ones were, are made to make apps look as native as possible on the Macintosh. Apple also provides access to Cocoa and Carbon, and gives .NET full Xcode support.
2. Apple completely deprecates everything that doesn't result in .NET CLR code. The iApps are ported to .NET, and, indeed, with the aid of a Carbon/Cocoa interface for Windows, are provided for both Mac OS X and Windows users as one binary.
3. Work begins on an Apple version of "Windows .NET". The OS X look and feel is implemented, and Apple ports the Finder and Dock to .NET, changing the default shell of Windows. Microsoft finally creates WinFS, so that services like Spotlight can continue to function adequately, and Windows finally has decent file metadata support.
4. Apple announces plans to bundle both operating systems will all future Macs. Mac OS X will usually run as a virtualized operating system rather than independently, possibly even with the same kind of integration that we saw between Mac OS 9 and OS X via "Classic" mode.
5. Development on Mac OS X ceases. Apple continues to distinguish themselves from the competition, as their OS has an entirely different look and feel to Dell's, or HP's, or whatever's; but their OS also is cheaper (no need for an entire operating system development group), and developers can develop applications that will run on every platform without problems. Issues like DRM fall by the wayside as Microsoft's adoption of a particular content protection scheme no longer locks content out of the Mac world, or whatever.
Likely? Well, it's likely that if it happens, it'll happen as the above. Probable? Not today. But don't rule it out. Apple did switch to Intel. Anything's possible. Note though that if it happens, it's going to be well sign-posted. Don't assume that (1) happening means that it's going to happen, but if Apple starts porting everything to .NET, then the likelihood is close to a 100%.
(And one other thing: the above is the good scenario. I'm making the possibly unjustified assumption that Apple feels it needs to distinguish itself from the competition by having its OS have a particular look and feel. Sony, for one, doesn't feel that way. It believes the hardware alone can sell the machine. Sony though doesn't have a legacy associated with it, so, who knows?)