Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

C is also a terrible learning language, much harder to reach the "get things done" stage than most other languages.

You can spend weeks segfaulting in C before you get things actually working, and for a beginner — especially self-teaching/unsupervised — it's extremely easy to rely on compiler-specific behaviour in the face of UBs.

When learning, if the only choice were C or assembly I'd actually recommend assembly.



> You can spend weeks segfaulting in C before you get things actually working

This seems like an overstatement. The first programming class I ever took was "Introduction to Programming with C" where the textbook was K&R and we were writing and compiling programs from day one.

If you can't figure out how to manage memory (one dimensional data structure) in C jumping into a language that immediately allows you to abstractly manipulate complex multi-dimensional data structures will certainly not make your life easier.


Depends on the type of thinker someone is. Everyone thinks best at a particular level. While a certain data structure might be complex, it’s use might be simple.

If I show someone a list of lists in C# the semantics of that will be very easy for them to grasp. The same data structure in C might defeat them altogether.


> The same data structure in C might defeat them altogether

I agree with this, but my point is that to get started in C all you need to work with is strings/arrays.

> While a certain data structure might be complex, it’s use might be simple

I would argue that in most cases the use only appears to be simple and in reality the correct use is just as complex as the data structure.


> I agree with this, but my point is that to get started in C all you need to work with is strings/arrays.

Which are both absolute shit, that's not exactly a ringing endorsement.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: