Keith's profileKeith's "do over"BlogListsNetworkMore Tools Help

Blog


    March 20

    "object-oriented" WHAT?@#%???

    This week’s discussion topic ("try to understand what 'object-oriented' really means and summarize it in your own words") in my Object-Oriented Programming Concepts college course is super-relevant for me. For a long time, I’ve had trouble mentally making the jump from the procedural programming that I learned years ago, to the object-oriented programming that I’m trying to comprehend, practically implement, and ultimately master. I’ve read about and dabbled in so-called “object-oriented programming” environments, never really understanding and internalizing the theory and benefits boasted by its proponents and latent underneath. I kinda, sorta got some of the concepts but largely never got beyond copying somebody else’s code to quickly cobble together a makeshift solution for the latest, hot project. And then this morning, I read an article that makes me wonder if the authors might not have hit on the problem.

     

    In an October 2003 article entitled “On Pseudo Object-Oriented Programming Considered Harmful” (see Communications of the ACM; Oct2003, Vol. 46 Issue 10, p115-117), Cong-cong Xing and Boumediene Belkhouche assert that educators—and I would add authors in the tech press—need to “address ways to differentiate between object-oriented programming and object-oriented programming languages;”. Xing and Belkhouche say that by the implication that a language like, say, Java necessarily equals a good and right representation of object-oriented programming and design philosophy, educators and writers may confuse learners if said language isn’t truly representative of the essentials. And they say that those essentials are “1) An object is a finite set of components. Each component of an object can be either a piece of data or an operation (over the data components by default). Objects, not classes, should be used as the data-modeling mechanism when computations are considered.” and “2) Computations under OOP are carried out by invoking components of objects (again not classes).” Whether they are right or not, I have yet to decide, but I agree with their essential point on the origin of the confusion.

     

    I searched other, less high-brow, sources to respond to the topic like Britannica Online (which had, I thought, an utterly laughable, presumptuous brief paragraph on the subject that did more to confuse than enlighten an average reader), Wikipedia (which had much more depth and usefulness but which granted “Attempts to find a consensus definition or theory behind objects have not proven very successful, and often diverge widely.”), and other, largely unhelpful library database articles. But the bottom line for me this morning is that by divorcing specific “production” languages like Java, C#, or VB.NET from my early learning for the moment while I ponder object-oriented design and programming at its most fundamental level, I am more likely to really get it (my ultimate goal); to internalize, and therefore learn. In this regard, I think the Alice computer programming teaching language will help...and already has. Charles W. Herbert, author of An Introduction to Programming Using Alice, has so far helped me understand object-oriented as relates to information systems design and computer programming more than anyone else. He spoke on page 2 in a language I understand: airplanes. In system design (OOD) and programming (OOP), “object-oriented” simply means that things and information about things (objects and descriptions of those objects, combined, an "object") can be in either the real or virtual worlds and exist in relation to other things (objects). The things themselves, like a Boeing 777, are made up of smaller things, some of which share information to make the whole plane fly, keep the passengers comfortable, and the crew and others informed so that everybody does what they're supposed to do and nobody dies. Further, I understand that these things use the information resident in them, or brought into them by other objects (things) to make calculations and change either themselves or other parts of the system to keep the whole thing going. I’ve not captured all of the essentials of OOD and OOP, but I’m beginning to get a glimpse…for the first time!

    Programming is Hard Work

    Last weekend, I had the painful displeasure of spending about two and a half days in the local hospital for reasons too ugly to talk about here. While there, however, and near the end of the stay, while working on my college course on programming, my doctor came into the room, saw what I was doing and recommended an appropriately staged photograph. If you would like to see a photograph depicting just how hard programming can be, be advised that it is rather--shall we say--graphic in nature.
     
    In the end, you just gotta program through the pain, man!
    January 15

    Modern Computing: The Good, The Bad, and The Ugly

    In the words of my eighty-two year-old mother, "We live in a wonderful world, don't we?" Her near-breathless exclamation was made as she looked over my shoulder at what I could do on my iPod touch (I think we were looking at latest stats of the major stock markets from earlier in the morning). I have to admit that I still have a spark of that marvel when I consider what we have in the palms of our hands in the form of various computing technology. And when it comes down to it, I would have to say that the aspect of modern computing that impacts my life most is the way it facilitates instant communication and access to learning. No longer do we have to wait for the library doors to be unlocked. 24/7/365 we can get access to just about any conceivable form of news, weather, opinion, entertainment, commerce, self-expression, or education. And being an information/word junkie I have to say that my life has been, on the one hand, very positively impacted by this reality; this good.

    Are my laptop and smarter-than-just-playing-music-and-videos iPod essential to my existence? No. If we had to go back to just books, radio and TV (and library doors locked when we wish they weren't), I would be fine...but I wouldn't like it. I would probably whine (okay, I would whine); for awhile. But if the restriction were less drastic and I had to choose only one technology device, it would have to be the laptop since the iPod touch is only a real-time, connected communicator if you have an open WiFi signal available (unlike the iPhone which I covet, and which is almost-always online due to its cellular subscription and accompanying, hefty price). What about the cell phone, you ask; could I get along without it? It would be inconvenient to not have my dumb (phone calls-only) cell phone, but then again, maybe it would force me to interact with people again: "Yes, God bless you for stopping in this traffic...my car just broke down. Can I use your cell to call my wife?" (Oops. Does that count as going without my cell phone?)

    But isn't that the "other hand" of the technologies we all so love and depend on? Our human interactions and touches have suffered. Or have they? In many ways I would have to be honest and say that they have for me; especially within my own family. You've probably seen it too. We're all home again for Christmas and what are we doing? Mama's on the Mac in the office checking for Facebook updates, Big Sister is on her MacBook, wirelessly updating a professional blogging site, Little Sister is texting somebody on her cell phone, Big Brother is playing Xbox, Little Brother has nobody to talk to so he's outside playing with sticks and talking to the pets, and I'm in my office madly typing away at the ThinkPad on something. Oh sure, later we turned everything off (well not really, we didn't dare do that, but we physically left the devices for a little while) and talked, laughed, ate and were a connected-face-to-face family. But...   Well, that's the bad.

    Sadly, while my various interactions with technology are only mildly unhealthy, a good friend of mine's life is wrecked because of them. It probably started with a look at a relatively soft-core pornographic magazine many years ago. But it grew into harder and harder-core images, now delivered on a computer screen, until the images were of little children, doing unspeakable things. Now he sits in a federal prison doing nine years on child pornography charges. They say that the penalty for the state charges on child molestation will probably be mostly satisfied by the time served on the federal charges. So did technology wreck his life? No. But the 24/7/365 access that is so good for most of us was, for him, a facilitator for evil and not good. There it is, the ugly.
    January 11

    First Day of School

    If you still remember how you felt as a five or six-year-old looking toward your first day of kindergarten or first grade (yes, I'm old enough to predate 3K, pre-K or 5K -- no, wait, I think that one's a race), then you may remember whether or not you were one of the kids about to pee in your pants, or one about to throw up. I know that there might have been some kid out there about to wet his undies in absolute joyful excitement at the prospect of starting school, but I wasn't one of them. My birthday fell in such a way that I was one of the youngest kids in first grade, and I felt more nauseous than joyful on my first day. But that was then, and this is a new millennium and a new stage of life.

     

    After elementary school, I was pretty much excited each school year to get back at it mainly, granted, for social reasons. And I must admit, that motivation carried into the first couple of years of college too. But then I married young and caught a vision for...for lack of a better description, earning a living for my new bride and myself. Suddenly, the things I was studying got very interesting. Oh, and also, suddenly I went from being a pretty good student to being a 4.0 student.

     

    And some of you will relate to yet a third stage of excitement over learning. In this stage, the student has discovered what God has wired them to do somewhere deep inside their being, gifts and aptitudes, and goes after the learning and practicing of this thing with all their might. Such is how it happened to me when I came to understand that I think digitally and love applying modern computer technology to modern communication challenges. In short, I'm a bit of a geek who likes to create new things using information technology and who gets a particular kick out of using IT to communicate with over-the-top excellence.

     

    So why am I waxing philosophical on the first day of school and of learning in general? Well, it's because tomorrow is my first day of school and I'm about to pee in my pants. Okay, a little explanation is in order. Tomorrow, technically January 12, 2009 at midnight, my first two online courses in a formal study of .NET Programming switch on at Peirce College's student learning site. I am augmenting my self-study of .NET technologies and the pursuit of learning and applying them with a certificate on the subject, and chose Peirce after some time of research, weeping, and gnashing of teeth. And though I may never again visit Philadelphia, PA (this time to get an education) to actually tour the bricks-and-mortar campus, talk to any of my professors, or pick up my certificate at the end, I'll be a Tiger (no, that's not it), a Bulldog (nah, not that either), a Hoosier (oops, wrong conference and, oh yeah, Peirce doesn't have a mascot because they don't have any sports teams)...I'll be one of those "working adult learners" gladly learning more about what God wired me to do.

     

    Bring on the number 2 pencils, laptop, and broadband connection! It's back-to-school time!

     

    January 23

    A "do over"?

    So what was it that Billy Crystal said to Daniel Stern in "City Slickers" after Stern's character, Phil, had his mid-life crisis? It was something like, "Phil, remember when we used to play ball in the vacant lot and the ball would go in the corner where we couldn't reach it? We'd yell, 'Do over!' Well, Philly, you get to start over...you got a do over!"
     
    I'll spare the details, but I am happily at a place of "do over" with regard to finding myself once again developing software. But since things have changed a lot since the 80s, I've got some serious re-tooling to do. When approaching the .NET vs LAMP stack decision crossroad, a CIO that I respect and trust finally tipped me over to the .NET side. He said, "Go for it, fully engage, and get their full tool suite." Now, having gotten my MSDN subscription, and while waiting for my shipment of DVDs, etc. from Microsoft, I've been scouring MSDN and elsewhere for the initial startpoint for the journey on.
     
    I look forward to meeting (virtually or otherwise) and exchanging ideas with the community at large.
     
    KP