Searching For Essay on Innovation, UNIX and C? 25
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?
Re:Seriously... (Score:1)
Re:the killer apps... (Score:1)
Does the fact that information theory was invented by Claude Shannon make Einstein any less of a genius? Similarly, the spreadsheet being invented on an Apple II doesn't detract from what Unix has brought to modern computing.
Re:the killer apps... (Score:1)
Don't be stupid.
The rise of 'worse is better' (Score:1)
http://www.ai.mit.edu/docs/articles/good-news/subs ection3.2.1.html [mit.edu]
Pre-IRC (Score:1)
Re:Bill Gates Invented the Web! (Score:1)
heheh.. I was hoping you'd mention Cello. I used cello on my crappy 386SX20/2MB Ram on Windows3.1 because it took Netscape (0.9x) WAAAY too long to do _anything_. Cello didn't have support for forms (at the time), so I had to use http://search.yahoo.com/search?p=[searchtermshere
What about??? (Score:1)
Seriously... (Score:1)
* Modern computing: Starting 5 minutes ago, until about 5 minutes from now.
Re:Seriously... (Score:1)
those have been around for long enough that you should know about them.
glibc2.0 and above have supported threads natively since their inception.
-----
Re:the killer apps... (Score:1)
Although I'm not too sure on the history of the spreadsheet, I do believe that both Napster and Instant Messaging came about based on the true innovative works done before. Instant Messaging isn't that far off the scale from IRC, which has been around since 1988. Napster, as a 'peer to peer' client isn't original, in that at least since the early 90's (maybe earlier), DCC (Direct Client to Client) was instituted in, again, IRC clients. Napster put 2 and 2 together, and managed to pool all the end clients. This had been done on a much smaller scale on IRC warez and porn channels much earlier, probably before Shawn Fanning was old enough to drive a car. I'm sure IRC owes to many previous chat/email systems for it's development, but it seems me that this is where the innovation was.
Re:it depends on what you call a graphical browser (Score:1)
WorldWideWeb.app wasn't much more than lynx with a helper app set for image viewing.
Re:the killer apps... (Score:1)
Another big one:
the relational database, first deployed on IBM mainframes.
GUI publishing software
video games, first deployed on mainframes and mini's
Re:What about??? (Score:1)
By M$ standards that's a step backwards (outovation?). It's a text-mode display. Apple's Lisa had a cute little bomb on the display when it (rather too frequently) crashed. There was even a button you could click (with any of the one mouse button) to reset the system, which usually caused the screen to smear, like you'd wiped a fresh injet printout with a damp cloth and smudged the ink. After that, you had to pull the plug, because the "intelligent" power switch relied on the software.
Re:Seriously... (Score:1)
Re:the killer apps... (Score:1)
Re:the killer apps... (Score:2)
Napster like functionality was also in place a long time ago in the form of archie/anonymous ftp.
I know - I was using these tools in 1994 when I first got online. I know there were people using this stuff long before I got there.
The spreadsheet was a true innovation. I definitely agree with you on that one.
The real innovation of Napster and IM were in the GUI packaging and ease of use that brought it to the masses.
Re:the killer apps... (Score:2)
The interface (when using X11) is through a window with a list of users and you send discrete messages to your destination. The messages appear in separate windows on the receiver's display. The implementation doesn't appear to be meant for internet-wide use, but it is still in heavy use at CMU and MIT (where cross-realm zephyr is enabled so we can lob messages at each other).
Re:Really stretching it. (Score:2)
There are so many things wrong with this sentence, i don't know where to begin.
--
Re:Seriously... (Score:2)
Re:Really stretching it. (Score:2)
Another thing: although TCP/IP was (I believe) first implemented on Unix/C, it certainly wasn't the first networking protocol. DECnet certainly precedes it, and I'm sure there are others which are older also.
The rest seems pretty much spot-on, though.
Re:Seriously... (Score:2)
Umm... no. Windows 9x supports threads -- it linux which doesn't support threads.
OTOH Windows 9x doesn't support multiple processors so I guess it cancels out in the end.
the killer apps... (Score:2)
Spreadsheet - developed on the desktop PC, non-unix
Napster - developed for the home PC, non-unix
Instant messaging - non-unix, although some argue that this hasn't became a 'killer-app' yet.
I consider both of these to be innovative software developments.
Re:Seriously... (Score:3)
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.
Bill Gates Invented the Web! (Score:4)
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 [w3.org] 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!
Really stretching it. (Score:4)
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.