Linked by John Collins on Wed 21st Apr 2004 06:42 UTC
General Development The purpose of this article is to give a novice programmer the basic idea of what OOP is, as implemented using PHP. Readers should have a basic knowledge of programming ie what variables are, variable types, basic methods of writing comments, and how to enter code into a text editor.
Permalink for comment
To read all comments associated with this story, please click here.
Re: build for a purpose
by rycamor on Wed 21st Apr 2004 21:26 UTC

One interesting area in all of this might be the concepts of Aspect-Oriented programming (AOP). It seems to me the point of AOP is to resolve precisely those method lock-in issues of traditional OOP. It takes into account the idea that some concerns are "crosscutting" to others, and thus should be employable across classes instead of encapsulated in them. Anyone with experience at AOP care to comment?

It's usually at about this point in a discussion where I bring up my favorite logical model: the relational model. By that I mean the "true" relational model, not the standard hack called SQL.

Now I understand the relational model is not a programming model, but a data management model. However, most of the problems of programming ARE data management problems. To me, the interesting point about the relational model is precisely that it handles problems such crosscutting concerns simply and elegantly, allowing for declarative constraints over any and all parts of the system, allowing for user-defined operators, operator overloading, etc... Also, the relational model theoretically can allow for datatypes of arbitrary complexity, even inheriting attributes from other datatypes. It seems to me almost that by the time we have come full-circle with some magical combination of OOP, functional/declarative, AOP, etc... we might finally have what the relational model has had all along (only no one has bothered to implement it). And, yes... I will now bring up the website some programmers love to hate: www.thethirdmanifesto.com ;-).