Black Magic Code

Tuesday, March 28, 2006

The C++ Illuminati...

There almost seems to be a secret society of C++ programmers out there (I'm not a member... even if I was I wouldn't tell you). They are rooting for the success of Java and C#(pronounced C-Suck). You would ask yourselves why?

If you ever had attempted any significant C++ development you should have developed a love-hate relationship for this programming language. This because there a number of things that you need to understand and remember when programming. Not only all obvious things like copy-constructors and virtual destructors, also things like what methods are silently created, their default behaviour and how static variables must be created to exactly determine when they are initialized. Of course you have worked with programmers that doesn't know or care about these details. They think that they can't be bothered with this, but if you are a better programmer than they are you know how important these "finer-points" are. So you end up hating the language instead of the programmers who can't program in it. But yet you love its power.

This is the reason why the C++ illuminati is hoping for success of the managed languages. Someone once said to me "The devil is in the details!". Managed environments can't give that close attention to details as the native languages can. The most mindless and booring development projects out there are fine with managed langauges. These projects are good money and the talentless developers who couldn't code their way out of a wet paper bag need a language and environment that saves them from themselves. When more talentless cubicle drones move to languages that suites them, the more real work talented C++ programmers can do instead of cleaning up the miserable messes by the talentless programmers. This is where C++ gets a real revolution... atleast that is what the C++ illuminati hopes.

Wednesday, March 22, 2006

A short introduction.

It is important to remember what software is about. The things that code does. At the lowest level it only manipulates 1 and 0. To this dual state we attach layers of abstraction. Grouping these primary pieces to numbers. These numbers are sometimes turned into characters. A series of characters are grouped together into strings and so on. My goal when trying to become a good developer is to effortlessly move between these abstraction levels efforlessly.

I'm a C++ programmer by trade. By night I use Python, Assembler, C and of course C++.