“I do consider assignment statements and pointer variables to be among computer science’s most valuable treasures” – Don Knuth

My biggest regret in my programming career is not sticking to just C. I should have avoided OO / FP and all the framework bullshit that promise everything and deliver shambles. If you are a beginning programmer don’t waste time in any of that, develop knowledge about applications, databases, operating systems and games. C + Lua should be enough.

To date C is the only language with which you can have a complete stack

1. OS
2. CLI / GUI Apps
3. Parsers
4. Games (all 8bit, 16bit games)
5. Embedded controllers
6. Networking

without a single line of any other language. Assembly too is wonderful! And because assembly instructions have a fixed format, it too is easy to parse – just like Lisp.

Myth – C can only be used in small teams.
Reality – Linux Kernel, FFmpeg …

Myth – C doesn’t have OO so it is not an “industrial” language.
Reality – C doesn’t force you to use objects for everything. You can do composition style OO trivially in C and there are multiple options to choose from. Blender, Gimp are complex GUI apps written in C not to mention Tk. C offers shared libraries aka modules which allows you to decompose teams along those lines.

Myth – C is not functional.
Reality – C has co-routines, const, pointers and function pointers which gives you all the advantages without abstract nonsense.

Myth – C is not secure.
Reality – Somewhat true. C programmers refuse mandatory bounds checking, secure libraries and gc but this can be fixed.

compose new post
go to top
go to the next post or comment
go to the previous post or comment
toggle comment visibility
cancel edit post or comment
Would love your thoughts, please comment.x