I am a writer of software in the C and C++ languages. I've been doing it professionally for about 9 1/2 years (holy fuck!). I've only had 3 jobs since college, 2 of them with the same company. My current specialty is PDF. Yeah, the "Download Adobe Reader" stuff. Adobe publishes a 1000-page or so instruction book (specification) on how to create PDF files. When my bosses want something done, I look in the spec to see if PDF has that feature, then I write the C or C++ source code to implement the feature.
We have two branches to our source code, one in C and one in C++. The C version is a legacy; I inherited it when I got this position. It works, but it's horrible to have to maintain, and it does a lot of stupid shit that hurts its performance. I lobbied hard, and they finally let me write the C++ version from scratch - provided it would be easier to maintain and extend; more portable (easier to make work on machines other than Windows); at least as fast; the results would adhere more closely adhere to the spec; and some other more technical goals.
Well, I met every fuckin' goal. Every one. I created an object model for it, mapping out all the relations between the different objects. Then I spent about 8-9 months writing it. Maintenance? A fuckin' 3-year-old could understand this stuff. Except for the hint stream; nobody can understand that shit. Portability? It took only a few weeks to have it running on every platform that we support, including our mainframe. Speed? C++ is typically slower than C for a few reasons, but the old stuff was doing so much dumb shit, the new one smokes it. In fact, on the mainframe, the big test of performance, its speed is comparable to our other output types, all of which have been tuned over the course of years. The spec? Oh, yeah. Probably not quite as closely as Acrobat itself, but yeah.
So, I fucking go into God mode when I get to work on PDF. Tell me what's wrong, and I can find the problem in 10,000 lines of code sometimes without even looking at it. Well, now I'm working on RTF. The spec is only a few hundred pages, in large measure because it's really fuckin' short on details. I am tasked simply with improving the RTF import process. So, now I'm awash in unfamiliar code, with a vague spec and a vague assignment. And I have no fucking idea what to do....
We have two branches to our source code, one in C and one in C++. The C version is a legacy; I inherited it when I got this position. It works, but it's horrible to have to maintain, and it does a lot of stupid shit that hurts its performance. I lobbied hard, and they finally let me write the C++ version from scratch - provided it would be easier to maintain and extend; more portable (easier to make work on machines other than Windows); at least as fast; the results would adhere more closely adhere to the spec; and some other more technical goals.
Well, I met every fuckin' goal. Every one. I created an object model for it, mapping out all the relations between the different objects. Then I spent about 8-9 months writing it. Maintenance? A fuckin' 3-year-old could understand this stuff. Except for the hint stream; nobody can understand that shit. Portability? It took only a few weeks to have it running on every platform that we support, including our mainframe. Speed? C++ is typically slower than C for a few reasons, but the old stuff was doing so much dumb shit, the new one smokes it. In fact, on the mainframe, the big test of performance, its speed is comparable to our other output types, all of which have been tuned over the course of years. The spec? Oh, yeah. Probably not quite as closely as Acrobat itself, but yeah.
So, I fucking go into God mode when I get to work on PDF. Tell me what's wrong, and I can find the problem in 10,000 lines of code sometimes without even looking at it. Well, now I'm working on RTF. The spec is only a few hundred pages, in large measure because it's really fuckin' short on details. I am tasked simply with improving the RTF import process. So, now I'm awash in unfamiliar code, with a vague spec and a vague assignment. And I have no fucking idea what to do....
apologees:
oh yeah, happens to me all the time.
twigtech:
The only experience i have with RTF is dealing with WordPad/Word conversion for school papers, and that's a royal bitch and a half. Is RTF a microsoft spec? It would make sense.