6 ms·
The nice thing about C is that it's a great cross-platform assembly language. I wouldn't call its syntax good or bad.
by jschwartzi 9y ago
The nice thing about C is that it's a great cross-platform assembly language. I wouldn't call its syntax good or bad.
- emmelaich 9y agoExactly. If C hadn't been invented then someone would have invented it later under a different name. Because it's obvious people need a minimalistic portable assembler.
- pjmlp 9y agoBefore C was invented there were already other companies writing OSes in high level languages, but yeah thanks to its victory now it gets all the credits. History is re-written by winners as usual.
- emmelaich 9y agoI wasn't thinking in terms of winners. But what were those other OSs and languages? Sounds interesting!
- pjmlp 9y agoYou can start here, https://en.wikipedia.org/wiki/System_programming_language https://en.wikipedia.org/wiki/System_programming_language https://en.wikipedia.org/wiki/Category:Systems_programming_languages https://en.wikipedia.org/wiki/Category:Systems_programming_l... Some examples, out of my head. - Burroughs, now being sold as Unisys ClearCase, used ESPOL, later replaced by NEWP, which already used the concept of UNSAFE code blocks; - IBM used PL/8 for their RISC research, before switching to C, when they decide to go commercial selling RISC hardware for UNIX workstations - VAX/VMS used Bliss - Xerox PARC started their research in BCPL, eventually moved to Mesa (later upgraded to Mesa/Cedar), these languages are the inspiration for Wirth's Modula-2 and Oberon languages - OS/400, nowadays known as IBM i, was developed in PL/S. New code started to be replaced by C++. It was probably the first OS to use a kernel level JIT with a portable bytecode for its executables. BitSavers and Archive web sites are full of scanned papers and manuals from these and other systems.
- wtetzner 9y ago> The nice thing about C is that it's a great cross-platform assembly language. I wouldn't call its syntax good or bad. Is it though? It's definitely available on a huge number of platforms, but are the implementations compatible? And even if they are, there is so much undefined behavior that taking advantage of the cross-platform nature is not nearly as easy as it should be.