When Microsoft first released its Surface tablets - designed to show off the new tablet-friendly Windows - a lot of disgruntled early adopters discovered that their Surface would run Windows but not existing Windows software.
The problem was that the initial Surfaces were based not on the x86 computer architecture that has been Microsoft's bread and butter for decades, but on the ARM architecture that dominates mobile devices.
The ARM architecture (nothing to do with buildings, just a fancy term for design) was developed in the 1980s by British company Acorn which had already created several successful personal computers, most notably the BBC Micro. Acorn intended ARM to power a new range of personal computers for business.
Unfortunately, IBM PCs and their clones were already entrenched there. The PC was built around Intel's 8086 processor and later updates like the 80286, 80386 and 80486 which led to the label x86 even once the numerical nomenclature was dropped and Intel's rivals started making their own compatible chips.
The most successful of IBM's competitors duplicated the original PC and adopted x86 rather than seeking an alternative.
ARM did find a home, though, in the specialised embedded systems that control our electronic devices. Now that some of these devices - namely phones and tablets - are trespassing on the territory of the personal computer x86 and ARM are finally in competition after all.
ARM and x86 reflect two different schools of thought in computer design, the result of a schism dating back about 30 years.
An x86 system is a complex instruction set computer or CISC. Originally all computers were CISC, meaning each binary machine code instruction can trigger a sequence of basic operations inside the computer.
A single instruction might order the machine to retrieve a value from memory, add a number to it, and store the result back in memory.
An ARM system is a reduced instruction set computer or RISC. (ARM stands for Advanced RISC Machine - aren't nested acronyms wonderful?) In a RISC machine each instruction triggers only one basic operation at a time, so a program would need three instructions (at least) to perform the retrieve- add-store sequence above.
RISC instructions are simpler and come in fewer varieties so a RISC chip needs fewer components, uses less power and produces less waste heat than a CISC chip - those were the arguments back in the 1980s anyway.
These predictions were initially borne out and RISC became very popular - except in the PC world. The PC couldn't switch architectures without making existing software (with its incompatible instructions) unusable - just as the ARM-based Surface did.
Eventually CISC clawed back the lost ground. It turned out that with sufficiently devious design the benefits of RISC could be obtained under CISC.
Today RISC and CISC still look very different to programmers but at the level of logic gates and transistors they are surprisingly similar.
As are their abilities, which is why there are now x86 tablets and ARM laptops.
Which for us mere mortals means there's just another spec to check when shopping for hardware - as if it wasn't a risky enough business already.
- The Press