29 November 2013

C is fun.

Over the last few weeks, I've been thinking about other languages. C++ is C with improvements and high-level capability. Java is C++ on 'roids. The "Webdev family" (HTML, CSS, and JavaScript, and everything that generates into it) is somewhat confusing but not the end of the world to use. But when most people think of using C, they think of it as a painful, slow, tedious experience which takes too much effort to maintain and use.

I, however, would beg to differ with those statements. I've numerous GitHub repositories which use C, and most of them are to some level of success. C isn't the kind of language where you have to sit there for hours decoding the error messages so you can fix stuff; it's the kind of language where if something isn't working as expected, you did it wrong. Not to put myself or anyone in this grouping, but it's the kind of language people who are perfect at it--who just get it--use.

The biggest problem for most people is having to think about memory. Most people consider memory to be this evil thing that their higher-level language takes care of for them, and they aren't too concerned with it. When programming in C, however, it is almost always the case that one must use malloc at least somewhere in their code. And that scares most people.

The fun thing about C--I think--is that once you stop being afraid of dealing with memory, and you get an idea of how your computer interprets your code, and what exactly a given line of code will do to the processor or a chunk of memory, and you become familiar--and friendly--with memory, you reach a higher level of understanding and you begin to really enjoy C.

That's one of the reasons I love C so much; it's one of the languages that is so beautiful because of how basic it is. It's not resource-expensive in the least (besides the usually-increased volume of source you must have, but storage these days is cheap so that doesn't matter), and it's so flexible that it can do, quite literally, anything.

That said, people would still argue that it takes too much effort to write C code that works and does a lot of fancy stuff. Perhaps, with their special tools and shit, they get "so much done" and have a "much higher understanding" of what they're doing. They may be right. But for me, and for a lot of other people, C is the best; even with all of those tools out there, a proper C workflow for those people is still more efficient.

No comments:

Post a Comment