There were many people that were not pleased with my article titled What if. There were many others that liked it. Based on the amount of email (and some of the misperceptions of what I was saying), I wanted to clarify some things.
I got into "what if Windows and MacOS merged into one mighty OS", and what if the deal between Microsoft and Apple was for far more than people think. I was discussing marketing realities, and the advantages of convergence. This was about another chance for the Mac to make a serious come-back, and for Apple to remind the industry that "they're not just walking dead".
Many people did not like what the deal would mean, and the technical issues, so lets look at them.
WinNT Kernel is not that good (Mach is better).
This is true. NT is not a true MicroKernel, and like most things Microsoft does, it is good enough -- but never really "good" (let alone exceptional) in its own right. Microsoft does not value quality or doing it right -- they value doing it well enough that they can market it, and win. WinNT is no exception. There are serious holes in protection/security, and it is not the hottest performer out there. So what?
Apple, and the rest of us geeks, need to grow up a little, and realize that a little better is not always reason enough to be different. Only if we can make something that is a LOT better should we do it. Apple of olde was into doing it better -- sometimes they were only 10% better, and that just isn't good enough. If we (they) can't do it 100% better, then save the energy, and focus on other things (that we can do 100% better) -- differentiation needs to be obvious.
Apple realized this with the PowerPC by using PCI, instead of its superior bus (PCPI+ or some such), Apple is even looking at using AGP (Intel's Advanced Graphics Port) for some future hardware designs. This is a good trend -- Apple needs to tolerate "good enough" far more often than they have in the past, and get over the NIH. From what I've heard NuKernel is still better (faster) than Mach -- so what? People know Mach, they like Mach, and NuKernel is probably just not enough better to justify being different. If it isn't twice as good being different, then Apple should just go with what is out there. And it would be very hard to prove that a Unix Kernel (Mach) is twice as good as NT Kernel (at least to most users). So the deal, even with the compromises, may outweigh the technology.
Microsoft should agree to use Mach Kernel (not the other way around).
Again, I agree. Mach Kernel is better. But sometimes the deal is more important than the details. I would love it if Microsoft could grow up and play nice with others, and use open standards (and debug their code) -- but this is not the alternate universe with the evil Spock and the good Microsoft, in this universe Apple must do what is right for Apple. If the industry at large (IS/IT) and Microsoft will only make the deal using the NT Kernel, I have a tough time saying that Apple should throw away the deal because Microsoft is stupid. It would still be in Apple's best interests, even if they couldn't differentiate their Kernel -- remember most users don't care anyway, so Apple can just focus on differentiating where it makes a bigger difference.
Remember, my point was convergence. I am less concerned with how we get there. Obviously I would like it to be with the best technology (Mach on PPC is better than NT), but I will compromise if there are enough justifications for doing so. There is a chance that MS would be REALLY nice, and port Win32 on top of Mach, and make that the Windows for PPC foundation -- but I am not sure what would be "in it" for Microsoft. I imagine Microsoft forcing some very hard decisions (tradeoffs) that will be hard to swallow, but manageable (like forcing NT-Kernel or something that helps MS with their mind-share).
I never said that Apple should give up on the Mach Kernel. Apple could easily differentiate its lower-end system from its server (Pro) side by using WinNT Kernel on the low-end side, but still using Mach as their more powerful version of the OS. (But they would have to do something to unify the driver model).
Convergence would be harder to do than I implied.
OK, I may have brushed over some of the technical issues. I am an engineer, I tend to think anything is possible given enough time and money (resources). Kernels are not magic, in fact they are pretty basic stuff. Driver models are not magic. Even OS's are not magic -- they are just big. So I believe the port could be done quite easily if the companies had the motivation to do so. What kills you (companies) is just the scale of effort it would take to get it done (all the drivers, all the Hardware variety, all the test time) -- but the concepts themselves just don't seem that hard to me. Apple already has MacOS and YellowBox pretty portable. Microsoft probably has Win32 API's pretty portable (if they want them). So I just don't think it would be that hard to go either way -- as long as Application writers can push button recompile, then I will ignore the moans and groans of all the driver writers and low-level weenies.
Rhapsody is a dream as it is.
Again, I agree. Lets face it, Rhapsody allows IS types to use Unix, with a MacUI on top, and one of the best RAD (Rapid Application Development) tools for creating new Apps (YellowBox), and they get legacy Apps in being able to run Unix Apps and Mac Apps -- talk about the best of all worlds, this is it. Many people are very excited, and if the press had more brains about technology, they would be excited too. But there is also no doubt that if Apple could sell Windows App compatibility as part of this equation, then it would be better still. Maybe they will force a choice between Windows compatibility or Unix compatibility (as mentioned above by offering two versions of Rhapsody) -- I wouldn't mind that. I know that I am using Rhapsody now, and the cool factor is pretty high -- but my point was about changing the mind-share and "what if".
What about OS/2?
This idea for convergence is nothing new. IBM first started trying to converge the OS's with OS/2 on PPC and using its Kernel (and make the MacOS run under that). In fact, that was one of the inspirations for the first article -- good ideas will keep coming back until they succeed.
OS/2 is a good Kernel, and it is available on PPC's. There are some that think that it would make far more sense for IBM and Apple to agree to use the OS/2 Kernel. My response is "what for?". A Kernel by itself is nothing useful (to most people). The only way the OS/2 Kernel would be useful (to Apple) is what layers, or deals they could make, on top of it. If IBM did a Win32 port, and offered it as part of the deal, then I agree this would be good.
IBM would stand a good chance of taking some control away from Microsoft, *IF* IBM could do a good Win32 port (on top of OS/2) and if early next year that renewed OS/2 that ran Win32 Apps better than NT, and if it cost less, and if it had some great additional functionality (value added) that made it compelling. If IBM did all those things, then it would certainly be in Apple's best interest to make a deal with IBM, and use OS/2. But otherwise I see little reason Apple should do so. I see it as doubtful that IBM would even try to pull it off -- not because it wouldn't be good for them, but because IBM is pretty burned in that area (IBM didn't do well with OS/2 remember) and it would be near impossible, politically, to get the resources they needed to do it right.
What if Microsoft agreed to use OS/2?
There is also the sub topic of what if Microsoft agreed to use OS/2 Kernel, and play nice with IBM. That would be great, but unlikely. Politics being what they are, I am not sure this would happen. If it did, I think it would be good for the industry.
Still more possibilities
There are still many other possibilities that may make this old concept of the OS's irrelevant. That is what Sun would ultimately like to do with Java and NC's. There are concepts to allow "Middleware" like Java, to replace the OS. Whether people realize it or not, YellowBox is 3 years ahead of everyone else (right now). Apple will still be trying to make deals with Sun, Netscape, Oracle and others to help make NC's, and Java-Based (or YellowBox-Based) middleware (OS's) to usurp the traditional desktop/OS as well. If any of these deals go through, they could alleviate much of the need for the traditional OS deals (but certainly there is no reason that one should prevent the other, either way).
In fact, there is going to be a real interesting battle in the near future -- platform independent middleware OS's and Applications, versus traditional OS's and Applications. It is the fear of losing the middleware war, that is causing Microsoft (and Apple and others) to suddenly become far more reasonable in the way they act overall. Whether the industry realizes it, Apple has a 3 year lead on everyone else (and the market only has a finite amount of patience) in the middleware arena. So if Apple can make some deals (and it is their best interests to do so), then Apple will make a big come-back (in the mind-share game, and middleware). The only question is can they do the same in the traditional OS arena as well -- and that was what my article about What if and convergence was all about.