technicalcreative

Friday, January 26, 2007

Liberating Constraints

The recently released AmigaOS interests me. It is almost impossible to secure the AmigaOne hardware that will actually run it, its web browser cannot handle CSS and the product has Amiga in the title. Hardly a guarantee of commercial success.

Commodore may have mismanaged their brand to extinction, but they presided over an interesting time in the computer industry. The IBM PC, as it was known back then, was finding its way into offices but had no business in the home. The late eighties and early nineties belonged to the Amiga A500.

Clocked at a paltry 7.14Mhz, the A500 shipped with 512K of RAM, sporting a single floppy disk drive using a 880K proprietary disk format. Expansion was possible; but many A500 owners just had the basic model - leaving software manufacturers knowing exactly what they had to work with if they wanted to reach the widest audience.

The situation today sharply contrasts. PCs have invaded homes across the globe. Modular in design, modern PCs are an aggregation of components from an army of manufacturers, replaceable at any time. Too many implementations take this for granted.

Programmers have become used to the ever-expandable PC, and can be lazier for it. An operating system upgrade happens just before a hardware upgrade, while PC games and applications are more demanding than ever.

Contrast that with the lifespan of the Amiga, when machines were not routinely upgraded. As the sun sank on the 16-bit era, the software was better than ever. Programmers devised new, leftfield ways to get the most of the hardware - accessing undocumented features and thoroughly subverting the stated intention of a chip to get the desired result. Innovation flourished despite the obvious constraints programmers had to work within.

Thankfully, the practice lives on. The Sony Playstation2 is currently enjoying an impressive swansong, while successive releases of MacOSX actually improve the performance of your kit. I'm writing this blog on a 500Mhz iMac, which can still do everything pretty well with the exception of video.

That in mind, it's difficult to justify the self-perpetuating software/hardware cycle on the PC platform, especially in light of the environmental impact of discarded hardware. Today's PCs are powerful, incredible machines, with record household saturation. Consumers have the right to demand more from their hardware, and those that work in the industry are in a position to deliver.

Better hardware can be the dividing line between realisation of an ambition or abject failure, but mostly, it isn't. Those responsible for software already operate within chronologically based constraints. It's time to add a few more. By invoking the spirit of Amiga developers, today's PC programmers can produce code that is performant, reliable and personally satisfying.

Constraints are not problems. They're an opportunity for developers to liberate themselves from the bloated practices of the past, a chance to innovate and develop better practices, and most importantly, deliver great experiences for customers, regardless of the hardware they own.