While perusing the TIOBE report, I noticed REXX made an appearance. This brought back memories of being a co-op student in the early ’90s. My employer, Bell Northern Research (aka BNR), was the research arm of Northern Telecom. They were eventually fated to be absorbed and re-branded at Nortel. This was a similar setup to Bell Labs & Lucent. I was in one of the many groups working on their central office switch, the DMS-100. The code base was over 10 million lines of code, which back in the day was gargantuan. Builds would occur on mainframes, as those were the only computers fast enough to compile the code in a reasonable amount of time. A full build would take around 19 hours. Woe be upon the unsuspecting soul whose checkin broke the build. You could expect a call at 3AM telling you to get your behind at the office and fix the problem. As a result, everyone was paranoid about making changes.

One of the last thing I did in my co-op term, my crowning & lasting achievement so to speak, was to remove an unused local variable from a function. Removing 2 statements, a declaration and an assignment, was all I had to do. It took the better part of a week. First, we had to run a cross-reference on the entire code base, to make sure the local variable was not used anywhere else. Once this was done, I excised the offending offals from the code, a 5-minute procedure. Someone (not the lowly co-op student) performed a delta build on the module itself to insure it compiled. Finally, after much heming & hawing, the manager gave the go ahead for the checkin, another 5 minute operation.

That night, around 3AM, while the mainframe’s hard drives were spinning, transforming the chunks of code info a Motorola 68K binary executable, the unthinkable happened: nothing.

My mighty change didn’t cause the end of the world build to fail and everyone slept through the night. We later learned that this particular change had no effect on the actual executable. The compiler was optimizing the unused variable away.

This experience thought me a few valuable lessons: I was not going to work on the DMS-100 when I graduated. I was not going to work on mainframe computers. PROTEL (the in-house programming language) was not what I wanted to program in. BNR had tons of other development programs, some of which dealt with those cool Sun workstations… no nightmares of late night build failures there!

Anyone else ever experience build dread?