3 ms·
> I would recommend every college student learn C, and learn it from the perspective of an "abstract machine" language, how your C code will interact with the O
by tomsmeding 9y ago
> I would recommend every college student learn C, and learn it from the perspective of an "abstract machine" language, how your C code will interact with the OS and underlying hardware, and what assembly a compiler may generate.
Do note that these are two very different things. The C abstract machine as defined by the standard is sometimes so different from the actual machines you're going to run your code on, that you get these fine undefined behaviour things that everybody's on about.
Please learn both, indeed, and stress the differences; then highlight the advantages of C. C is a dangerous, but powerful tool, and the necessity of warning students about things should not inhibit learning C.
- fao_ 9y ago> C is a dangerous, but powerful tool, and the necessity of warning students about things should not inhibit learning C. C is sharp, yes. It's also a universal interface. Almost every language has bindings for C, and C has bindings for almost everything.
- AlexandrB 9y ago> Almost every language has bindings for C, and C has bindings for almost everything. In my mind this is the #1 reason to learn C. And it's unlikely that C++ will replace C in this role anytime soon as C++ has many more ways for an ABI to go wrong.
- bobbyi_settv 9y agoIt often works to implement well to implement your code in C++ and have a C interface (using extern "C") wrapped around it to be consumed be interfaced with by other languages.