can i learn OOD without any procedural 1st

This is a discussion on can i learn OOD without any procedural 1st within the Theory and Concepts forums in category; hai, this is my very 1st post here. i don't know anything expect some Lisp, one of my friends taught me Lisp. i need to learn OOA-D 1st. so the question now is: Can i learn OOA-D without learning Proecdural/Modular design 1st? will that not handicap me? ( i am interested in C++, OOD & Templates and i do not want to learn C 1st, which is procedural. one of my friends, advised me to learn OOD 1st & then C++ but he has no idea on whether to learn procedural or modular 1st as a solid-base of programming or ...

Go Back   Application Development Forum > Theory and Concepts

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 02-20-2007, 01:45 AM
pandit
Guest
 
Default can i learn OOD without any procedural 1st

hai,

this is my very 1st post here. i don't know anything expect some Lisp,
one of my friends taught me Lisp.

i need to learn OOA-D 1st. so the question now is:

Can i learn OOA-D without learning Proecdural/Modular design 1st?

will that not handicap me?


( i am interested in C++, OOD & Templates and i do not want to learn C
1st, which is procedural. one of my friends, advised me to learn OOD
1st & then C++ but he has no idea on whether to learn procedural or
modular 1st as a solid-base of programming or OOD)

thanks

-- pandit

Reply With Quote
  #2  
Old 02-20-2007, 10:27 AM
arnuld
Guest
 
Default Re: can i learn OOD without any procedural 1st

On Feb 20, 11:44 am, "pandit" <jala...{}> wrote:
> hai,
>
> this is my very 1st post here. i don't know anything expect some Lisp,
> one of my friends taught me Lisp.
>
> i need to learn OOA-D 1st. so the question now is:
>
> Can i learn OOA-D without learning Proecdural/Modular design 1st?
>
> will that not handicap me?
>
> ( i am interested in C++, OOD & Templates and i do not want to learn C
> 1st, which is procedural. one of my friends, advised me to learn OOD
> 1st & then C++ but he has no idea on whether to learn procedural or
> modular 1st as a solid-base of programming or OOD)
>
> thanks



you can read my post titled "struggling with design-paradigms".

BTW, i have also discussed the same with someone on my email. if you
want, i can send you the relevant email-communication.



Reply With Quote
  #3  
Old 02-20-2007, 10:49 AM
pandit
Guest
 
Default Re: can i learn OOD without any procedural 1st

> you can read my post titled "struggling with design-paradigms".


yes, i read that one but it is ambiguous.

> BTW, i have also discussed the same with someone on my email. if you
> want, i can send you the relevant email-communication.


sure, if you can.

Reply With Quote
  #4  
Old 02-20-2007, 12:56 PM
H. S. Lahman
Guest
 
Default Re: can i learn OOD without any procedural 1st

Responding to Pandit...

> this is my very 1st post here. i don't know anything expect some Lisp,
> one of my friends taught me Lisp.
>
> i need to learn OOA-D 1st. so the question now is:
>
> Can i learn OOA-D without learning Proecdural/Modular design 1st?
>
> will that not handicap me?


It will not handicap you. In fact, it is a distinct advantage. The OO
paradigm is fundamentally different than the traditional procedural
approaches. One cannot mix & match the two. A major problem that
procedural developers have when they convert to the OO paradigm is that
they essentially need to forget everything they learned about procedural
development.

> ( i am interested in C++, OOD & Templates and i do not want to learn C
> 1st, which is procedural. one of my friends, advised me to learn OOD
> 1st & then C++ but he has no idea on whether to learn procedural or
> modular 1st as a solid-base of programming or OOD)


Your friend is correct. All of the OOPLs are 3GLs so they make
substantial compromises with the hardware computational models for
things like procedural block structuring, stack-based scope, and
procedural message passing. (That is especially true for C++.) As a
result it is very tempting to overlay procedural thinking on the OOPLs
because syntactically they are procedural languages with added abstract
constructs on top.

In addition, the procedural approaches are much more intuitive for
algorithmic processing on computers because they grew up in academia
solving scientific problems. The OO paradigm works from the opposite end
of the spectrum by abstracting customer problem spaces rather than
hardware computational models. So it is not very intuitive if one has
already learned procedural development.

