Monday, October 24, 2011

To OO or not to OO, that is the question...

I grew up with procedural programming. What does that mean? To me it means I have spent a MAJORITY of my business career delivering value to companies by developing programs that have subroutines and possibly functions and sub procedures. I like to think I have added tremendous value but at the same time I also realize that some of my code has been superseded by newer programs and alternate methods.

But everyone tells me that OO (Object Oriented programming) is where I should be! The “industry” is/has moved to the OO model of development thanks to such powerful languages like Java and C++. Even PHP has an OO model to let me feel like I am playing along. So what should I do? Well, here is my tale on the OO paradigm and I hope this makes some sense to all of you!

As a procedural programmer in the 90’s I heard the “good news” of Java from IBM. I struggled with Java at first and then had some VERY marginal success. I found it cumbersome to try and learn, not because Java was necessarily hard, but because I was trying to absorb too much at one time. Many challenges plagued this old RPG dog like a new language, syntax, structure, environment, etc. I’m not the only one who struggles, even Carnegie Melon dropped OO from their freshman curricula because students were coming up with not nearly enough experience in developing algorithms.

Enter in PHP and the opportunity to learn something new. PHP becomes the ideal language for education and more since it can start you at your level. Think of the PHP landscape as a major expressway with different lanes for more or less experienced drivers. Folks who come to PHP with no programming experience can start with very simple inline code. For those of us who hail from the procedural world we can pick up with functions. And for those who are flying in and out of traffic with a Java or C++ background there is a fully support Object Oriented model to work with.

I have been recommending PHP to many educational institutions and have it on good rumor that the curricula I have been teaching at Moraine Valley Community College will become permanent courses called MIS126 and MIS226. These courses start at procedural PHP and then work up to and through the Object Oriented realm. This is great news as we can now add more PHP developers to the world and demonstrate that PHP is not just a hobbyist language by delivering classes in true academia!

For those who cannot wait, the educational path at Zend offers PHP 1 Foundations for IBM i Programmers and PHP Foundations 2: Higher Structures. The first class takes an RPG programmer from zero to sixty with a full immersion in the functional world of PHP while the second class starts off at functions and whips you up into the object oriented realm.

Even more educational opportunities exist at places like SystemiNetwork where we are about to begin a whole new online sequence for PHP training.

No excuses, get out there and play!