3 ms·
All great options as well, with the caveat that it’s possible to “ignore” the parts that make C useful as a teaching tool. Most modern languages have ways to a
by MeetingsBrowser 26d ago
All great options as well, with the caveat that it’s possible to “ignore” the parts that make C useful as a teaching tool.
Most modern languages have ways to automate parts of memory management, and rightfully so. But you should at least be somewhat aware of what is going on under the hood.
- pjmlp 26d agoSome of the suggested languages are as old as C, with better ergonomics if you mean ignorig is doing string concatenation instead of manually handling char buffers with pointer arithmetic, or proper reference parameters instead of being forced to pass the address of output variables manually, which is nonetheless possible in the suggested languages. What low level thing do you think C can do, but Modula-2, Ada or Object Pascal are unable to provide the comparable feature? Also taking into account possible C extensions not covered by ISO.
- MeetingsBrowser 26d agoC lacks just enough “modern language features”, by design, that students are forced to be vaguely aware of memory layout, memory management, ref vs copy, shallow copy vs deep copy, maybe even calling convention, etc. It’s also popular enough that there is an abundance of high quality learning resources for beginners. No other language threads that needle as well as C.
- pjmlp 26d agoProvided examples from 1978 and 1983 languages do that just as well, unless you mean by 1978, C design was too primitive, or even when compared with languages like PL/I and NEWP from 1966 and 1961 respectively, which then I fully agree with.