I happen to love coding in C. C is a simple language with only a few moving parts, but more importantly, C is pretty damn close to how a computer actually works. It's not as close as assembler, but it's close enough.
Yes, you have to worry about memory management and buffer overflows, but if you have valgrind you're set. Valgrind is awesome because it detects most memory errors fairly flawlessly, assuming you're not an asshole who codes retarded C tricks. Valgrind hates tricks. In a way coding C with valgrind forces you to do it right.
And honestly C isn't that hard, it's just that people who are used to shitting out whatever is in their head into a text file have a hard time with it. To code in C you have to know what you're doing and you have to know how the computer works. Sure, that's a pain in the ass, but did you ever think that maybe that's a good thing.
I firmly believe that learning C as your backup language is a great way to make you better in every other language you use. I wouldn't want to do a web application in it, but fuck yeah I'd do another web server in it.
Over the last 5-10 years though C has fallen out of favor with the young hipster coders. You know the guys I'm talking about. The ones that have those hot pictures of their slightly pimply faces all done up in their best super model "Blue Steel" looks off to the right of their eloquent prose about how awesome Ruby's latest incremental feature is the coming of Jesus. Or, the guys who just write endlessly about Cucumber, or whatever the testing framework of the week is.
These are also the guys who love Apple. Mostly because DHH loves Apple. Never mind that getting up and running with Ruby on Rails on a Mac takes a metric fuck ton of ass raping while on Linux it's next to trivial (well, at least if you aren't on Debian). Nope, real coders use Apple because the typography is sooooo awesome. "Look at the serifs on my Ruby do block!"
I have even heard one ruby coder say these words:
"Typography is the most important part of information science."
What?! Uh, huh? Information science has nothing to do with typography. Why would anyone ever think that? Information science is about books and human knowledge and how it's stored and searched for and the fucking font doesn't matter. That's like saying 1+1=2 but 1+1=3 because it's "emphasized font".
Well today, I am in love with Steve Jobs. He apparently agrees with me that these guys shouldn't be coding. He dropped this bomb I'm sure all of you have been gasping over:
"3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited)."
The key phrase is "originall written in". Basically, you can't code in say a limited Ruby that translates to C. It has to be originally in C, or C++, or Objective-C.
Fuck. Yeah.
All the "agile languages" morons who never learned C are quaking in their boots. Their dreams of coding shitty Farmville ripoffs in Ruby are dashed on the rocks of monopoly. Nope, now they have to learn C and how RAM actually works, and what a fucking pointer is, and they gotta embrace the curly-brackets, and they can't call them fucking stache or mustache characters. They're called fucking curly-brackets, and if you can't call them that then me and my damn C friends are gonna laugh at you every day you come to work.
"Ha, that's the dude that says 'do mustache loop'. What a noob."
My take on the above is that Steve is basically saying, "iP(hone/ad/od) is not a fucking web platform." Ah yeah, nothing brings programmers and their billion dollar ideas to your platform like a good ol' barrel level cornholing. It actually makes me wonder if Steve has a cat and a giant chair he sits in like Dr. Evil when he makes this shit up. "Yeesss, and then all the programmers who do not know C will quake at my proclamations of language choicesssss! Mwhahahaha!"
I'm pretty sure Steve's got a great evil laugh.