Can a low-level programmer learn OOP?

John J. Lee jjl at pobox.com
Sat Jul 14 14:54:26 CEST 2007


[Chris Carlen]
>  From what I've read of OOP, I don't get it.  I have also found some
> articles profoundly critical of OOP.  I tend to relate to these
> articles.

If you want to know the truth, and opt to neither trust a friend or
colleague, nor spend the time to try it yourself, here's a third way:

Compile Qt (a toolkit like wx or Tk) and watch the list of source file
names scroll past.  Beautiful!  Perhaps there's some better way of
doing GUIs, but watching that list of source files, one realises that
that's an academic question: practically, OOP fits GUIs -- and much of
the other code in Qt -- so well, and so much effort has been put into
these GUI toolkit libraries, that one would be a fool not to use them
right now.  A somewhat separate issue: You'd also be a fool not to
apply OOP to the GUI code *you* write *using* one of those OOP GUI
toolkits.  Though you won't learn that all at once or without
conscious effort, that's not an obstacle with Python -- you can start
small.

Of course there's some level of experience / project size / project
longevity / number of people involved below which dashing it off using
what you know right now will be quicker, but the break-even point is
not far off in your case, I think.


[chris]
> However, those articles were no more objective than the descriptions
> of OOP I've read in making a case.  Ie., what objective
> data/studies/research indicates that a particular problem can be
> solved more quickly by the programmer, or that the solution is more
> efficient in execution time/memory usage when implemented via OOP
> vs. procedural programming?

[bruno]
> None. Definitively. wrt/ developper time and memory, it's mostly a
> matter of fit-your-brains. If it does, you'll find it easier, else
[...]

How do we have confidence that that's true without doing experiments?
AFAIK, only a few such experiments have been done (not counting
research that does not meet basic standards of competence or is not
peer-reviewed).

I think some programming techniques are simply better than others for
certain tasks, even when including the variation in people's abilities
(but excluding the cost of people learning those techniques, which can
of course be significant).  Of course, measurement is tricky because
of differences between programmers, but it's not impossible.


John



More information about the Python-list mailing list