So I booted up MSVC++ V6 and started writing code. The basics came back
fairly quickly but equally quickly I was reminded of why I got into the
architecture end of the business.
Header files, template definitions, memory management... AHHHHHHHH
I know how we got here, it made sense. Best deal for the time. But why do
we stay here? There is absolutely no excuse for having header files in a
full fledged environment liks MSVC. All that crap should be handled behind
the scenes. Can you imagine, they actually have... files?!?!? Smalltalk
may have been weird but it definately got some things very right.
FILES?!?!?!?! What is this, the 1960's?
When I write code I generally use the old "thunk" approach. Get the
function definitions right, worry about the body later. Once I get the
structure I start to work my way from bottom to top. Fill in some
sections, compile, test, make sure it works. Go to the next leaf in the
structure, etc. Just build my way back up.
So I wanted to compile some classes I wrote. A simple template class to do
list handling. I was rewarded a whole flurry of "unresolved symbol"
errors, all relating to the same class. No brainer, I forgot to include a
header some place. Except I checked them all and everything seems fine.
Maybe I included the same header twice? Nope, using #pragma once.
Hard earned experience has taught me that the only efficient way out of
this mess is to delete the project file, create a new one and start adding
back the files one by one, compiling all the way.
Life is way the hell too short for this crap.
So I looked at my bookshelf and sure enough there was "The Java
Programming Language" by Seniors Arnold and Gosling. I figure it should
take me a few hours to read it. So I will go read it.
At the very least I won't have to keep around all those stupid "self
destructing" classes I am always forced to write in order to keep memory
around. What a stupid pain to have to write a destructor for my stack
class that will walk all the entries and destroy them so as to ensure that
all the memory gets freed.
What decade is this anyway?
So on Monday I will go buy VJ++ and see if Java does any better. The
performance issues worry me a lot since the code I'm writing has to deal
with an enormous number of variable sized very transiant objects. Exactly
the sort of thing that brings Java programs to their knees.
Files.... bah humbug.