So get a good OOA/D book and learn the fundamentals of the OO paradigm
first. (The Books category of my blog has some guidelines for selecting
a good book.)


*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl{}pathfindermda.com
Pathfinder Solutions
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
"Model-Based Translation: The Next Step in Agile Development". Email
info{}pathfindermda.com for your copy.
Pathfinder is hiring:
http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH



Reply With Quote
  #5  
Old 02-21-2007, 06:38 AM
arnuld
Guest
 
Default Re: can i learn OOD without any procedural 1st

> In addition, the procedural approaches are much more intuitive for
> algorithmic processing on computers because they grew up in academia
> solving scientific problems. The OO paradigm works from the opposite end
> of the spectrum by abstracting customer problem spaces rather than
> hardware computational models. So it is not very intuitive if one has
> already learned procedural development.


Lahman, doesn't that mean: "a programmer will learn more about
programming from algorithms and procedural approach rather than from
OOD"

?


> So get a good OOA/D book and learn the fundamentals of the OO paradigm
> first. (The Books category of my blog has some guidelines for selecting
> a good book.)


personally, i found OOSC by Bertrand Meyer better. you agree here with
me, Lahman

;-)

thanks

Reply With Quote
  #6  
Old 02-21-2007, 11:04 AM
arnuld
Guest
 
Default Is Procedural Paradigm a basis of OO Paradigm?

just changed the subject, to make it more clear

Reply With Quote
  #7  
Old 02-21-2007, 11:38 AM
H. S. Lahman
Guest
 
Default Re: can i learn OOD without any procedural 1st

Responding to Arnuld...

>>In addition, the procedural approaches are much more intuitive for
>>algorithmic processing on computers because they grew up in academia
>>solving scientific problems. The OO paradigm works from the opposite end
>>of the spectrum by abstracting customer problem spaces rather than
>>hardware computational models. So it is not very intuitive if one has
>>already learned procedural development.

>
>
> Lahman, doesn't that mean: "a programmer will learn more about
> programming from algorithms and procedural approach rather than from
> OOD"
>
> ?


Not quite. What it means is that OO development requires a different
mental approach to problem solving that procedural development. My point
here is that there is a substantial learning curve in adopting OO
techniques, more than for applying procedural techniques in a computing
environment. That's because the OO paradigm is focused on problem space
abstraction rather than hardware computational models. Most customer
problem spaces are not highly algorithmic.

For example, IT is characterized by applying lots of quite trivial
individual algorithms to mountains of data. In a General Ledger
application a heavy duty algorithm is a long division in an allocation.
The real problems lie in managing the data and organizing a gazillion
small algorithms that need to be cobbled together in complex ways.
(That's why it was called Data Processing for two decades before
Information Technology became fashionable.)

Corollary: if you need to solve an atmospheric diffusion problem, the OO
paradigm is probably not the way to do that. B-) One doesn't use OO
techniques to implement a Quicksort algorithm even if one can identify
objects like Pivot and Partition. That's because the goal of the OO
paradigm is maintainability in the face of volatile requirements over
time. The Quicksort algorithm isn't going to change over time so one
gets no benefit for using OO techniques while procedural techniques are
quite intuitive for the problem.

[OTOH, OO techniques are good for gluing together different algorithms
and dealing with the peripheral stuff like organizing data, UIs, and
persistence. So even complex algorithmic problems can benefit from using
OO techniques at the next level up from the pure mathematical
algorithms. IOW, use the right tool for the problem.]


*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl{}pathfindermda.com
Pathfinder Solutions
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
"Model-Based Translation: The Next Step in Agile Development". Email
info{}pathfindermda.com for your copy.
Pathfinder is hiring:
http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH



Reply With Quote
  #8  
Old 02-21-2007, 11:45 AM
H. S. Lahman
Guest
 
Default Re: Is Procedural Paradigm a basis of OO Paradigm?

Responding to Arnuld...

> just changed the subject, to make it more clear


