Throwing backwards compatibility away

If I had name the biggest difference between the attitudes at Microsoft vs Apple as to how they build their operating systems, it’s that one of Microsoft’s primary concerns is backwards compatibility, whereas Apple isn’t afraid to jump off the cliff to a better place, knowing it can’t go back.

A lot of what is going on underneath the hood of Windows involves shims, workarounds, and downright kludges to allow old apps and a gazillion third-party devices to work. From a purist’s point of view, it’s got to be ugly.Ed Bott

You wouldn’t see Microsoft making a jump across processor lines like Apple did to Intel, saying a (prolonged but firm) bye-bye to anybody who bought a Mac before this year. Microsoft would get crucified for such behaviour.

But now that Microsoft has mature, stable (and free) virtualisation technology, maybe they can make a leap. What’s to stop them totally re-engineering Windows to remove all the messy stuff (some of which dates right back to the early versions of DOS) and telling anybody who wants to run an old application that they’ll have to do so on a virtual machine?

(From an idea out of a discussion with Matt.)

3 thoughts on “Throwing backwards compatibility away

  1. woz not woz

    I think you will find that software written for osx and running on pre-intel macs will run on intel powered macs.

    Its not the great leap forward you imagine it to be.

    Pre os-x software will not be supported though.

    Already its difficult to boot into ‘classic’ mode in new versions of os-x.

  2. daniel Post author

    Some older Mac apps have been updated as “universal binaries”, that is they run on PowerPC or Intel Macs.

    Software that hasn’t been updated will run on Intel Macs via Rosetta, which is in fact a kind of virtualisation.

  3. Chris Till

    Apple hasn’t said “bye-bye” to anyone. Intel Macs happily run all the old PowerPC softare through Rosetta. PowerPC Macs still run all the new software due to fat (or as Apple calls them universal) binaries. Thus all existing software works on both and all new software will also work on both, both achieved differently.

    Frankly that’s a feat to be complimented – need we point out in the Windows world you required seperate builds of the entire Windows NT operating system, the drivers, and every bit of software you ran in order to use it on different platforms such as Alpha, i386, and even the PowerPC. Even recently with Windows CE you needed a completely different build of CE itself and all your software depending on which processor your pocket device had.

    The only thing Apple has (finally) left behind is the old MACOS/SYSTEM 9/CLASSIC/whatever you want to call it. In the Windows world it’s the equivalent of Windows 3.1.

    But yes Apple does take big bold steps forward, the switch from the old proprietry MACOS/SYSTEM to the UNIX based OSX is a clear sign of that… yet like their processor switch they still managed to pull that off with an incredibly smooth transition, something Microsoft can’t seem to achieve.

    The worst thing about Windows mind-boggling spaghetti is that Microsoft themselves admit a lot of the code is so old and untouched (duh no wonder their software gets more and more bloated, they leave it as is whereas in the UNIX world everything gets constantly refined) they no longer have any employees that know it. That alone is a major alarm bell that something needs to be done.

    BTW Microsoft has made several recent processor jumps – their preference for the CE/Mobile platform has changed several times and the XBox, which also runs Windows, recently switched from Intel to PowerPC (exactly the opposite move Apple has made). Funnily enough, despite virtualisation for backwards compatibility, the new PowerPC platform Xbox is barely compatible with the Intel one!

Comments are closed.