Searching For Essay on Innovation, UNIX and C?
michael_cain asks: "Sometime in the past few years, I read an online essay with the thesis that most of the software developments that people today regard as innovations were initially developed on UNIX using C. For example, the first graphical Web browser (Mosaic) and most early Web servers (CERN, NCSA) were initially UNIX apps written in C (or C++, a derivative). I've tried the search engines but have been unable to come up with the essay that I remember (lots of other interesting things, of course). So a question for the collective memory of the Slashdot community -- do you know this essay? Do you have a link to it?" Such an essay would be an interesting read. Do you agree or disagree with the topic, however? If not, what do you think are important innovations, and did they originate from Unix and C?
PARC invented a lot of what we take for granted in a modern computer system, but much of it was hardware (as I understand it).
The main things that I'm aware of being invented at PARC are Ethernet, the laser printer and the personal computer (they built workstations with bitmapped displays while everyone else was using timeshare machines). The obvious exception is the WYSIWYG display and certain GUI elements as you mentioned.
Unix contributions are probably more subtle and low-level. TCP/IP was first implemented at Berkeley I believe, as were most of the original networking programs. The "small, well defined tools" and the "everything is a file" approaches were both popularised by Unix. I think a lot of innovations come from these, few features. Networking is key to modern computers and the ability to quickly write new code made it easy to experiment.
C, on the other hand, popularised the segmentation fault by making it easy to write bad code.
C'mon, let's get it right. Mosaic was not the first graphical Web browser. That honor belongs to WorldWideWeb.app, written by Tim Berners-Lee in Objective C on NeXTStep. This FAQ item gives the story: First, there was WorldWideWeb.app for NeXTStep, then ViolaWWW, Erwise and Midas for Unix. Marc Andreessen and Eric Bina then wrote Mosaic for Unix after seeing ViolaWWW and Midas. Later, other NCSA people ported Mosaic to the PC, and it came out about the same time as Cello on the PC.
So, Mosaic was not the first at anything. Not the first graphical Web browser, not the first on Unix, and tied for first on the PC. Let's get it straight!
What I regard as innovations were the result of people putting existing techniques and technology together in useful new ways. (Very few innovations truly have no antecedents.) As much as I love Unix, I can't say that very many of what I consider innovations in the computer realm were developed on Unix in C. Here's a random, non-comprehensive selection of those innovations:
The Microprocessor: Created by Intel in 1971.
The Mouse: Developed by Douglas Engelbart, and famously demonstrated by him in 1968. Launched into widespread use by the Macintosh in 1984.
The Screen: Credited to Mr. Engelbart again.
The Spreadsheet: VisiCalc, which ran on the IBM PC, is considered the first spreadsheet.
The Word Processor: Some consider WordStar, which was developed on CP/M, as the first word processor. However, with just a short Google search, I found a 1963 memo from DEC describing TJ-2, a text justifier running on a PDP-1.
The GUI: It's well-known that the Xerox PARC researchers came up with the fundamentals of the modern WIMP GUI while Unix was in its infancy, and that Apple brought the WIMP GUI to the masses with M68000 assembler, C, and Pascal.
Virtual memory: Hell, I don't even know where it started, but I know Multics (which came before Unix) had it.
Unix: Originally developed in chalk on blackboards in 1969, then PDP-7 assembler, then B, then NB, then C.
The C language: BCPL begat B, which begat NB, which begat C on the nascent Unix.
The Amiga: An inspired hardware/software combination. The hardware was designed mostly on hand-drawn schematics, and the software developed in large part on the prototype hardware, although a some Sun workstations were used later on. Developed in M68000 assembler, C, and BCPL.
The Free Software movement: This began in C on Unix. Yay!
The Video Toaster: Developed in secret by NewTek on the Amiga computer. The software for it was written in M68000 assembly and C.
The Personal Computer: MITS generally gets the credit for this one, with the Altair. IBM built a PC in the early '80s, and Compaq cloned the BIOS, which brought what we now call "the PC" to the masses.
The Internet and TCP/IP: Developed on a while variety of computer systems, mostly mainframes and mini-computers.
Hypertext: Dreamed up by Vannevar Bush decades before computers made it practical.
The World Wide Web: The first servers were written in C on Unix, but the first graphical Web browser was written in Objective C on NeXTStep (only sorta Unix).
Shrink-wrapped software: Created by Bill Gates and Microsoft from their software efforts on the early personal computers.
Well then, as far as I can see, Unix and/or C helped along many innovations, but claiming all computer innovations were developed in C on Unix is quite an outrageous claim.