I'm another one of those intellectual masochists who love C. The biggest perk for me is how much control C gives you over both the internal workings of your program and the shape of your code itself. It has strong typing, so you can specify how big and fast you want your variables to be. It has pointers and references, so you can pass actual variables to functions rather than just the values of variables. It has structures, so you can organize data into big, meaningful chunks and create data types with sizes that exactly suit your needs. It has bitwise operators. It has functions with return values. In a desktop environment, C gives you even more control, with register variables, dynamic arrays, and in-line assember code (if you
really want to beat yourself up

). C may be a little more unforgiving than some other languages, but I find that most of my stupid mistakes come from program structure, not syntax -- whether I'm coding in C, Java, Javascript, Perl, or PBASIC, I make the exact same amount.