4 ms·
You should learn C to learn what every language is loosely based on and what unrestricted memory access looks like. It's the programming equivalent of learning
by sam0x17 8y ago
You should learn C to learn what every language is loosely based on and what unrestricted memory access looks like. It's the programming equivalent of learning Latin. It isn't required, but you will be better at pretty much everything you do involving modern English, Spanish, French, etc., as you will understand where things came from. It's even more useful though, as in the programming language world pretty much everything evolved out of C, whereas in linguistics you also have the Asian languages, Greek, etc.,
- pjmlp 8y ago> It's even more useful though, as in the programming language world pretty much everything evolved out of C Not really, there was a world of computing outside AT&T walls. Lots of papers and computing manuals are available online for those that care about the actual history of computing.
- sam0x17 8y agoThis is also true, so maybe it is a better analogy than I gave myself credit for ;)
- sam0x17 8y agoThis is a genuine question -- are there non-C-family systems languages from that period (as in languages that allow low level memory manipulation and assembly embedding)? I have never heard of or seen any.
- pjmlp 8y agoLots of them. Burroughs designed ESPOL in 1961, improved into NEWP, still being sold by Unisys as ClearPath MCP. IBM did all their RISC research with PL/8, before creating Aix for their RISC systems thus adopting C instead. IBM i and z mainframes made use of PL/S, C and C++ only came later into the picture as the languages got industry adoption. Xerox PARC initially used BCPL, but quickly followed up with Mesa, then Mesa/Cedar. Wirth was inspired by Mesa to create Modula-2 and then by Mesa/Cedar to create Oberon. Mesa/Cedar designers went to Olivetti and created Modula-2+ and Modula-3. Apple wrote Lisa and initial versions of MacOS in a mix of Pascal and Assembly. VAX used BLISS to develop VMS. PL/I was used by multiple companies, not only by MIT to write Multics. This is just a very brief overview. As for Assembly embedding, it is a language extension not part of ISO C, and was quite common in many languages during the 70 and 80's even some BASIC interpreters had it, like on Acorn computers.