The last time I did any serious computer programming (apart from playing around with macros in different Microsoft or Corel products) was when I was in high school. Back then, BASIC was spelled in all capital letters and lived on computers that ran CP/M as an operating system, and still had line numbers:
10 Input a$
20 Print "Hello, " a$
30 Goto 10
I owned a TRS-80 Color Computer 2 from Radio Shack, which had 64K of memory (only 32K of which could be accessed at any one time), with no hard drive but a dual floppy drive. It’s fun to point back at that little device and chuckle fondly, thinking, "How cute they were in their larval stage", but, really, those machines could often be deceptively powerful. I wrote a large program in BASIC on that computer which kept track of all of my appointments and contacts, had its own (very simple) scripting language, made advanced use of randomly accessing data from the floppy disk that served as the data disk, and built display screens "on the fly", like modern active webpage schemes do nowadays. Even though it was slow (and got slower as the appointment and contact databases got larger), it was, I think, pretty advanced; I had figured out how to write programs in BASIC that were "modular" such that the subroutines were generalized enough to be re-used over and over and over by different programs (even though every single bit of a program had to be loaded into memory instead of accessed in parts from a disk); I was treating my data as objects, more or less, and even borrowing some tips I’d picked up from working with Paradox with my uncle one summer and making my database more or less relational instead of completely flat.
In short, I was awfully impressed with myself at the time, and I still am, when I look back on that program and others that I wrote like it.
In college, though, for some reason, I decided not to pursue computer programming at all. I wanted to be a doctor, and thought that I wouldn’t need to deal with computers at all. Then when it became clear that I would never be a doctor (nothing will help cure such delusions better than doing volunteer work with sick people and realizing that you can’t stand the whining — that, and flunking a class in basic organic chemistry), I still didn’t go back to computers. I stuck with my philosophy major and never really gave a thought to programming or computers. I enjoyed working with them when I did, but I never really thought about computer work as a career.
But programming has also changed considerably since my high school days. Objects? Methods? Threads? Superclasses? Instances? Packages? Interfaces? Huh? What? I’m not worried about being unable to pick up these techniques and terminologies, and I’m pretty confident that I’ll be able to do so pretty quickly. In fact, object-oriented programming is much like the predicate logic and modal logic that I used to play with in college. I’m just going to have to get used to the idea that when I want to do something in a program, I have to create an object to do it with.
Cue segue into a cheesy metaphor between computer programming and human emotion.
Object-orientation can be both a good thing and a bad thing. In computer programming, object-orientation is good, because it really does make things easier to do, and it makes playing with information a lot easier (in fact, I have recently discovered that there’s a new breed of database design, "object-oriented database management", or OODBM, which tries to treat records of data like objects instead of relating everything to everything else). In life, object-orientation can be either a good thing or a bad thing. It depends on what object you choose to orient on.
My fiancé’s object-orientation and obsession is towards cats. This is fine with me; I like cats and am even willing to sleep in the same bed with one or two of them as long as they understand that they’re not to approach my face (I’m allergic to cats, you see).
I, personally, have an object-orientation and obsession towards my career. Actually, I’m worried that it may not be healthy in some ways. I’ve sometimes found myself so obsessed with my future hoped-for career that I get overly upset about my current job, and even find my self-esteem wrapped up in it. This is definitely not good, as I come home from a day of work to my fiancé and whine at her about how my job sucks and how bad my prospects for future career development are. Fortunately, Jennifer is wise enough to know that I am not defined by my career or by how much money I make; and she’s even clever enough to be able to convince me of that too, at times.
Then again, there is at least one person in the world whose object-orientation seems to be focused on making me appear bad in my fiancé’s eyes. I am not a wealthy man, and I have debts, and I freely admit that up front. However, I certainly have no intention of having my future wife pay for my debts, I will never borrow money from her (nor did I ever borrow money from this other person that was not offered to me and that I did not pay back within a day), and if the unthinkable happens and Jennifer and I ever get divorced, I fully intend to leave our house with nothing but what I brought in to it. People who know me, fortunately, know that I am responsible and mature enough to own up to my own debts and that I am determined to pay them off on my own without anyone’s help, and my fiancé and I have discussed these issues on more than one occasion. Unfortunately, this other person’s object-orientation and obsession seems to be focused not only on making me appear bad to Jennifer, but to outright slandering me in public (without even doing me the courtesy of leaving out my name, as I have left out theirs). It hurts me, but it also hurts Jennifer. It’s an instance in life where object-orientation is a bad thing.
Okay, I admit that this metaphor is stretching things a bit. Fortunately for me, I have never claimed to be a literary genius, which lifts from me the burden of making sense to you, my three or four devoted readers.
But I’ll draw forth another analogy here, which harkens back to my May 22, 2000 Letter to Jennifer; when I was 18 or 19 years old, I figured that I know everything there was to know about relationships and the human heart, just as I thought I knew everything there was to know about procedure-oriented programming. Nowadays, I know that, just as programming is a hell of a lot more complicated than I had ever thought it was, the mysteries of the human heart and its vagaries are a lot more complicated than I had even suspected back then. And now here I am, making a career change into a new field that I thought I understood, and making a significant life change — from single to married — in my own heart, which I also thought I understood. I don’t understand either programming or relationships as well as I thought I had, but I am enjoying the process of ex
ploration, discovery, and learning. All over again