I refer not to the many great people inside Commodore who did what they could, but to the CEO and President of the company, who never once (to my knowledge) responded to their customers.


























Actually, Escom may have cared, but we really didn't get a chance to find out.































If it seems I am disappointed with American management thinking in general, that is correct.





























Ted Nelson, designer of Xanadu, calls these "transclusions". They are displayed in a document, even though they are actually retreived from the original source. The program I am writing this in, Thinker calls them "See-Thru Links". These methods allow the construction of compound documents, which HTML supports for images, but not text.


























Amigas have always been good at running multiple OS's simultaneously, but the hardware has, for about the last10 years, lacked speed.































But not the only good model. It appears the business model Amiga resembles now is NewTek. They are hiring a small group of the world's best programmers to produce a system that is far superior to any other available.



































Often when I am conceptualizing something, I work from both ends and move towards the middle. How would this apply to designing an OS and software? First, think in terms of the goals you want to accomplish. This may have nothing to do with computers or software, but instead, something like: I would like to study the Everest expeditions of 1996 in detail, examining all the testimony concerning what happened, the video footage created, the magazine articles written, the books ("The Climb" vs "On Thin Ice"), the IMax film, etc. I want to be able to analyze the contradictions and agreements of various accounts, and the credibility of witnesses, the limits of their viewpoints. Something like this would be the goal. Now start at the other end. What does the hardware look like? How does the computer store, swap, and add bits of data? Then what higher level language tools are available? Can the same programs run on other hardware and the data be interchangeable? What are the simplest, most compact and bug-free programs that will bring me the information I want, let me work with it without so much complexity that the software interferes with my thinking about the things I am trying to accomplish? How can the software complement and extend my capabilities to think about the subject matter and feel some of the things the participants felt, so I can try to understand some possible motives? What steps need to be taken to fill in all the gaps between the low level transistor switching taking place in the computer and my high level thought processes? The higher up the software can go in trying to appoximate what I am trying to think about, the more successful it will be as a tool in acheiving my goals.

The problem I have found in programming books is they leave huge gaps. They give me the basic things to do simple, but useless programs. Then, all of a sudden, they skip to things only a computer scientist can understand. There are no intermediate steps so I can climb all the way up the ladder to accomplish my goals.

Very few software tools allow someone thinking about abstract concepts, not related to computers, to express and explore their ideas without forcing the user to bridge most the gap themselves. The software should bridge as much of the gap as possible, avoiding any unnessary complication. Just as it is easier to study in a quiet room rather than a rock concert, it helps to keep out complexity that serves no purpose. This puts an extra burden on the programmers, but it is a one time task for them. If they can do something one time that save users from doing a meaningless step, then it will save thousands or millions of useless tasks for all the users combined.

Creating a system that is simple to use and powerful enough to be really useful is a difficult but doable task. It has been done on rare occasions. It is called, in programming, "elegance", and is a worthy goal. Unfortunately when operating systems are designed by marketing people, the opposite of elegance is usually acheived, and everyone suffers. By marketing people, I don't mean user interaction designers (Cooper), but those whose only goal is sales, without regard for program quality, usefulness, stability, and elegance.





















Albert Einstein said "Everything should be as simple as possible, but no simpler".