3 ms·
I have been programming since about 1969, but my life as a non-academic software developer started only slightly pre-internet, 1988. In those days, I was using
by geophile 14y ago
I have been programming since about 1969, but my life as a non-academic software developer started only slightly pre-internet, 1988. In those days, I was using a very early version of C++. The system I was working on was an object-oriented database system, and we were highly dependent on memory mapping and network APIs. (I mean OS APIs, not these new-fangled web APIs.) Some impressions:
- We built nearly everything from scratch. I was working on collection classes and an OO query language, and started with very little beyond libc. We did buy a cheapo B-tree implementation (free floppy with book!) that we stuck with far too long.
- There were many varieties of UNIX, and we had to support all of them. We spent a huge amount of time porting our application, and building up our portability "layer". As time went on, we also had to deal with object layout differences across compilers. Porting to all these platforms and compilers consumed unimaginably huge amounts of development and testing resources. We also ported to OS/2 (remember that?), and even Windows 3.1. Different industries and customers had different OSes, and we had no choice but to support all of them. It took a very long time before we decommissioned our first OS.
- The OSes and compilers were buggy. At one point, the brokenness of mmap (on SunOS 3.something, I think), was a real problem for us.
- CPUs were buggy. One of our engineers found a CPU bug in a 68040 because one of our features was failing in an odd way, and he kept diving lower and lower until he reached the CPU.
- I'm pretty sure we wrote Makefiles by hand.
- Source control was a nightmare. I don't really remember what we were using early on, but it was a tolerable pain. After a year-long project we switched to an early version of Clearcase which I found mind-bending and non-intuitive. It did amazing things, but it was torture to use. Oh, and it sprayed random bits all over our source repository, (due to a bad interaction with an early RAID driver, if I remember correctly), and we had Clearcase engineers in house for maybe a month trying to rescue what they could.
- Everything cost money: OSes, libraries, development tools, source control. My company was a startup, and several of the startups we were friendly with or potential customers were doing development tools.
- Anyone know what Reed Hastings, founder of CEO of Netflix, used to do? Anyone? Bueller? He wrote the Purify/Quantify tools. These were the absolute best memory corruption and profiling tools of the day. (I'm pretty sure that he actually wrote Purify himself.) Expensive, wonderful tools.
- Research involved going to a library or talking to people. No google.
Good times, good times.