The Zen of Amiga

The "Zen" of Amiga

An Amiga wasn't my first computer, but it was the first one I had and used that showed me what computers could do. In particular it was "Denny Atkin's Amiga Hints and Tips" that showed me that unlike my previous computers, there was an engine inside that could easily be turned to any task I could think of. I would summarise the unique, and enduring (given that it still has supporters despite years of pain that would have seen of any lesser system) appeal of the Amiga as:

  • Offering ease of use on a par with it's peers of the time combined with almost unlimited flexibility
    • The Apple Mac had the edge on ease of use, but couldn't do anything sophisticated (of course, that has changed now with Mac OS X). This was perfectly satisfactory for most, especially those who just needed something that worked to do their jobs (e.g. DTP, graphic design) but not enough for those of us who liked to tinker
    • Unix systems remained impenetrable to new users and those without the means to have a workstation at home (remember it's not so long ago that 8MB of RAM was considered a lot, no-one had more than 1GB of hard disk space and hardly any chips had an MMU builtin)
    • Nothing needs to be said about DOS and Windows in this regard, except perhaps, none of the ease of use combined with none of the flexibility
  • No complexity for complexity's sake
    • No unnecessary abbreviations i.e. Amiga's "Search" search's for text or files, while Unix's "grep" doesn't mean anything to a new user. Calling the word count program "wc" is not an efficient saving of space when it weighs in at 15KB because all the OS functions have been statically linked!
    • The filesystems of the time didn't allow long filenames, which today has the legacy of Windows and other systems being full of "ihbsdfds.dll"s and other such nonsense.
    • System files are compartmentalised and managed logically. Not all just dumped in C:\WINDOWS\SYSTEM32
    • Disks can have real names, not letters
    • Error messages are in plain english
    • On the Amiga, it is obvious what the likes of "serial.device" or "diskfont.library" do
    • ARexx remains the only scripting system that allows applications to extend the language's API with their own functionality. AppleScript on Mac OS X comes close, but most applications don't bother to add anything other than UI macro functionality and it remains a tool more useful for improving Accessibility
  • Performance
    • These days a high spec Amiga, even without a PowerPC upgrade, can do most of the jobs required of a modern computer, including playing MP3s, DivX and DVD videos, running web servers and surfing the Internet. It can do all this while demonstrating the most responsive multitasking found on any platform ever, even if the CPU is loaded to 100% in doing so
    • A PalmPilot has faster hardware (ColdFire chips are rated at about twice the raw processing speed of a 68060) and yet PalmOS can't even manage multitasking, let alone multimedia
    • Linux evangelists maintain that Linux's monolithic kernel architecture makes it less complex and faster, but AmigaOS's perfect implementation of microkernel architecture beats Linux hands down on equivalent hardware
  • Efficient use of resources
    • The .library model means that code is rarely duplicated across the whole system, not just applications. Static linking of large routines is rarely used by the OS itself
    • Thanks to the way libraries are implemented, they are only loaded once and shared between all applications. This is a much better situation than Windows "DLL Hell" where to this day applications still bring their own DLLs with them in case the system one is a different (and thus incompatible) version. Unix and even Linux also suffer from this, as static linking is heavily used, dlopen() is an MMU-impaired kludge and with Linux the kernel and it's device drivers are configured and integrated at compile time rather than run time
    • FastFileSystem always fit more on a disk than any other computer could
    • No wasteful eye candy
  • Ease of development
    • Development could be done in many languages, meeting the needs of beginner to seasoned hacker
    • APIs and coding idioms are uniform across all of the OS services and tools
    • Excellent documentation, documentation tools and example code

Let's see how other Operating Systems' Zen compares to AmigaOS:

Zen AmigaOS Windows MacOS X MacOS SymbianOS PalmOS Linux
Ease of use
Good
Good
Good
Good
Good
Good
Poor
Power
Good
Average
Good
Poor
Average
Poor
Good
Complexity
Good
Poor
Average
Good
Poor
Good
Poor
Performance
Good
Average
Average
Good
Average
Poor
Average
Efficiency
Good
Poor
Poor
Good
Good
Average
Poor
Development
Good
Good
Good
Poor
Poor
Average
Good

Note that for the above table, scores such as Windows "Average" performance reflects the hardware requirements - yes, it can play multiple videos at a time while doing complex calculations, but that's because of the hardware. Imagine how much better it would run if that hardware had been designed for AmigaOS.

Of course, the Amiga wasn't just it's OS software, the hardware followed the same principles on the whole. I think it is more likely that rather than new generations such as AAA not being able to keep up with the Joneses in speed, instead it would have been beaten by the increasing commoditisation in hardware so that there was no way

Thus it is certain that had Amiga continued as it was, the hardware today would look like any other computer. Which is in fact how it's worked out.

With the Zen established, we can consider what other things reflect similar Zen:

  • PowerPC
  • AmigaOS 4
  • Chris Hodges' Poseidon USB stack
  • ReAction
  • DataTypes that recognise files by their content
  • INet225 and socket.library

and those which don't:

  • Linux
  • x86
  • MorphOS
  • AmigaDE
  • GCC
  • PalmOS (the Zen of which is more akin to the original MacOS than anything else)
  • Using file extension to identify a file's types
  • AmiTCP and bsdsocket.library

This explains why some projects get huge amounts of support from the community and others don't, why BeOS was considered by many the heir to AmigaOS. For a long time the MUI toolkit wasn't widely accepted but ask people why and the answer was a vague "it's not very Amiga like". Certainly in the way it used shared libraries it was very Amiga like, but it was also slow and large. For the record, I used to avoid it like the plague, but now, although we have an Amiga like toolkit in ReAction, the amount of extra applications that depend on MUI make it an essential part of any AmigaOS installation, and these days there is a lot more memory to go around. AROS too suffers a little from lack of Amiga Zen (what's the point when it's not binary compatible?!).

How the Amiga could have even more Amiga Zen

  • More APIs - Where the Amiga has not kept up is in growing the OS APIs to cover those things that need to be repeated by each programmer. ReAction is an example of an attempt to remedy this, but it is not enough. Arguably Visual Basic and Visual C++ really drove the growth in Windows as the preferred platform of the world.
  • More to come...

For more thoughts on what technologies the Amiga is missing these days, check out BoingBag 3.

The Dark Ages

First of all, I have nothing but respect for and want to say a big "thanks!" to everyone who has bought or developed Amiga products (hardware or software), or indirectly supports that with websites and discussion groups, and kept the spirit alive - it is only down to you that we still have anything to show for ourselves.

However the years of false starts, empty promises, and worst of all the inability to raise funding during the biggest technology boom in history, mean that the Amiga today is in a poor position. All the arguments, legal disagreement and uncertainty over the Amiga mean it missed out on the chance to evolve into a PDA or smart mobile phone system, or contribute in other ways to the technologies that surround us today. It is missing all of the things critical to success in today's computer market:

  • A baseline specification on a par with it's competition
  • A large enough user base to buy Amiga products in profitable quantities
  • Enough developers producing software

Because of this, no-one is going to make a living out of Amiga products alone, and any investment may not even make payback. I feel sorry for and give a heartfelt thanks to the guys at Hyperion working hard on OS4, because I know they'll barely breakeven on it, if at all. Even if they sell 10,000 copies at $100 each, that's only a million dollars, barely enough to fund 10 developers for one year. If you read on, you'll see that even 10,000 is very optimistic.

Operating Systems are now hugely expensive exercises due to the sheer volume of technologies that they must support in order to stay competitive. USB, 3D graphics cards, CD, DVD, CD-RW, Bluetooth, Infrared, Firewire, Ethernet, Wi-Fi, TCP/IP, email, web browsing, music playing, video editing etc.

To catch up, about the only strategy left is to leverage Open Source. Apple has 5% market share in desktop computers and even they have decided that they can't compete unless they use Open Source for the commodity items, allowing them to get more out of their investment by concentrating their own developers on value-adding areas, like industrial design of user interfaces, novel applications, and eye-candy (!). But if the next AmigaOS is built on or full of BSD software, why not just buy a Mac? The opportunity has been missed. The only way now to take advantage of the open source community in an original way is to make AmigaOS itself open source - certainly there is demand for a free open source lightweight and efficient kernel that can where Linux can't.

Missed Opportunities

While petty squabbles over the Amiga continued, the rest of the world moved on. In a period of huge growth and even more huge investment, almost no money came the way of AmigaOS. No one wanted to touch it, yet there were plenty of opportunities, if only they would have opened their minds to the possibilities. Here's some examples:

Mobile Phone Operating System: When the world's mobile phone manufacturers wanted a fast, efficient operating system for their next generation handsets, without the risk of using Microsoft, they went to British PDA maker Psion and developed SymbianOS, and look at the specs of their devices: 150MHz and 16MB of RAM - an Amiga could do so much more with that power.

PDA Operating System: Palm chose the 68000 processor family, and then proceeded to implement an inferior, single-tasking, slow OS for it, not even taking full advantage of the externally developed kernel they licensed for it (see http://www.kadak.com) What a waste of effort! Why the hell didn't they look at AmigaOS?!

Open source OS: The worlds of consultancy and cheap hardware found their ideal partner in Linux, but not because of it's technical merit. A free and open source AmigaOS could have been that partner.

FastFileSystem as a standard: While modern operating systems sport sophisticated, robust filesystems such as HFS+ and NTFS, FAT has found itself a niche as the standard for flash media such as SD Card. But Microsoft, after years of not asserting their IP rights, have recently imposed a tax on using FAT. FastFileSystem is more efficient and just as simple as FAT = missed opportunity.

Envoy as networking/file sharing protocol standard: With UNIX's NFS being overly complex, slow, un-portable and inefficient, Microsoft's proprietary SMB technology has become the standard for LAN file sharing, one which will likely require royalties to be paid that will put an end to the open source Samba. Not many people ever used Envoy, but I can tell you the Envoy file sharing is a hell of a lot more efficient and reliable, not to mention simple to set up.

Filetypes: The IFF format lives on today in the AIFF audio format, still used on Apple Macs for professional audio processing. But there are plenty of others, royalty free and up for grabs, and dating back to a time when it was still possible to come up with a new data format without worrying about infringing patents. The IFF formats bear more than a passing resemblance to the various XML formats springing up everywhere at the moment, although XML has sacrificed encoding efficiency by, usually, opting for plain text, and thus semi human-readable, formats. But the main concept of identifying the context of information so that different programs can use the bits they are interested in and ignore the bits they aren't are still there. In fact, it may well be possible to define a binary DTD for IFF types. While not entirely suitable for Internet use, due to not being able to guarantee the order that chunks will be stored in, which makes progressive decoding impractical, ILBM would have been a great alternative to the encumbered GIF format.

Workbench: Here at last is one example where Amiga IP was licensed for use elsewhere - IBM licensed the rights to the Workbench/Intuition way of doing things for use in IBM's OS/2 Workplace Shell. Presumably the Amiga GUI dated back far enough and was original enough to be a nice alternative to having to license the "WIMP" GUI from Apple. In return, Amiga got the rights to include REXX with AmigaOS, and of course they got the implementation from Bill Hawes.

Amiga Inc., Hyperion and OS4

Where does this leave the Amiga today? Where the Amiga could once truly claim to be king amongst home computers - in analog video and 3D rendering - is now dominated by the likes of Maya, and by digital video, a new generation of amateur directors inspired by iMovie (or Final Cut for the more adventurous). Other areas are almost unassailable, there's little chance of defeating Microsoft in office apps, Macs in art departments and DTP or Linux in servers (the Amiga can run the same software but is in no way secure enough). Certainly Amiga haven't got the money to try. The Amiga now is a hobby machine. I try to use mine as much as I can but the truth is I can't do the work I need to do on an Amiga. I only use it because it remains a joy to use and a fun hobby. I'd be very surprised to hear of anyone solely using Amigas these days, especially at work as well as home.

The AmigaDE is a failed attempt to cash in on the name, but offers nothing Amiga-like in it's zen. In the area they're playing in, bigger companies like Mophun are struggling and they're in millions more devices. J2ME is the winner in that space by a long way, even if technically it's braindead. I predict we'll never hear of AmigaDE again.

OS4 is shaping up to be a worthy successor to the Amiga name. It certainly seems to have the right Zen. It goes to show that the future lies in those who do instead of those who talk about doing.

One tip though - minority platforms cannot afford to charge for or withhold developer information. They need all the developers they can get - which is why Mac OS X includes, at no additional charge - probably the best development tools available on any platform. Without developer kits, developers like me will not produce the software that is needed to justify the existence of OS4, and the days when we would be prepared to pay $300 for SAS/C and $50 for the NDK are long past.

Perhaps there is an opportunity in the space inbetween Windows Media Center and TiVo - a true multimedia computer that manages your TV, recordings, music collection and DVDs, and at the same time is a fully fledged computer that can handle games, email, Internet and other home computing tasks. That sounds a lot like the "set-top box" concept that was once touted as the saviour of the Amiga, doesn't it?!

There is only one domain I can think of which remains a potential target for Amiga style computers, the emerging markets in "second world" countries. These markets cannot afford the Microsoft tax, but neither will the likes of Linux meet all their needs, due to it's complexity and user-unfriendliness. An Amiga1200 with ability to do email, web browsing, basic word processing and learn programming would suit countries like the Phillipines, Thailand, India and many others, where the cost of high end hardware is still prohibitive. Even in the UK, where once there were £1000 PCs and £300 Amigas, there are now only £1000 PCs, and yet more people than ever want and need a computer. Why should they pay for computers that are way more powerful than they need or could ever use to companies that keep the prices fixed by always using high end hardware to make their tiny margin (obliterated by Microsoft) worth having. Of course, the other computing problem that needs solving in the former places is how to provide affordable Internet access.

Since the Amiga custom chips could not easily or cheaply be reproduced, and anyway offer little competition to today's mass-produced chips. Fortunately since the last Amiga came off the production line, UAE has come along, as well as ColdFire chips that are cheap and can emulate very fast 68Ks, and can talk to modern hardware (SDRAM, USB etc.). To complete the package we have an OS4 that runs independently of the original Amiga chips, and is entirely in C and thus portable (in fact, OS4 betas exist that run on 68K). A ColdFire based system on commodity hardware running a 68K version of OS4 would be a very cheap and powerful computer indeed.

One thing's for sure - the current Amiga user base is not large enough for anyone to justify investing in Amiga products for any reason other than hobbying. To give you an idea of how many people are willing to pay for and support Amiga products, 700 unique people visited my website in over a month to learn about Python. 1000 more came to see TurboText be released for free. Let's make an optimistic assumption that each of those is an individual, no matter how unlikely given that each browser or computer used and each cookie-cache flush means an individual would be counted again (at least 10 of them are me on different computers and browsers testing the site!). So that's 700 people who have an interest in seeing the Amiga be successful, have major software equivalent to that available on other platforms, and are probably saving to buy an AmigaOne with OS4. Another assumption: before the TurboText release, there were nearly 200 visitors using Linux (let's say AmigaOne owners), and another 200 Amiga or "Unknown" visitors. So only 400 of those use an Amiga seriously enough to have setup a web browser, a pretty basic component of any modern computer. Barely a handful of them actually downloaded the software, and not one has made a donation. The future for OS4 is, unfortunately, not very bright, when 400 times the $100 or so cost of OS4 is not enough to keep a company in business. Of the other 1000, I suspect they are only interested in free software for their legacy systems. PowerPC is really taking off now, it's technology will be in the future Sony and XBox devices, amongst other industrial devices, but as an IBM product, it will be Linux, not AmigaOS, that they run.

Designing for the Amiga

A great example of how to design for the Amiga was in the way the Say speech synthesis program was integrated. Other platforms would provide such a utility as a this as a monolithic block. The Amiga gave us:

  • Say application program
  • narrator.device
  • translator.library
  • SPEAK: device and the speak-handler

Let's consider designs for technologies important for the future of the Amiga.

Internet on the Amiga

New development of AmigaOS was cut off just before the Internet, and specifically the WWW, became available to consumers. Thus Internet services and applications on the Amiga are merely ports of what is available on other platforms. Let's speculate what could have been, and what could still be in the future, if the Amiga was to lead instead of follow the Internet revolution.

  • TCP: device
  • Accessing URLs as if they were devices - imagine that the web browser's HTTP stack is implemented as a HTTP: device and the browser then gets the file either from HTTP: or a local disk
  • Web engine that supports HTML rendering as a DataType

Integrating UAE on OS4

  • ADF file DefIcons
  • Kickstart that does Workbench emulation, passing OS calls through where necessary, to support OS almost-friendly applications that still need original chips
  • Applications running in emulated OS mode can communicate via ARexx to the rest of the system

Updating DataTypes

  • Integrate the DefIcons fast identification and default icons routines
  • Add a MIME type field to each datatype
  • Streaming IO support, including using network sockets instead of files
  • Meta-data support

Multiuser support

  • File access control
  • Multiple users logged in at the same time
  • Separate home directories and file management

Enterprise

  • Security - the file access must be rock solid
  • Servers - Apache is available
  • Vulnerabilities - passwords aren't strongly encrypted, components such as TCP/IP are based on old BSD versions long since exposed as riddled with buffer overflows and other vulnerabilities
  • Remote management - needs ability to long in remotely, telnet is possible but not as secure as SSH. Text only logins need an ability to disable GUI applications. VNC can be used for remote desktops.
  • Networking - Samba and NFS are needed

Case Study

The story of the Amiga stretches on, and makes an excellent business case study. I intend to write what we can learn from them at some time. Until then, here's some links to interesting stories of those days:

  • http://www.cs.stedwards.edu/~heyman/Amiga/Amiga.html
  • http://www.cs.stedwards.edu/~heyman/Amiga/AmigaInc.txt
  • http://www.cs.stedwards.edu/~heyman/Amiga/haynie1.html
  • http://www.cs.stedwards.edu/~heyman/Amiga/A3000plus.html
  • http://www.thule.no/haynie/