1.7 million lines of C++.
That's the size of the project I have loaded into Visual Studio 2005 right now.
Throughout vast quantities of it that haven't been touched in the last five years, STL iterators are treated as equivalent to pointers, and STL vectors are treated as equivalent to arrays.
The pointers dance their cryptic shuffle across what are supposed to be generic template containers, while iterators are randomly dereferenced and picked up again via the address operator on anything that happens to be the same type.
All of this has been masked up until now, because the product has spent its last 7 years being built with the STLport libraries. It so happens that these libraries are implemented in a way which quietly works with the above treatment.
Naturally, nobody who wrote any of the relevant code still works here.
And now, The Powers That Be have decided that they must Move With The Times, and therefore The Product must be built with the Visual Studio STL, rather than relying on a dusty old open-source third-party library.
The task of doing whatever is necessary to achieve this, Dear Reader, has fallen upon me.
All hell is breaking loose as Microsoft's standards-compliant compiler and libraries start gagging and dying on the horrible way that this vast wad of vomit is abusing them.
I pick my way through the sea of incomprehensible 30-line error messages, one at a time, my psyche slowly dessicating with each successive file that I find myself checking out of Visual SourceSafe.
Ladies and gentlemen, contract software engineering on MIS products will steal your soul. What good is a fine-sounding hourly rate when you shuffle home every night with deadness in your eyes and no spring in your step?
I really just wanted to be a lumberjack.
Bookmarks