Now With GitHub + Pointers

I’ve just set up an account on GitHub – not much to see on there other than one very basic C source file, from one of the exercises in Chapter 1 of Kernighan & Ritchie – but watch this space.

Why GitHub?

Pretty normal reasons I guess:

  • The amount of (stricly non-work-related) code snippets I’ve been emailing back and forth between home and work was getting a bit silly.
  • If I ever do put anything decent on there it acts as a portfolio of sorts, and its nice to be able to discuss code by linking to fully versioned examples.
  • I use TFS at work and it seems like a good idea to see what else is out there.  I’m by no means a Microsoft hater but it’s not hard to suppose they don’t get everything right.

Why C/C++?

That’s a slightly more difficult one, or at least more a matter of personal preference.  I of course have a ton of cool languages and technologies I want to get to grips with, so with the modern trend being towards higher-level, more expressive idioms, why am I starting to learn a language where you don’t even get a boolean data type out of the box?

Well, to keep it short and sweet, I really like to understand how things work in detail.  I have to admit to being somewhat influenced by Joel Spolsky’s vintage posts on leaky abstractions and the perils of JavaSchools – macho nerd-elitism aside, a vast amount of the software we use today is in some way built on top of C/C++.  Relational databases, operating systems, frameworks and VMs, IDEs – all the things that are really fundamental to what we do as programmers tend to need at least some access to the low-level power and control that direct allocation of bytes provides.

Just using these tools day-to-day, I’m sure I can benefit from understanding their implementation a little better, and even in today’s declarative, cheap-hardware world, I suspect there are times when JIT-compiled or interpreted languages just aren’t going to cut it.

And even if there aren’t, it’s a good intellectual challenge, which is kind of what we’re all after anyway, isn’t it?