Re: [scrumdevelopment] Re: Is anyone else seeing a Lack of Object Oriented Programming Skills
- On Mon, Nov 21, 2011 at 6:44 PM, john.slaman@...
>I don't believe functional decomposition and OO are at odds. Good OO
> Given our focus on building Internet (HTML/AJAX), n-tier, and RESTFULL applications...the architecture we're choosing drives our thinking to a functional decomposition of the problem; and thus there is less emphasis on the use and development of OO skills.
designs have eschewed global or shared state for a long, long time. It
just happens that functional languages make it more painful to do
certain silly things (And less painful to do others.) I know I'm not
the only one who thinks this way.
I have always been a multi-paradigm guy. My languages of choice at
provide more than one way to do the same thing. They can be made to
behave as OO, functional, procedural, or a variety of other things
depending on what makes sense at the time (They can even be refactored
from one to the other.)
> The emergence of RESTFUL architectures and practices has been followed by an re-emergence of functional programming.True.
> When the browser dies and we start relaying on more client-side processing and manipulation of our domain objects via rich user interfaces there will be an increase emphasis on object oriented programming and the associated technologies.Perhaps.
> As an aside, the use of today's popular programming languages (Java, C#) is also part of the problem. Anything with the word "static" isn't 100% OO and dynamic and thus a hindrance to learning and exercising pure OO programming.I'm not sure what you mean since "static" can mean a variety of things
depending on the context. For example I don't think the notion of
class vs. instance methods matters much in distinguishing OO from
functional. Shared/global state is a different matter.
Shared and/or global state are a problem in massively distributed apps
which more and more web apps need to be (Although in the 90s when Java
emerged this was less true.) I think the real problem is that the
libraries and tools typically used in languages like Java and C# lend
themselves to big monolithic designs, but this is becoming less and
less true as the needs of programmers evolve (e.g. check out the SE
version of Restlet or the Play Framework.)
> As for Malcolm's comment: ...it's been my experience that a goodI think that a lot of folks teach structured programming and call it
> > number of programmers are doing structured coding in an OO language > and thinking that they are doing OO programming.
> This has been a problem for 15+ years...as most developers moved from C to C# or Java without using a more powerful OO language; or are now taught C#/Java without having the chance to work with a more powerful OO language.
OO, or they teach some marriage of the two. Java and C# were both
conceived for the express purpose of allowing C/C++ programmers to
transition easily, and C++ was itself a multi-paradigm (OO and
procedural) language. I know a lot of Ruby, Python, and Smalltalk
programmers who don't appear to have these same issues.