Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. It's an OOP world... is it? ...still?

It's an OOP world... is it? ...still?

Scheduled Pinned Locked Moved The Lounge
functionalhelpquestioncareer
66 Posts 38 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lost User

    hoernchenmeister wrote:

    So far I was happy, but times are changing, don't they?

    And Leslie Nielson is dead, also. Seriously, things have been changing all the time and nothing ever has disappeared just because it has come into fashion to jump onto the next new thing. For example C, without any direct support for object orientation, is still one of the most used languages.

    And from the clouds a mighty voice spoke:
    "Smile and be happy, for it could come worse!"

    And I smiled and was happy
    And it came worse.

    H Offline
    H Offline
    Henry Minute
    wrote on last edited by
    #11

    CDP1802 wrote:

    And Leslie Nielson is dead, also.

    Yes, but he wasn't really functional when he was alive. However, he is now well and truly encapsulated (In Oak, from photos I've seen). He interfaced four times, although he only implemented valid methods with the second of these, I think this points to his being from the OOP school of acting.

    Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.” I wouldn't let CG touch my Abacus! When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is.

    1 Reply Last reply
    0
    • H hoernchenmeister

      Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

      G Offline
      G Offline
      Gabor Szabo szabgab
      wrote on last edited by
      #12

      IMHO OOP was always a bit to oversold. It can provide you good solutions in many cases but not everything works well with just OO. The use of singleton seems like a contra indication for the need of OO. What I think will happen is that the bothe Java and .NET will embrace functional programming and "design patterns" will emerge that use functional programming together with an OO hirarchy. The dynamic languages (e.g Python and Perl) already have this mix.

      R 1 Reply Last reply
      0
      • H hoernchenmeister

        Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

        _ Offline
        _ Offline
        _beauw_
        wrote on last edited by
        #13

        I really think OOP is becoming obsolete in many ways. There probably will not be some grand, obvious transition away from it, though. To some extent "OOP" has always meant whatever people have wanted it to mean, so people who really like that term will continue using it regardless. The crux of my obsolescence argument is that OOP encourages us to identify little bits of state, which is exactly what the developer should avoid in many concurrent applications. The way I managed concurrency in my article Scalable Processor Arrays for Cybernetic Control[^] is an example of how FP works better in a concurrent application (even a very low-level one). My approach in that article is fairly pure FP. (Take a look at the "Functional Programming" and "Concurrency" sections in particular.) If I had started out with the notion of identifying little bundles of state, then I would have had to manage concurrent access to these (or artificially limit access to them). I'm not sure I would ever have finished this work under such a design. I might have had to introduce locks / critical sections, which is something that would negatively impact other aspects of my design. More likely, I would simply have found OOP to be an unwelcome architectural burden. This was not the case for FP; as shown in the article, FP is really key to the ways in which I made my code work. OOP did work well for the desktop applications of, oh, 1995-2005. That is, OOP is very well-suited to GUI applications with limited parallelism, in my estimation at least.

        E 1 Reply Last reply
        0
        • N Nemanja Trifunovic

          Abhinav S wrote:

          Functional programming made some sort of a comeback recently

          Not sure what you mean by "comeback". Functional programming was never popular outside of academia. This is the first time it is making inroads into mainstream programming.

          utf8-cpp

          A Offline
          A Offline
          Abhinav S
          wrote on last edited by
          #14

          I read somewhere that LISP was somewhat popular in its hay-day especially in AI programming.

          Too much of heaven can bring you underground Heaven can always turn around Too much of heaven, our life is all hell bound Heaven, the kill that makes no sound

          N 1 Reply Last reply
          0
          • A Abhinav S

            I read somewhere that LISP was somewhat popular in its hay-day especially in AI programming.

            Too much of heaven can bring you underground Heaven can always turn around Too much of heaven, our life is all hell bound Heaven, the kill that makes no sound

            N Offline
            N Offline
            Nemanja Trifunovic
            wrote on last edited by
            #15

            Somewhat, but most classic Lisp dialects are not really "functional". Scheme is, but I've never heard it being used outside of academia. Clojure is probably the most used functional Lisp today.

            utf8-cpp

            M 1 Reply Last reply
            0
            • H hoernchenmeister

              Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #16

              I don't think most people understand what OO really is, and how to do it properly. I certainly didn't until I went on a Java course a couple of years ago and the tutor explained it. Made me realise I had been missing the point a number of times in my understanding up until then. Was far more use than any of the actual Java stuff was. Of course that just could be me being simple and coming from a none OO background, but I think that for many programmers OO is good intentions without proper understanding or application.

              Every man can tell how many goats or sheep he possesses, but not how many friends.

              R 1 Reply Last reply
              0
              • L Lost User

                hoernchenmeister wrote:

                What are the alternatives

                Unemployment.

                hoernchenmeister wrote:

                What kind of alternative do you like most

                Gin, red wine and pies.

                hoernchenmeister wrote:

                Into what direction should I turn my head

                75 degrees anti-clockwise.

                hoernchenmeister wrote:

                What's your opinion?

                Not worth a damn.

                Unrequited desire is character building. OriginalGriff I'm sitting here giving you a standing ovation - Len Goodman

                N Offline
                N Offline
                Nagy Vilmos
                wrote on last edited by
                #17

                Richard MacCutchan wrote:

                [blah] Gin [blah]

                Sound advice sir.


                Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett

                1 Reply Last reply
                0
                • OriginalGriffO OriginalGriff

                  Years and years ago, Nicklaus Worth wrote a book: Algorithms + Data Structures = Programs[^] where he set out pretty much the principles that OOP is based on: that you should not separate the data from the processes that act on it. Then he went and designed PASCAL, which had no useful concept of data structures and was functional programming all the way through. So, he was talking b*llocks then! :laugh: Many, many tasks (particularly in a message-based environment) are Object Oriented, and should be treated as such. But when they aren't, functional programming works like a charm! I wouldn't code for Windows in a functional language - it's way too much work. I wouldn't code for embedded software in C# - it's way to much work. I think they will both proceed, side by side, until someone comes up with a new, radical shift in the way we design software. [edit]would. wouldn't. No real difference... - OriginalGriff[/edit]

                  Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #18

                  OriginalGriff wrote:

                  I would code for embedded software in C# - it's way to much work.

                  You must be a masochist ;P

                  Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet.

                  OriginalGriffO 1 Reply Last reply
                  0
                  • H hoernchenmeister

                    Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

                    G Offline
                    G Offline
                    GuyThiebaut
                    wrote on last edited by
                    #19

                    I started with BASIC in 1981 then learnt Pascal in 1988. Since then I have used various different programming languages and I have to say the OOP paradigm is the most enjoyable and easy to use programming paradigm I have come across. Once I understood that OOP is basically about code and development organisation then it became much easier to use and more attractive. This all said I do not use C# in my day job and am aware that OOP can be abused as much as any other paradigm.

                    “That which can be asserted without evidence, can be dismissed without evidence.”

                    ― Christopher Hitchens

                    1 Reply Last reply
                    0
                    • H hoernchenmeister

                      Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #20

                      The thing about OOP is it is natural for us humans to think in such a matter. Until the systems program themselves OOP is here to stay. Sure they will be other paradigms, but they will just meld together. For example, a system may use SOA. But if a programmer builds up a service with out using OOP principles it is likely to fail or become bloated. Or take a look at MVC/MVP which lead to MVVM. Strict MVVM may not be followed everywhere, but no programmer nor programming manager will question the reasoning of it (Seperation of Concerns), just as no one would question the reasoning of using OOP.

                      Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet.

                      C 1 Reply Last reply
                      0
                      • H hoernchenmeister

                        Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

                        S Offline
                        S Offline
                        Slingshot II
                        wrote on last edited by
                        #21

                        When I was a lad and started programming OOP didn't exist. However, I was taught that is better to create a function and use that, rather than to keep on re-inventing the wheel. I was also taught it was best practise to develop a function in a language best suited for that function. So a function that did calculation would be written in Fortran, one that did file manipulation COBOL was best, accessing OS routines use either assembler or C, etc. When I started programming C++ I got very confused as it used a whole new set of jargon and those in the know seemed to enjoyed showing off their knowledge by ensuing no one else could understand what on earth they were talking about. Once I started ignoring the jargon and sat and analysed C++ I soon worked that all that was happening was that it was trying to get people to work in a structured way. Which if you had been trained properly you were doing anyway.

                        G 1 Reply Last reply
                        0
                        • H hoernchenmeister

                          Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

                          R Offline
                          R Offline
                          R Giskard Reventlov
                          wrote on last edited by
                          #22

                          Use whatever appears appropriate to the problem at hand. If the solution is OO then fine. Doesn't matter: your job, as a developer, is to provide a working solution to a given problem. Keep it simple, regardless of the methodology, and remember that the customer couldn't care less what tools you use, just that you fixed it.

                          "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                          H 1 Reply Last reply
                          0
                          • S Slingshot II

                            When I was a lad and started programming OOP didn't exist. However, I was taught that is better to create a function and use that, rather than to keep on re-inventing the wheel. I was also taught it was best practise to develop a function in a language best suited for that function. So a function that did calculation would be written in Fortran, one that did file manipulation COBOL was best, accessing OS routines use either assembler or C, etc. When I started programming C++ I got very confused as it used a whole new set of jargon and those in the know seemed to enjoyed showing off their knowledge by ensuing no one else could understand what on earth they were talking about. Once I started ignoring the jargon and sat and analysed C++ I soon worked that all that was happening was that it was trying to get people to work in a structured way. Which if you had been trained properly you were doing anyway.

                            G Offline
                            G Offline
                            GuyThiebaut
                            wrote on last edited by
                            #23

                            Slingshot II wrote:

                            When I started programming C++ I got very confused as it used a whole new set of jargon and those in the know seemed to enjoyed showing off their knowledge by ensuing no one else could understand what on earth they were talking about.

                            Here here! The best advise I was given was to learn how to program in OOP, in terms of what objects were and how they interacted, and not try and understand how the OS/framework handled things - this got me going then understanding how the OS/framework handles things was the cherry on the icing...

                            “That which can be asserted without evidence, can be dismissed without evidence.”

                            ― Christopher Hitchens

                            R 1 Reply Last reply
                            0
                            • N Nemanja Trifunovic

                              hoernchenmeister wrote:

                              Into what direction should I turn my head to maybe fall in love with another paradigm?

                              My advice is to not fall in love with any paradigm - just use whatever is best for the problem you are trying to solve. I was trying to make everything pure OOP when I was young and silly, but then I learned it didn't make much sense. Nobody even agrees what "pure OOP" is. If you need a class hierarchy, go and make one; if a problem is better solved with a simple function, make one and don't feel guilty about it. There is even a buzzword for the approach I suggest: Multiparadigm Programming[^]

                              utf8-cpp

                              H Offline
                              H Offline
                              hoernchenmeister
                              wrote on last edited by
                              #24

                              Sounds like a good advice to me... ...and I learned another Buzzword ;)

                              K 1 Reply Last reply
                              0
                              • R R Giskard Reventlov

                                Use whatever appears appropriate to the problem at hand. If the solution is OO then fine. Doesn't matter: your job, as a developer, is to provide a working solution to a given problem. Keep it simple, regardless of the methodology, and remember that the customer couldn't care less what tools you use, just that you fixed it.

                                "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                                H Offline
                                H Offline
                                hoernchenmeister
                                wrote on last edited by
                                #25

                                You are totally right. In the past I never had any discussions about the tools I use. But I also met project managers that did. One is still in my mind who had to maintain a 15 years old system that was taken from DBase to VisualBasic, to C#/SQL. He had to throw away so much code and wanted to know about how we were continuing the project and what kind of paradigm we will use. I had quite a lot of discussions related to my preferred OO approach and even after proving him wrong on so many things (at least he never gives up - and he's a good one after all) I still get sentences like the following: "Due to the fact that you created this part so nicely using your loved OO approach (english ist not my mother-language, but this sentence sounds sarcastically in real life) it will not be a big problem to extend/change/etc. whatever I come up with right now..." We were able to get rid of a lot of "old" problems (no objects at all, hundreds of VB6 forms) and I belive he is just unhappy that the things that have been already in place weren't really reusable at all. Ok, the new parts are reusable/extendable/MEF-ified and whatever and will be for another while, until the next smartass shows up with new ideas/toolsets. I am looking forward for this person to show up (there is always a lot to learn) ;)

                                1 Reply Last reply
                                0
                                • H hoernchenmeister

                                  Honestly I love OOP. From the very beginning of my programming career I loved breaking things into small units, reassembling them to bigger objects and then make them do the work they were supposed to do. Over the time I got that "feeling" how the problem I am trying to solve can be splitted and how the object structure should look like (at least in my opinion). So far I was happy, but times are changing, don't they? What are the alternatives (functional programming, etc)? What kind of alternative do you like most and why? Into what direction should I turn my head to maybe fall in love with another paradigm? What's your opinion? I am looking foreward to you replies cheer Andy

                                  M Offline
                                  M Offline
                                  Marc Clifton
                                  wrote on last edited by
                                  #26

                                  hoernchenmeister wrote:

                                  What's your opinion?

                                  Separating programming into declarative, imperative (OO is ok for this), function (not an OO tool), and [shameless plug] relational meta-modeling (see articles) [/shameless plug]. For most purposes, OO is nothing more than a glorified container. In limited cases, it's useful for extending functionality. Marc

                                  My Blog
                                  An Agile walk on the wild side with Relationship Oriented Programming

                                  H 1 Reply Last reply
                                  0
                                  • L Lost User

                                    OriginalGriff wrote:

                                    I would code for embedded software in C# - it's way to much work.

                                    You must be a masochist ;P

                                    Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet.

                                    OriginalGriffO Offline
                                    OriginalGriffO Offline
                                    OriginalGriff
                                    wrote on last edited by
                                    #27

                                    :-O

                                    Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

                                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                    1 Reply Last reply
                                    0
                                    • N Nemanja Trifunovic

                                      hoernchenmeister wrote:

                                      Into what direction should I turn my head to maybe fall in love with another paradigm?

                                      My advice is to not fall in love with any paradigm - just use whatever is best for the problem you are trying to solve. I was trying to make everything pure OOP when I was young and silly, but then I learned it didn't make much sense. Nobody even agrees what "pure OOP" is. If you need a class hierarchy, go and make one; if a problem is better solved with a simple function, make one and don't feel guilty about it. There is even a buzzword for the approach I suggest: Multiparadigm Programming[^]

                                      utf8-cpp

                                      G Offline
                                      G Offline
                                      Gary Wheeler
                                      wrote on last edited by
                                      #28

                                      Nemanja Trifunovic wrote:

                                      There is even a buzzword for the approach I suggest

                                      The acronym: JGTFJD = Just Get The F**king Job Done.

                                      Software Zen: delete this;

                                      1 Reply Last reply
                                      0
                                      • _ _beauw_

                                        I really think OOP is becoming obsolete in many ways. There probably will not be some grand, obvious transition away from it, though. To some extent "OOP" has always meant whatever people have wanted it to mean, so people who really like that term will continue using it regardless. The crux of my obsolescence argument is that OOP encourages us to identify little bits of state, which is exactly what the developer should avoid in many concurrent applications. The way I managed concurrency in my article Scalable Processor Arrays for Cybernetic Control[^] is an example of how FP works better in a concurrent application (even a very low-level one). My approach in that article is fairly pure FP. (Take a look at the "Functional Programming" and "Concurrency" sections in particular.) If I had started out with the notion of identifying little bundles of state, then I would have had to manage concurrent access to these (or artificially limit access to them). I'm not sure I would ever have finished this work under such a design. I might have had to introduce locks / critical sections, which is something that would negatively impact other aspects of my design. More likely, I would simply have found OOP to be an unwelcome architectural burden. This was not the case for FP; as shown in the article, FP is really key to the ways in which I made my code work. OOP did work well for the desktop applications of, oh, 1995-2005. That is, OOP is very well-suited to GUI applications with limited parallelism, in my estimation at least.

                                        E Offline
                                        E Offline
                                        ed welch
                                        wrote on last edited by
                                        #29

                                        Don't agree. OO works for any type of programming, including parellel programming. For instance, a server app spawns off a seperate object in a new thread to handle each client request. That's a typical OO structure.

                                        1 Reply Last reply
                                        0
                                        • OriginalGriffO OriginalGriff

                                          Years and years ago, Nicklaus Worth wrote a book: Algorithms + Data Structures = Programs[^] where he set out pretty much the principles that OOP is based on: that you should not separate the data from the processes that act on it. Then he went and designed PASCAL, which had no useful concept of data structures and was functional programming all the way through. So, he was talking b*llocks then! :laugh: Many, many tasks (particularly in a message-based environment) are Object Oriented, and should be treated as such. But when they aren't, functional programming works like a charm! I wouldn't code for Windows in a functional language - it's way too much work. I wouldn't code for embedded software in C# - it's way to much work. I think they will both proceed, side by side, until someone comes up with a new, radical shift in the way we design software. [edit]would. wouldn't. No real difference... - OriginalGriff[/edit]

                                          Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

                                          R Offline
                                          R Offline
                                          Rob Grainger
                                          wrote on last edited by
                                          #30

                                          OriginalGriff wrote:

                                          Then he went and designed PASCAL, which had no useful concept of data structures and was functional programming all the way through. So, he was talking b*llocks then!

                                          Sorry, you're the one talking b*llocks here - PASCAL is Procedural, not functional. There's a huge difference.

                                          R 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups