OOP criticisms
As this blog grows, I intend to take the novice web developer from their procedural roots, and lead them by example to setup their own clustered, scalable web server platform for their own applications.
A lot of programming books only give simple examples, and avoid object oriented designs. Whilst the adage 'Never explain beyond what is absolutely necessary to the understanding of a topic' holds, the lack of context sometimes leave you wondering how to include examples in your own site.
Now, clustered servers might not be of use to you. You might not even use MySQL, PHP or Apache, in the end. You may not like the idea of Smarty templates. Last but not least, you may well struggle to get to grips with OOP.
Well it's not for everybody. So here is some criticism of OOP to bring balance to this thread, and reduce any perceived bias. Feel free to read it and decide for yourself if OOP is not for you: http://www.geocities.com/tablizer/oopbad.htm
Now, I have seen a post on http://www.devx.com/opinion/Article/26776 denouncing OOP, claiming that procedural code-reuse can be acheived by copy-n-paste. Thats code duplication, not code reuse! but I agree with the author in some respects, anything that is over-administered, over-complicated and over-engineered can make for unwanted bloat, and sometimes quick-n-dirty hacks will suffice.
Even with relatively little experience of OOP myself, I see the benefits of using it, and begining to see my projects in a more abstract level. You dont need to abandon your procedural roots - but to allow your skills to develop, embed procedures in classes, and they become universally available (reusable) units that save you from reinventing the wheel continually.
Heck, getting my head around it whilst using a relatively easy language (php) has resulted in being able to follow more complicated c++ code - perhaps not completely, but certainly I can get more of a feel. You can then go into even greater depth and understand how the two languages differ, and grasp concepts like structs, references, pointers and variable type / casting. Well, thats all for now, I feel like some programming... =)
A lot of programming books only give simple examples, and avoid object oriented designs. Whilst the adage 'Never explain beyond what is absolutely necessary to the understanding of a topic' holds, the lack of context sometimes leave you wondering how to include examples in your own site.
Now, clustered servers might not be of use to you. You might not even use MySQL, PHP or Apache, in the end. You may not like the idea of Smarty templates. Last but not least, you may well struggle to get to grips with OOP.
Well it's not for everybody. So here is some criticism of OOP to bring balance to this thread, and reduce any perceived bias. Feel free to read it and decide for yourself if OOP is not for you: http://www.geocities.com/tablizer/oopbad.htm
Now, I have seen a post on http://www.devx.com/opinion/Article/26776 denouncing OOP, claiming that procedural code-reuse can be acheived by copy-n-paste. Thats code duplication, not code reuse! but I agree with the author in some respects, anything that is over-administered, over-complicated and over-engineered can make for unwanted bloat, and sometimes quick-n-dirty hacks will suffice.
Even with relatively little experience of OOP myself, I see the benefits of using it, and begining to see my projects in a more abstract level. You dont need to abandon your procedural roots - but to allow your skills to develop, embed procedures in classes, and they become universally available (reusable) units that save you from reinventing the wheel continually.
Heck, getting my head around it whilst using a relatively easy language (php) has resulted in being able to follow more complicated c++ code - perhaps not completely, but certainly I can get more of a feel. You can then go into even greater depth and understand how the two languages differ, and grasp concepts like structs, references, pointers and variable type / casting. Well, thats all for now, I feel like some programming... =)
Labels: object oriented programming, oop, procedural, programming

