The history of computing is a fascinating one. Over the last 40 years or so computers have evolved from enormous and complex machines requiring specialized knowledge for operating, to small devices that most people can understand and operate in a few hours. This is a list of 10 software developments that have been the most revolutionary in the history of computing.
On November 12, 1990, Sir Tim Berners-Lee wrote a document outlining the basics of what we now know as the world wide web. Within the same year he created the first web server and web browser (which he called WorldWideWeb) on a NeXT computer (NeXT was Steve Jobs’ company when he left Apple – it was this operating system that Apple based its OS X on after Jobs returned there). No one would have guessed the impact the web would have on the world. It is probably the most revolutionary concept in modern history. Pictured above is the world’s first webserver.
The world wide web eventually grew to such an extent that it has now become the leading source of news and entertainment for many people. It has already forced traditional enterprises like Print Media and recording/film media to completely change (or consider changing) their whole business model. It is also thanks to this invention of Englishman Sir Tim Berners-Lee, that you are now reading this list on the List Universe!
Photoshop, written by Adobe was an original program developed by brothers John and Thomas Knoll. There are few products that become so ubiquitous as to become a verb; in the UK we Hoover the carpet, people Xerox documents and now we Photoshop images. Photoshop is by far the most widely used image manipulating program with no serious commercial competition available to this day. Adobe has gone on to become the world leader in media software.
Visicalc was the first successful spreadsheet program, written for the Apple II (an early computer by Apple Inc). Successful operating systems are built upon key programs and Visicalc is the prime example. Visicalc was the first computer program that did things that were impossible with a pencil and paper system and made thousands of people realize that they needed a computer. So great was the success of the program, people would go into a computer store and ask for “a Visicalc” – meaning an Apple II.
Visicalc did it with numbers, Wordstar did it with words. Wordstar did things that, at the time, made jaws drop – it could count the words in a document, and when the document was printed on a daisywheel printer it printed one line forward and the next line backwards because it was faster that way.
Suddenly, small companies could send out printed letters – unless companies could afford to employ full time typists, letters were often hand written at that time. Authors switched in droves; Jerry Pournelle (author) said that after seeing Wordstar, he realized that within a few years no-one would write with a typewriter again. A side effect was that books became much longer!
CP/M was something of an accidental invention; The legend is that Gary Kidall was working at Naval Research labs on an operating system and wanted to continue work at home on his own home built computer.
Unfortunately, the machine at work was different to the one at home, the solution was to separate out the machine dependent parts of the operating system (the disk controller and serial input/output) into a small subsection (the BIOS), the bulk of the operating system being left unchanged.
This concept made it relatively simple to “port” (the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed) CP/M to different computers – as long as the computer was 8080 (or Z80) based. Having a single operating system made it possible for applications such as Wordstar to flourish.
In the early days of small computers, programs were written using text editors – often Wordstar – and then the program files were processed through compilers and linkers to produce a finished program. EMACS was (indeed still is) an editing system for the UNIX operating system and provided the first programming environment – the compiler and linker was still there, but the process was hidden. Essentially the programmer always worked in EMACS; the program was edited, a single keypress would compile and link it.
EMACS can be configured to “know” about the format of different languages, keywords are shown in different colours, function parameters are shown automatically – it’s changed how programmers program. Virtually all programming languages provide an environment now. But it started with EMACS. Emacs is one of the two main contenders in the traditional editor wars, the other being vi [which is much better! -jfrater].
UNIX shows the advantage of giving bright guys some time and money. Ken Thompson was the bright guy and he, essentially, developed the first version of UNIX (then called Unics) to make a game run faster.
UNIX had the advantage of CP/M that it could fairly easily be ported to different machines, but it wasn’t particularly dependent on the hardware – CP/M needed a 8080/Z80 processor, UNIX can generally be run on anything from a phone to a supercomputer. This is because UNIX was essentially written in a high level language (of which, more below). UNIX (and its modern derivative Linux) is a programmers dream – it doesn’t get in the way too much, has powerful editors, good compilers, is very adaptable and, probably most importantly, a world wide community of fans and users.
Apple’s Mac OS X is based on UNIX (BSD to be exact), and most developments in modern computing (virtual desktops, virtual memory spring to mind) start on UNIX. Pictured above is the terminal on my Mac OS X machine which gives you access to the underlying UNIX system.
C is the language of UNIX, C was written by Dennis Ritchie in 1972. Pretty much the whole of UNIX and applications that run on UNIX are written in C, or C derived languages (C# or C++). C is a small language and therefore easily learnt and easily ported to different operating systems – C compilers are usually written in C.
Some of the key features of C are extendability, close coupling with the hardware, fairly strong variable typing and function pointers. These don’t mean much unless you’re a programmer! But essentially, they stop the language getting in the way of what the programmer is trying to achieve.
The influence of C has spread with the influence of UNIX; most applications throughout Windows/Linux/Mac OS are written in C, C++ or C#. C has also influenced other computer languages; Visual Basic now looks very like C.
Another programming language; Smalltalk was the first successful object orientated language. Before Smalltalk, languages dealt largely with strings and numbers. Smalltalk allowed the programmer to describe all kinds of things – shapes, sounds, video – as objects. Imagine writing a drawing program before objects; if you want to draw a circle on the screen, you use a function for drawing circles. If you want to draw a square, you use a different function to draw a square. And so on for all the shapes. With object orientated languages, you can use a single function to draw a shape – and tell it it’s a square, circle and so on.
It made application writing much easier. Smalltalk isn’t used much nowadays; C++, C#, Visual Basic are far more common, but they are all object orientated.
A side effect of object orientation is that the executable applications became much bigger; it was with the introduction of objects, particularly C++, that applications started being delivered on multiple CDs.
The single most influential operating system bar none. Are you using a graphical user interface (ie, Windows, Mac OS X) and a mouse? Are you connected to a network? Are you used to WYSIWYG editing (like MS Word?) Do you print to a laser printer? Is your computer doing more than one thing at once? All of these things originated at the Xerox PARC research facility under Alan Kay around 1973. Think about that year – 1973; ten years before the Apple Lisa was released. As you can see from the list of features of Xerox Alto; it more or less defined modern computing.
So why aren’t we all using Xerox Alto, instead of Windows/Mac OS? In 1979, Xerox, in exchange for Apple stock, allowed some Apple engineers, including Steve Jobs, to visit Xerox Parc and look at the Alto workstation. There a lesson here; if you invent a sensational, high tech product, don’t invite competitors to come and have a good look at it.