Forward Compatibility

From iGeek
ForwardCompatibility.png
People talk about "Backwards" compatibility, but Forward Compatibility is often more important.
People talk about "Backwards" compatibility, but Forward Compatibility is often more important. Backwards compatibility is when new stuff plays old stuff. But even better is designing things so you current stuff can take advantage of features that aren't yet available, but will be. And then when they are available, "tada" they just start working.
ℹ️ Info          
~ Aristotle Sabouni
Created: 2018-04-14 

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,

More[edit | edit source]

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

GeekPirate.small.png


👁️ See also

  • Anti-aliasing - What is Anti-Aliasing? It is using color to increase the percieved resolution on a display.
  • Basics of BASIC - People ask me, "How do I get started programming?" Ther are a lot of choices, but BASIC is a pretty simple start.
  • Big or Little Endian - What is Endian? How do you like your eggs (or counting systems)? Big or little end up?
  • Command Line Interface - There is an ancient computer debate about command-lines versus a GUI (Graphical User Interfaces).
  • Databases - What is a database? What are the kinds of databases? Why do you care?
  • Digitized Sound - Digitized Sound: understanding samples, rates and digital audio is really pretty simple.
  • Enterprise Tools - Enterprise, Opensource or Commercial tools, which is better and why? Of course the answer is, "it depends".
  • FUD - FUD means "Fear, Uncertainty and Doubt", it was used by big companies to scare users away from small companies.
  • Forward Compatibility - People talk about "Backwards" compatibility, but Forward Compatibility is often more important.
  • Free Features - A free feature in software, is like a free lunch: and in case you don't know, there's no such thing as a free lunch.
  • Hiring Programmers - Many Human Resources and Managers, don't know how to hire or utilize programmers; proven by their job reqs.
  • History of Visual Basic - The History of Visual Basic is a bit of a history of early computers and Microsoft...
  • How does compression work? - How does software Compression work? How do you make something smaller?
  • MHz or GHz - MHz or GHz, what does it mean? It's just clock speed - but that doesn't mean what some people think.
  • RISC or CISC - During the 80s and 90s there was a Computer Chip design war about RISC or CISC.
  • Raster Images - What exactly does raster versus vector images mean? Here's the very basics of pictures or rasterized images.
  • Software Consultants - I worked over a decade as a consultant, and used and managed them for a couple decades more.
  • Software Development Life Cycle - There's a lot of variants of a Software Development Life Cycle.
  • Synthesized Sound - Synthesized Sound is just making waves... sound waves.
  • UNIX - UNIX is the old war-bird of Operating Systems -- which is ironic as it isn't an OS any more -- but more on that later.
  • What is MP3? - What is MP3? It's just a compressed file format used for sound (that came from MPEG's version 3).
  • What is a WebApp? - What is a Web Application, and how does it vary from a traditional website?
  • Why is software so buggy? - Why are programs so buggy? They're not bugs, they're undocumented features... sorry, that's an old programmer joke.


🔗 More

Tech
Technology: Organizations, Reviews, People

Programming
Computer Programming Articles.



Tags: Tech  Programming


Cookies help us deliver our services. By using our services, you agree to our use of cookies.