Thinking of my early years of programming, I almost cannot believe that I have already been writing computer programs for so long. My first decade of software development slowly went by. I’m even well into the next decade, considering I wrote my first statements on an 8086 in 1994 (while I should have been playing football with the guys of course, the nerd I was, ahem, am). Back then, my very first project, at least the project which I consider a real substantial undertaking, was “FM Tracker”.
I need to start with a short intermezzo to introduce FM Tracker. Do you remember the demo scene? No? Then this might all sound a bit alien for you. In the case the answer is “yeah, of course, I was a l33t h4x0r too!”, you’ll remember, say, the Future Crew just to name a then famous group. If you had h4x0rs, then these demo guys really were the 3l1t3. They could do things with the 386 and 486 PC’s with VGA cards nobody couldn’t ever imagine.
For those that do not know about the demo scene, there were, for example, 4 kilobyte contests: create an executable that takes no more than four-thousand-ninety-six bytes of disk space and squeeze in as much stunning graphics and music effects as possible. At demo parties these 4K exes are run and the attendants choose a winner, which usually is the one that could do the most amazing things with no more than 32.768 bits at their disposal. Besides, there was no such thing as a powerful GPU or OpenGL that time. Those were the days the Gb’s were still the future utopia for memory, as well as harddrives. I remember my dad bought a new PC with 105 MEGA-bytes of disk space. How on earth will we get that thing full?! Obviously it took less than a year until it was chockfull. Anyways, these guys in the demo scene could bring to live such mind-blowing graphical effects, usually including background music, which was really amazing taking into account the memory and CPU limitations of the 1990’s.
I was talking about my FM Tracker project. The reason to start being nostalgic about the 1990s demo scene is that so called trackers were a very popular tool to create computer music that time, and as you can guess, FM Tracker is a tracker too. The infamous ScreamTracker is a well known example, besides of course the widely used FastTracker. A combination of music and computers, that was pretty cool of course. I fell in love and immediately became a huge FastTracker fan.
The same time, I got fascinated by programming the AdLib soundcard (bearing an OPL chip). I don’t know what it was, but I was intrigued by the magic how you could send numbers and compose music with that. All of the trackers I had were PCM based, or in other words, worked with pre-recorded samples (actually ScreamTracker 3 came with an OPL synthesizer mode as well, but I think it was not yet released the time I started with FM Tracker, and if it was, I didn’t know of it). So I decided to build FM Tracker (FM —- meaning Frequency Modulation; the main method of synthesis of the OPL family of chips).
I finished it in 1997. I learned a lot. About hardware architecture, hardcore chip/signal programming. Optimizing for speed and memory. Programming via the BIOS and MS-DOS, all that sort of low-level stuff. I went through different programming languages. Starting out with Basic, which was not powerful enough and the overhead of the generated code was way too high. Then Turbo Pascal, which generated code that was faster, but was still too slow to put into a high resolution timer interrupt. For a brief moment I tried C, but in the end I really needed Assembly for the performance critical parts, which is why I finally chose to write FM Tracker fully in 386 assembler.
In retrospect, I actually learned myself programming in that period of time. However, looking back, I can say that learning to program is something else than becoming a software engineer or software developer. There was still much to learn for me to become a real software developer, being able to work in a team on a large scale product. Besides that, I didn’t know about any (mathematical) fundamentals, so I reinvented the wheel multiple times, but that fortunately made the years at university all the more valuable.
So here I am, more than 10 years from my first finished product. Those ten years, the previous decade, went by very fast. I finished computer science at the Eindhoven University of Technology, and I worked on many more software projects, mostly commercial, currently developing software to enable the next generation chips to be manufactured.
We have come a long way in software development, and even though we now have a ginormous amount of memory and astronomically more computing power than 10 years ago, one thing certainly has not changed: developing software still requires hard work.