* Eric Wilhelm <[EMAIL PROTECTED]> [2008-06-19 10:15]: > But even with C::A::Classy, I've had troubles with perception. > I just got a project (which I originally architected) set in > front of me for the second time after the client's in-house guy > decided that he didn't understand C::A::Classy and opted to > tear it out and replace it with a beta in-house thing that > doesn't really even try to have most of the features of an > object system - thereby loosing the read-only distinctions, > private mutators, immutable properties on some attributes, etc > - and switching all of the calling conventions to require > sprinkling extra curlies. The net difference in the code comes > from a lot of little details, but I could point to completely > redundant classes which exist solely because the lack of object > system led to their creation. I think that might be overkill.
This is the same reason people write their own crappy templating systems. “I just need to do this one little thing and that whole template engine looks so intimidating, I’ll just write a few lines of code to do this myself.” Of course they end up expending extra effort to deal with the absence of various conveniences of a full-featured system, and the five-line solution inevitably grows until it has 1/3rd the features of a full-featured system except that the in-house solution is an organically grown mudball rather than a coherently designed whole. It’s OK, mind, to write your own templating system. Or meta object library. Or web framework. Or whatever. Just be sure you want to. Especially if your goal is to put it into production, you need be aware of the scope of the problem ahead of time; if you resolve to do a thorough job and understand what you are committing to, go ahead. OTOH if you want to experiment and you don’t have any plans to inflict your creation on production code then that’s great too: learning by doing provides the deepest understanding. But “$system/$library/$framework intimidates me” is not a valid reason to do a zero-effort hack. Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/>