Learning OOP...

Martijn Faassen m.faassen at vet.uu.nl
Sat Jun 9 12:49:53 EDT 2001


Rod Weston <rod_weston at yahoo.com> wrote:
> The reasons I feel a need to learn OOP languages are as follows:
>  1. I feel that OOP offers the best conceptual fit for my programming
> projects which are primarily business oriented.

Okay, while a certain guy nickednamed 'topmind' over on comp.object would
disagree, I like OO myself. It depends partially on how your mind works,
though.

>  2. Career choices - any programmer in today's market needs to be OOP
> conversant and productive, preferably with a language that will be
> recognized and used 'a lot', thereby generating profitable
> opportunities.

It's useful to be familiar with OO for this reason alone.

>  3. I want to reuse code as much as possible.

While OO techniques can help here, don't expect anywhere close to a silver
bullet. Creating reusable code is *hard*.

>  4. I want to reduce errors and take advantage of advanced debugging
> tools.

OO by itself doesn't help you there, I'd say.

>  5. I want strong and flexible data typing - I know it sounds like an
> oxymoron.  I want the typing to be especially powerful (restrictive)
> but I want to be able to define the constraints of the types myself.

This isn't the case for Python. Python is flexible and powerful but doesn't
do constraints very well. :) We like it that way. A language like Java or
Ada or (perhaps especially) Eiffel is better suited for that.

>  6. I want something relatively easy to use and to learn.

That's Python, compared to most other languages.

>  7. I want reduced development times and enhanced maintenance tools.

I'm not sure if OO helps here. Depends mostly on the framework you use.
   
>  8. I want portability and scalability.

No OO involved here.
 
>  9. I want a lot of open source code available.

Lots of it in Python. 

> 10. I want source code that is easily read.

Python helps here. OO by itself can hurt and help. Depends on how you
apply it.

> 11. I want good quality but free or inexpensive tools - especially a
> validated compiler to properly optimize my code for the task at hand
> and catch as many errors as possible at compile time.

Python doesn't do any of this, except that it's completely free and excellent
quality. I've worked with C++ which does attempt to do the catching of errors
at compile time and optimization, and you see which newsgroup I'm posting
in. :) Ada or Java or C++ would help for those things.
(or say, Ocaml)

> Not all the objectives relate to OOP, but most do.

Just remember: OO is far from a silver bullet! Especially the whole 'reuse'
advantage has been overdone in the beginning years.

> From what I've
> seen so far, Ada best meets my criteria but I have not done enough
> research yet to be willing to gamble my future on it.

Ada, or Java, or Ocaml or a lot of other languages out there. How'd you
arrive at Ada? Ada's OO support was not as strong, I thought, though
perhaps in recent versions of the language this changed. It was initially
designed before OO was all the rage, though.

Regards,

Martijn
-- 
History of the 20th Century: WW1, WW2, WW3?
No, WWW -- Could we be going in the right direction?



More information about the Python-list mailing list