The Development of the C Language (1993)
bell-labs.com
bell-labs.com
I hardly use it much these days, it's much faster to get things done in python, ruby or perl. Unless you need performance. I guess its like an old song, listening to it brings back memories of what was going on in your life when you first heard it. Reminiscing about writing my first C programs brings back the same kind of memories.
Do other people have the same feeling about the first language they learnt? Or is C really special? :)
Burroughs' ALGOL's their safer OS was written in https://en.wikipedia.org/wiki/Burroughs_large_systems#ALGOL
Modula-2 with its better readability and safety invented in Lilith homebrew system:
http://www.cfbsoftware.com/modula2/Lilith.pdf
Hansen's Concurrent Pascal was concurrency-safe in tiny runtime; Edison was C minimalism on same PDP-11 with cleaner, safer design
http://brinch-hansen.net/papers/
Modula-3 had many C++ advantages, Modula-style safety, and without C's BS:
https://en.wikipedia.org/wiki/Modula-3
Note: SPIN OS was written in it. Supported type-safe compilation and linking of code into running kernel for acceleration.
PL/I was one of predominant languages. IBM's mainframe OS's were written in a version of it (PL/S).
https://en.wikipedia.org/wiki/PL/I
Ada was systematically and cleverly designed for safety against most issues. Still is:
http://www.adacore.com/knowledge/technical-papers/safe-secur...
Note: Army Secure OS (ASOS), MarteOS, and Muen kernel were written in Ada leveraging its safety properties.
That should cover the ones that have been around since the 60's-80's. Doesn't even count functional-oriented languages like Common LISP, Schemes, or Standard ML. LISP had both OS's and CPU's made in it and for it. SML & Ocaml kicked ass in app correctness and compiler writing. Also ignored niche-specific ones like COBOL or Fortran that I thought weren't suitable for a C comparison.
Safe, C variants were even made to address its problems:
https://www.cs.uic.edu/pub/Main/PhDQualifyingExam/Sample4.pd...
Note: Cyclone concepts got rolled into Rust. So some benefit there.
There's also modern attempts like D, Go, and Rust that try to replace it to various degrees. Wirth's Modula work lives on in Active Oberon System and Go language. Almost all are moving in a direction with ALGOL68's features being the baseline. That there was better stuff before C on 1960's hardware suggests that people should've ditched it or fixed it up a long time ago when hardware limitations weren't holding it back anymore.
And let it be known that those are the only reason C was designed how it was. BCPL author actually wanted an ALGOL variant but hardware didn't work well enough. Rest was accidents of history. More detail that stretches further back than OP in this link:
We waited for Ada, and she showed up decades late.
Instead, they continued building on the foundation of quicksand with so many systems integrity and availability lost as a result. Lost way, too easily due to developers inability to safety do common things. Things that were safe or easy in alternative languages on 1960's-1980's era hardware. Did I mention this was true in 2015 still on systems with 64 cores?
Least Stroustroup made an attempt to bring in advanced features into C. Substantially improved it in resulting quality on average but still showed how much a bad foundation hurts. Stuff like Modula-3 managed high runtime efficiency, compile time efficiency, safety, integration, and readability all at once.
So, existence of alternatives providing a better path certainly mattered. That all of it was mostly ignored taught important lessons to future people trying to improve IT. Fortunately, some learned them and now we have better stuff coming along with higher chance of adoption. Plus, significant improvements to existing stuff here and there.
Yep. IMO, the buck stops there.
It's harder to fix culture problems with tools than we might think, in general. Perhaps future generations will look at 'C' the same way we look at open-belt farm machinery. I can't say. But the sheer volume of incumbent 'C' code bases will be around for a while.
http://www.absint.com/astree/index.htm
http://www.cs.rutgers.edu/~santosh.nagarakatte/softbound/
https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/201503...
As PCs got more capable and more and more people were willing to program them in C---I don't remember Borland being a big player in this, in fact, it was Microsoft that produced the first really solid C compiler---the same sorts of constraints that helped birth UNIX(TM) and C were in play, until it was by and large too late to change course.
They only started to have something worth buying with the 32 bit version of Visual C++ and Borland loosing their focus, until then not really.
I think the results of Apollo's decision speaks for itself. If something is an order of magnitude cheaper, it will propagate faster, whether it's objectively better or not.
Once you get to where you think in terms of mechanism and not language, it doesn't matter what you use.
http://www.pvv.org/~oma/HistoryAndSpirit_NDC_Jun2015.pdf
They are good!
Ignored until clang adopted static analysis as part of the compiler.
It's formatted like troff input. I suspect that DMR wrote the document in troff, and had it convert to HTML.
This paper was presented at the Second History of Programming Languages conference, Cambridge, Mass., April, 1993. That's the same month that CERN decided to publicly release source for the very first web server and client.
There is no conceivable way that DMR would have both found out about the web and chosen to write in HTML at that point in history.
However at that point Dennis Richie had 20 years of experience with troff. The only other reasonable choice at that point was TeX. And the output looks nothing like what I would expect from TeX. So it almost certainly was troff.