Wednesday, August 29, 2007

Legacy System Programming: Bear Skins and Stone Knives

When I was growing up I learned BASIC. It was the first language I ever learned! I was writing on an 8088, a fantastic little computer that was older than I was. The first program I remember writing was a BASIC program that played Homeward Bound and Mellow Yellow out of the PC Speaker.

Since then I went onto college. I learned all about programming. I learned Java, C++, LISP, and a ton of others. I also taught myself C# and .Net. I also studied a lot about Object Oriented Programming. I learned all about the software life cycle. I was taught software development techniques, such as the Waterfall Model. I even taught myself a little bit about Agile Programming techniques.

Then I got a job. I now write code for a mainframe server that is running programs written in PL/1. Ever hear of PL/1? Yeah most people haven't. The system has an embedded scripting language, similar to BASIC. As such, I often times must deal with code that is more than a little archaic.

Some of this code I'm dealing with is older than me. It's built to system constraints that no longer exist. The code isn't commented, because at the time it was written space was too precious for comments. It's been patched and modified and patched again, for probably longer than I've been alive.

As such, it is my job to take this archaic software, and make it do things that the current era of computer users expect software to do. I teach that old dog new tricks.

My tools? A bear skin and a stone knife. That's what it feels like I have to work with. I'm expected to build things that can compete in today's industry with tools that are the stone tools of the computer age.

I always said I liked a challenge.

To blog or not to blog

I have been contemplating doing a blog for a long time now. Somewhere in the range of a few years. But, why haven't I?

Well, a big reason I haven't is because I have too much to say. Do I talk about life? Do I talk about video games? Do I talk about school? Do I talk about work? Just so many topics! How can I choose just one? Sure, I could have a blog that talks about EVERYTHING, but wouldn't that just be a cluttered mess?

Well, I decided to go ahead with the cluttered mess anyways. Perhaps with time the blog will mature, and take on particular topics. Or perhaps I'll spin it off into a few different blogs, each with their own topic.

But until then, here it is. For the moment I have no planned format. No typical length. Nothing. This is purely an experiment for my ability to do this. Do I care if anyone reads this? Nah. I'm just writing this because sometimes I just have things I want to say.