[nycphp-talk] Frameworks - Which best fits my development style?
bz-gmort at beezifies.com
bz-gmort at beezifies.com
Fri Aug 24 16:10:53 EDT 2007
Urb LeJeune wrote:
> I used to teach Computer Science at the college and graduate
> level. When OOP first
> started the programmers with a lot of experience had real difficulty
> seeing the advantage and
> adapting to the new methodology. However, students who were just
> starting to program had
> no problem adjusting.
> I think it's simply human nature to keep wanting to do things
> that have worked well in
> the past.
I dunno, I think that in a lot of cases there was this tendency for
people to descibe every aspect of OOP as a new way of doing things.
"We have classes" - yeah, I have those, their called function libraries.
"You can create subclasses" - yeah, I can do that to, it's called making
a copy of my library and changing it.(yes yes, it's not the same. OTOH,
I've seen subclasses get so mangled beyond recognition that the
relationship to the original class is meaningless).
"We have references to objects" - I have pointers.
Don't get me wrong, OOP has it's own strength. It takes all the good
coding practices that people should have been doing anyway, and
formalizes and enforces them. And than it creates a whole new way of
writing bad code.
But, here is the catch, every now and then it doesn't work. You can't
do something in an object oriented fashion, and figuring out how to
circumvent it can be a pain.
So, if your a programmer that is already disciplined to using the good
practices, and you can easily write code adhering to those practices but
have the flexibility of breaking them when it is economically the best
decision - you will really really really recent being forced not to.
After the second or third time I had "refereneces" explained in this
incredibly complex jargon, which boiled down to "it's a pointer" - and
having steam come out of the ears of the explainer that I dared compare
his OOP baby to regular old programming, I started to see the point of
programmers that didn't like OOP.
A lot of terminology was changed just for the sake of calling it
something "new". I don't know the reasoning involved, my guess would be
it was done to force programmers to think in a new way and not confuse
it with old techniques and intermix. And that's fine, as long as you
have the decency to admit that the 2 terms are pretty similiar.
The programming examples for object oriented programming were just
tedious in the extreme. Pet subclassed to Dog subclassed to German
Shepherd. The problem was that each subclassing was such a trivial
change,. that it seemed like a waste of time(oh, and don't get me
started on programmers that would declare that Object Oriented
programming would solve everything and so they would rewrite their
applications in Java or whatever the latest craze was. The end result
was that instead of having a big chunk of code that was written by a
team, we now had a section of code that could only be maintained by one
person, and another section that only another person could maintain. It
only makes business sense to rewrite code when your going to train your
whole team in it, not when one guy thinks it looks good on his resume).
More information about the talk