Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Unix Operating Systems Software

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?
This discussion has been archived. No new comments can be posted.

Essay on Innovation, UNIX and C?

Comments Filter:
  • by Anonymous Coward
    Um, have you ever tried to read Perl ?
  • Although what you say is absolutely true, I don't think proof by contradiction really works here.

    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.
  • The killer app is email...
    Don't be stupid.
  • Here's one at MIT, less likely to get slashdotted.

    http://www.ai.mit.edu/docs/articles/good-news/subs ection3.2.1.html [mit.edu]

  • Chat programs were popular on timesharing and BBS systems in the 1970s. IRC is simply a network-oriented implementation.
  • ...and it came out about the same time as Cello on the PC.

    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] to search for stuff.. heh.. those were the days (-:
  • But aren't you over looking the wonderful creation of the BSOD ?? This conecpt not only reminds us to reboot our systems, it has also found its way into wonderful screen savers, too! Heck rebooting your system - there's something I don't think was even thought would occur much in a UNIX environment...
  • The work at Xerox PARC I think of first when I want to point at a single thing responsible for many things in "modern*" computer. WYSIWG being something that although not advertised much today is a big thing to me. However I do agree UNIX is a major part in the puzzle - especiall on servers. MIMD (Multiple Instruction Multiple Data) with more than one user and threading (9x won't do threads) are things that some ahem modern systems are lacking...

    * Modern computing: Starting 5 minutes ago, until about 5 minutes from now.
  • can you say, pthreads?

    those have been around for long enough that you should know about them.

    glibc2.0 and above have supported threads natively since their inception.
    -----
  • 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.

  • Maybe the wording wasn't quite right, but Mosaic revolutionized the way graphics where used on the web. It was the first to implent inline images with the <IMG> tag. Previous to that a web page could contain text or link to a single image file.

    WorldWideWeb.app wasn't much more than lynx with a helper app set for image viewing.

  • I agree.

    Another big one:

    the relational database, first deployed on IBM mainframes.

    GUI publishing software

    video games, first deployed on mainframes and mini's
  • BSOD

    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.

  • It's easy to write bad code in any language.
  • I remember back at CMU in 1990 we used an xwindows program called zypher that was an IM app. So there was IM before the web.
  • Finger and talk provided instant messaging functionality a long time ago. IRC is another example that clearly predates the current crop of IM tools.

    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.
  • Not to mention, zephyr predated ICQ/AIM by far (most of the C source files are copyrighted 1988). It's a unix-based instant-messaging system developed by MIT which uses kerberos for authentication. It has not only private messages, but "classes" which allow you to broadcast messages to a group of individuals.

    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).

  • Er, Visicalc was never an IBM PC program - it was an Apple II program. It changed its named to Lotus 1-2-3 when it was implemented on the IBM.

    There are so many things wrong with this sentence, i don't know where to begin.

    --

  • Backing up the other poster; the first release version of Linux to have real threading in the kernel was Linux 2.0, which was released on June 8th, 1996. The libc support did not mature until distributions began to ship glibc2 instead of libc5, but before that time there existed a separate threading library to interface with the kernel's native threading functions.
  • Er, Visicalc was never an IBM PC program - it was an Apple II program. It changed its named to Lotus 1-2-3 when it was implemented on the IBM.

    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.
  • (9x won't do threads)

    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.
  • Take a look at the killer apps...

    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.

  • by stephend ( 1735 ) on Friday April 06, 2001 @05:05AM (#311491) Homepage
    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.
  • by jagapen ( 11417 ) on Friday April 06, 2001 @07:53AM (#311492)

    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!

  • by jagapen ( 11417 ) on Friday April 06, 2001 @09:18AM (#311493)

    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.

Don't panic.

Working...