Loading ...
Sorry, an error occurred while loading the content.

Re: [scrumdevelopment] Re: Is anyone else seeing a Lack of Object Oriented Programming Skills

Expand Messages
  • Adam Sroka
    On Mon, Nov 21, 2011 at 6:44 PM, john.slaman@rogers.com ... I don t believe functional decomposition and OO are at odds. Good OO designs have eschewed global
    Message 1 of 28 , Nov 21, 2011
    • 0 Attachment
      On Mon, Nov 21, 2011 at 6:44 PM, john.slaman@...
      <john.slaman@...> wrote:
      >
      >
      >
      > 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.
      >

      I don't believe functional decomposition and OO are at odds. Good OO
      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
      various times have been: C, Perl, Ruby, JavaScript, etc. All of these
      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 good
      >
      > > 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.
      >

      I think that a lot of folks teach structured programming and call it
      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.
    Your message has been successfully submitted and would be delivered to recipients shortly.