Tuesday, May 13, 2008

Getting stuck in the past

I know it's been a while since I've blogged; I'm sorry everyone. I've been busy with life, and every time I think of something I want to blog about, I'm either too sleepy or to busy to do it. But I've decided I need to make time for it. See, the problem with starting to blog again after so long going missing is that I don't know what to write about. I think this will be a scatter-shot post, covering whatever happens to come to my mind. So here we go.


I'm retaking a class during Spring term. I took this class last semester, but about halfway through the class, I realized that the design of my project was horribly putrid. (Actually, more like glaringly absent, but it all works out to be the same.) In order to finish the project for the class, I would have essentially had to tear everything down and start again from the beginning. I didn't think I'd have time to do that and keep up with all my other classes, so I just let it go. It's not my favorite thing in the world to willingly fail a class, but I think it was the right choice. This semester, I connect with the professor a lot better and I feel like I understand the material better.

I've been thinking about it, though, about the problems with my project's design last semester. It wasn't that I made bad mistakes at the beginning; I just didn't plan ahead. I wasn't aware of where the project was going, and so I made some choices that limited my options in the future. Every change I tried to make just tied me in more knots, and it ended up not working out at all. You could apply this to lots of things; I could make up any number of "life lessons" about how it's important to make wise decisions and all that, but I won't. Just make good decisions, okay, and let's get on with my post.

No, my thoughts were actually turned to a more... inflammatory subject. I've mentioned a few times that I'm a very happy user of Apple's OS X. I'm not one that will claim that OS X is infallible or that it does everything perfect; it doesn't. Windows does some things very well, as does Linux. But I think there's an important difference. In early 2001, Apple came out with the OS X line, which replaced the OS 9 line. It was based on an entirely new architecture, and was essentially an entirely new operating System. This wasn't just Windows 95 to Windows 98; this was Windows 3.1 to Windows XP. OS X initially came with an emulated environment in which you could still run most of your OS 9 software, but there was no illusion of long-term support. The design decisions made back in the early days of the classic OS were not holding back the new operating system.

Today, Windows still attempts to provide support for running Windows 95 programs. (Don't believe me? Right-click on an executable file in Windows XP, go to Properties, and find the Compatibility tab. There it is, the option to run in "Windows 95 Compatibility Mode." I think Vista has something similar, but I don't have as much experience with that system, so I'm not sure.) The ability to run Windows 95 programs means that somewhere, the "Windows 95 way" of doing things is still sitting inside the Windows code base. Microsoft might choose to create a new, better designed programmer's interface somewhere along the way, but they still have the old stuff in there. Any bugs that need to be fixed have to be made in two separate places, and it's up to the programmer to know that. The number of potential pathways through the code to get to one goal increase exponentially as the number of supported previous systems increases, so before long you've got a mess of code that nobody can fully understand.

Now don't get me wrong; Microsoft has done a marvelous job of making this all work. It's pretty impressive that you can still run most of those old games on modern systems. It's a programming feat of monumental proportions that it works as well as it does. It's a bonus in the business world; many corporations have in-house software that's not necessarily upgraded every time a new operating system comes out, so backwards compatibility is a benefit there. But all the energy that Microsoft is putting into maintaining their backwards compatibility, Apple is putting that same energy into innovating and creating a better system in the future. The standard on OS X is that your program will probably work for two revisions past the current one, (about the same functional change as from XP to Vista,) but don't expect your program to work past that point. It's just expected that you'll upgrade to a newer, more useful tool as time goes on.

Of course, some people won't like this. They like their old system, and they want to keep it the way it is. That's fine, I suppose; they don't have to buy the new operating system. But the real moral of this story is that there's a choice you have to make at some point, a choice to leave the past behind you and dive ahead forward, unfettered by past mistakes. This is where the application to real life comes in. We all have a past behind us. We all have things that we'd love to change about that past; mistakes that we made, or things we could have done better, or things that happened to us that we wish could have been different. Sometimes we make decisions that may be fine at our current stage of progress, but as we learn and develop more, we find a much better way.

When those moments come, when we realize that our future can be better only if our past is left behind, take the plunge. I'm not saying we need to forget the past. There are things we can only learn as we look backwards to see where we've been. But we cannot let those things hinder us, hold us back. Whether it's an old relationship, a bad habit, or an unfortunate incident, there comes a time when you just have to let it go. It works out so much better that way.


See, I told you I was going to ramble.

1 comment:

Anonymous said...

"I think Vista has something similar, but I don't have as much experience with that system, so I'm not sure."

Vista is barely compatible with itself :P

Although Vista tries to be reverse-compatible, it fails miserably with Neverwinter Nights, Jedi Academy has some minor issues, and of course I had to wait for ages for some of the online programs (like Quicktime, which worked fine on XP) to be compatible with my Vista.