“A damn stupid thing to do”–the origins of C
arstechnica.com
arstechnica.com
Without all that, C would be, well, Pascal. Which was quite popular for its time, but wasn't used to implement Unix, and didn't become the preferred post-ASM way to write software for microcomputers.
UNIX was written in Assembly, C only came later, as the article clearly states.
8 bits were dominated by Assembly and Basic, in 16 bits we kept using Assembly and a mix of languages, where C was one option among many others.
Why do people do this? Do they not want people to read their stuff?
That kind of thing is fine for a large heading in an Apple ad, but is actively user-hostile for long-form text. Note that Apple itself uses proper text contrast for its long-form documents.
http://thoughtmesh.net/publish/printable.php?id=367
I just put this sort of site through reader mode but it shouldn't be a requirement.
The Pascal dialects that did gain some popularity, such as Borland's Turbo Pascal, generally (I'm tempted to say "always") had non-standard ways to do "unsafe" things. Turbo Pascal, in particular, let you put raw asm right in the middle of your code.
"Safe" languages have been invented many times, but programmers always seem to gravitate to powerful, if "dangerous", languages like C and (now) JavaScript.
There's probably a lesson for language designers here.
Cowboy programming tends to attract certain kinds of developers, but not all.
When I write C, I write because I am forced to do so due to network effects, and qualitiy is certaintly not something that is part of C's features.
And yes, cowboy programming fits the hacker culture that sprung off UNIX, the PHP and JavaScript of the 70's.
So apply the same quality considerations to C, that you would measure PHP and JavaScript.
Hey, apparently there has been tons of quality software written in PHP and JavaScript as well.
"Quality software" is a nebulous term.
Make it "valuable software", or "software that people will actually pay you money to write".
Apple (market cap: about $2 trillion) is Objective-C (slowly transitioning to Swift). Facebook (market cap: about $800 billion) was all PHP for a long time.
The "network effects" you mention do not exist with server-based software. You can run any language on the server you want, as long as it spits out well-formed HTML to the client.
In fact, these languages are popular because they are terse and powerful. And yes, like all powerful tools, they can kill or maim you in a hurry if you don't use care.
When I was learning the code back then the problem with safe languages was you couldn't get outside the sandbox. And for anything practical you needed to. There either weren't API's for things you wanted. Or the API's that existed were insufficient. I remember in the early 80's someone showing me some code for high end medical product. It was written in Pascal and C. With shim functions to dick with the stack so you could call C functions from Pascal. Couple of years later they rewrote everything in C++.
Notable I think C# and Rust both have no seat belt modes.
Excellence is absolutely not obligatory to get a miracle, but failings do often help prevent one. The most interesting cases are not the miracles, which are each sui generis, but the near misses like Pascal, Ada, and Lisp.
Is anything akin to this happening today? It seems to me we are currently resigned to the idea that only corporations can successfully play that role today. Am I missing something?