I have to strongly disagree. The paradigms are almost diametrically
opposed. Procedural techniques are based on functional decomposition
with its hierarchical dependencies. One can argue that the whole point
of the OO paradigm is to eliminate hierarchical dependency structures.
All that good OO stuff -- encapsulation, separation of message and
method, decoupling, implementation hiding, flexible logical
indivisibility, problem space abstraction of intrinsic properties,
capturing business rules in static structure, etc., etc. -- plays
together expressly to eliminate hierarchical dependencies.


*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl{}pathfindermda.com
Pathfinder Solutions
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
"Model-Based Translation: The Next Step in Agile Development". Email
info{}pathfindermda.com for your copy.
Pathfinder is hiring:
http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH



Reply With Quote
  #9  
Old 02-21-2007, 12:32 PM
Dmitry A. Kazakov
Guest
 
Default Re: Is Procedural Paradigm a basis of OO Paradigm?

In some sense yes it definitely is. Methods are procedures. Their
decomposition is procedural. However some types of decomposition are
automated (upon inheritance or delegation). Further, for meta programming,
OOPLs provide new types of procedures to deal with classes.

There is no way to get rid of this sort of decomposition when the number of
states is any large. What any procedure does is in fact an abstraction of a
set of state transitions. You describe a bunch of transitions like 1->2,
2->3, 3->4, etc by a function inc:N->N. The difference is like between
finger counting and arithmetic. Now what OO does (on this basis) is
identifying N, the set of natural numbers for which arithmetic works.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
Reply With Quote
  #10  
Old 02-21-2007, 02:27 PM
topmind
Guest
 
Default Re: can i learn OOD without any procedural 1st

On Feb 21, 8:38 am, "H. S. Lahman" <h.lah...{}verizon.net> wrote:
> Responding to Arnuld...
>
> >>In addition, the procedural approaches are much more intuitive for
> >>algorithmic processing on computers because they grew up in academia
> >>solving scientific problems. The OO paradigm works from the opposite end
> >>of the spectrum by abstracting customer problem spaces rather than
> >>hardware computational models. So it is not very intuitive if one has
> >>already learned procedural development.

>
> > Lahman, doesn't that mean: "a programmer will learn more about
> > programming from algorithms and procedural approach rather than from
> > OOD"

>
> > ?

>
> Not quite. What it means is that OO development requires a different
> mental approach to problem solving that procedural development. My point
> here is that there is a substantial learning curve in adopting OO
> techniques, more than for applying procedural techniques in a computing
> environment. That's because the OO paradigm is focused on problem space
> abstraction rather than hardware computational models.


I have to intervene here. This is highly unproven, at least for the
business domain. Subroutines and SQL queries are hardly "hardware
compuational models".

> Most customer
> problem spaces are not highly algorithmic.
>
> For example, IT is characterized by applying lots of quite trivial
> individual algorithms to mountains of data. In a General Ledger
> application a heavy duty algorithm is a long division in an allocation.
> The real problems lie in managing the data and organizing a gazillion
> small algorithms that need to be cobbled together in complex ways.
> (That's why it was called Data Processing for two decades before
> Information Technology became fashionable.)
>
> Corollary: if you need to solve an atmospheric diffusion problem, the OO
> paradigm is probably not the way to do that. B-) One doesn't use OO
> techniques to implement a Quicksort algorithm even if one can identify
> objects like Pivot and Partition. That's because the goal of the OO
> paradigm is maintainability in the face of volatile requirements over
> time.


They used to sell it primarily for "reuse". But they change the
alleged benefits/goal every decade as people realize the claims are
unproven or subjective. The OO claim is now shifting from "reducing
maintenance" to "reducing maintenance for large teams". I'd bet money
that next decade it will be different as the large team claim proves
elusive to reality. (OO makes you *need* large teams because it so
verbose in practice now.)

> The Quicksort algorithm isn't going to change over time so one
> gets no benefit for using OO techniques while procedural techniques are
> quite intuitive for the problem.
>
> [OTOH, OO techniques are good for gluing together different algorithms
> and dealing with the peripheral stuff like organizing data, UIs, and
> persistence. So even complex algorithmic problems can benefit from using
> OO techniques at the next level up from the pure mathematical
> algorithms. IOW, use the right tool for the problem.]
>
> *************
> There is nothing wrong with me that could
> not be cured by a capful of Drano.
>
> H. S. Lahman


-T-
oop.ismad.com

Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 08:03 AM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.