Forward Compatibility

From iGeek
Jump to: navigation, search

In the tech world, I hear all the time about "Backwards" compatibility. That to me is like saying "I wish my hot new CD player would play my 8-track tapes as well". Backwards compatibility is when you create a new function or feature for your computer, but must also have a mode that works just like it did in the past. But this article is about learning to look forward,


When you double the speed of something, or improve something else, computers (PC's especially) are almost always "backwards" compatible. So this means that the "new" thing, can behave backwards, and run as poorly (or slowly) as the "old" thing.

Bleck! If I wanted it to behave as poorly as the old thing, then I would have kept the old thing to begin with.

There has got to be a better way, and there is. Sometimes, but not always, computer designers make something forward compatible. What this means is that when something is designed, it is designed with the future in mind (looking forward).

When Apple created the first Mac, they created it with 128k of RAM and a very small black and white screen. But Apple also designed it with the future in mind. It could handle a few megabytes of memory, they put values in Memory and told programmer to "ask" how large the display was, and what its resolution was, if it had color and so on. Programmers could set colors even though the screen was only black and white. Three years later, Apple introduced color Macs with larger screens (and more resolution). Like magic, those that had obeyed the rules automatically took advantage of more memory, color and higher resolution. They were "forward" compatible. (Except Microsoft Apps, which all broke because they never follow the rules. Why should they when they can charge you for upgrades to fix their problems?).

It was neat taking old programs and run them on a new machine, and have them take advantage of new features. Some programs used color (what had only shown up on a color printer started looking the same on screen), much more memory, larger displays and so on. Apple designed the Mac to support multiple monitors, even though it only had one and no external video. But when they added it, it worked. On PC's when I put in a new video card and ran a program, it had to run in the old video mode, couldn't use more colors than it was designed with, and other less-than-impressive stuff.

That was one of the things that hooked me on the Mac; the engineers were thinking ahead, instead of behind. The Mac was one the first computers to be "forward" compatible on a semi-regular basis. We need to push the industry to do this more. We start by being aware of the issue, then point it out. Eventually others will catch on to what consumers want and that we value quality and forward thinking. Maybe then we will end up with more companies engineering, and thinking towards the future - instead of designing new things with one foot in the past (and backwards engineering).

Computers do it with memory and hard drive space (to a point), and can usually take advantage of faster processors automatically (unless they're something totaly new). When Apple, Motorola and IBM designed the PowerPC processor in 1994 they pre-designed in 64 bit modes, even though they weren't ready to go to them yet. Now that they are finally released, they've varied a bit from the original goals; but they had made the effort and were on the way. When Apple designed 1394 (FireWire), they designed it at one speed (200mbps), but also so it could go twice as fast (400mbps); and they'd started the even faster design (800mbps). Unfortunately, faster needed new cables. But when they came out with faster firewire, it is also designed again for the future; with 1.6 and 3.2 gbps designed in. Compare that to the PC, which had USB which was backward compatible, or multiple incompatible processor modes, and so on.

I want to see more forward compatibility. I want to see people be able to add things that they hadn't thought of, but the designers had. I want to be able to go to 64 bit memory, and beyond. I want designers to take out limits long before I've run into them and be thinking ahead so we don't have to wait to run into the walls before someone notices they are there. I do not like when OS's keep having to be rewritten to work, or have to use old modes.

So every time I hear a someone talking about "backwards compatibility", I just chuckle and think how "backwards" that is.

Written: 1996.12.31
Tech | Programming : Anti-aliasingBasics of BASICBig or Little EndianBinary, OCTal, HEXadecimalCommand Line InterfaceDatabasesDigitized SoundEnterprise ToolsFUDFree FeaturesHack, Crack or PhreakHiring ProgrammersHistory of Visual BasicHow does compression work?MHz or GHzRISC or CISCRaster ImagesSoftware ConsultantsSoftware Development Live CycleSynthesized SoundUNIXWhat is MP3?What is a WebApp?Why is software so buggy?