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. Mark Chu-Carroll on Go (programming language)

Mark Chu-Carroll on Go (programming language)

Scheduled Pinned Locked Moved The Lounge
csharpc++phpcom
90 Posts 18 Posters 0 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.
  • N Nemanja Trifunovic

    Jim Crafton wrote:

    However I still don't see that as a reason to *completely* drop it from the language

    But it is not "completely" dropped out. They have interfaces and structural subtyping - you just don't explicitelly put the ineritance relashionship in the code. If a type implements all methods declared in an interface, than it is allowed to be used wherever the interface is expected, without the need to explicitely mark it as derived from the interface. Sure, it prevents you from making deep hierarchies, but I salute that.

    utf8-cpp

    J Offline
    J Offline
    Jim Crafton
    wrote on last edited by
    #52

    But I can't inherit behavior, right? Isn't that one of the compelling things about OOP, again, when used/designed properly? It seems goofy, to me at least.

    ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

    N 1 Reply Last reply
    0
    • S Single Step Debugger

      Nemanja Trifunovic wrote:

      For some purposes, such as GUI. However, Go is intended to be a system language, and OOP is much less useful there.

      You can’t be serious! Try some time to create network communication server, protocol parser or connection puling without using OOP – the code will triple. Unless if under system programming you mean opening one TSP socket and reading 7 bytes of data.

      The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.

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

      Deyan Georgiev wrote:

      You can’t be serious! Try some time to create network communication server, protocol parser or connection puling without using OOP – the code will triple

      Just to be on the same page - by OOP, I mean the classic definition with class hierarchies. I don't see how the code "will triple" if you don't use them.

      utf8-cpp

      1 Reply Last reply
      0
      • J Jim Crafton

        But I can't inherit behavior, right? Isn't that one of the compelling things about OOP, again, when used/designed properly? It seems goofy, to me at least.

        ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

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

        Jim Crafton wrote:

        But I can't inherit behavior, right? Isn't that one of the compelling things about OOP

        Not in my book, except in very specific cases such as GUI libraries. Implementation inheritance is one of the worst ways to reuse code.

        utf8-cpp

        Steve EcholsS J 2 Replies Last reply
        0
        • M Member 96

          :sigh: 2000 called; it wants it's argument back.


          "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

          P Offline
          P Offline
          PIEBALDconsult
          wrote on last edited by
          #55

          I'm still trying to figure out what this is in response to. :~

          M 1 Reply Last reply
          0
          • M Member 96

            And....? What type of software do you write?


            "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

            R Offline
            R Offline
            Rajesh R Subramanian
            wrote on last edited by
            #56

            I work for an animation company in their research team. We write software components for 3d rendering, we have a home grown high performance graphics library, our own multicasting library, etc., I'm currently working on a high performance server (MFC for UI and C++ otherwise), and on a thread pool in C. Most of our code works extensively with other applications (other application API) like Maya, Quicktime, etc., Performance is very important here and C#, Java and other things stay outside the gate.

            “Follow your bliss.” – Joseph Campbell

            M J 2 Replies Last reply
            0
            • N Nemanja Trifunovic

              Jim Crafton wrote:

              But I can't inherit behavior, right? Isn't that one of the compelling things about OOP

              Not in my book, except in very specific cases such as GUI libraries. Implementation inheritance is one of the worst ways to reuse code.

              utf8-cpp

              Steve EcholsS Offline
              Steve EcholsS Offline
              Steve Echols
              wrote on last edited by
              #57

              Nemanja Trifunovic wrote:

              Implementation inheritance is one of the worst ways to reuse code.

              That's gotta be one of the craziest things I've heard (today at least). How are you re-using your code?


              - S 50 cups of coffee and you know it's on! Code, follow, or get out of the way.

              • S
                50 cups of coffee and you know it's on!
                Code, follow, or get out of the way.
              N 1 Reply Last reply
              0
              • S Single Step Debugger

                John C wrote:

                In my world my customers want the code fast and they want a *lot* of functionality and they want to never lose their data and as far as performance goes as long as they don't notice anything taking a long time they don't care about it.

                In my world there are four major types of applications/solutions. System programs, Small Programs, Medium Business - Applications, Monstrous Corporate-Applications. From all these only the second kind is not always performance critical. And except for the system programs, the choice of the particular language has nothing to do with the performance.

                The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.

                M Offline
                M Offline
                Member 96
                wrote on last edited by
                #58

                Don't misunderstand me, performance is *always* important, but it's only important to the degree that it's noticeable. If it's not noticeable to the end user it's not at all important for what I'm doing. This is an important point because I think too many developers get caught in the trap of endlessly optimizing or worrying about every millisecond for things that no one will ever notice in the end.


                "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                R 1 Reply Last reply
                0
                • N Nemanja Trifunovic

                  "A desktop application designed for document collaboration in teams with members who are regularly off-line or who do not share the same network security clearance."

                  utf8-cpp

                  M Offline
                  M Offline
                  Member 96
                  wrote on last edited by
                  #59

                  Interesting. So basically the same boat as me: the only areas where performance matters are areas where the end users actually notice a slowness.


                  "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                  N 1 Reply Last reply
                  0
                  • M Member 96

                    Don't misunderstand me, performance is *always* important, but it's only important to the degree that it's noticeable. If it's not noticeable to the end user it's not at all important for what I'm doing. This is an important point because I think too many developers get caught in the trap of endlessly optimizing or worrying about every millisecond for things that no one will ever notice in the end.


                    "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                    R Offline
                    R Offline
                    Rajesh R Subramanian
                    wrote on last edited by
                    #60

                    That's a very good point you're making. However, I think that you're completely misunderstood here (at least on this thread). I did get you right to some extent though, and the fact with my workplace is that we need to milk out the best performance. I'm not against .NET either (I'm against Java though, such ugly shit should not exist).

                    “Follow your bliss.” – Joseph Campbell

                    M 1 Reply Last reply
                    0
                    • P PIEBALDconsult

                      I'm still trying to figure out what this is in response to. :~

                      M Offline
                      M Offline
                      Member 96
                      wrote on last edited by
                      #61

                      The very old elitist argument against managed development outright regardless of circumstances because performance can be slower in some circumstances than for unmanaged apps.


                      "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                      P 1 Reply Last reply
                      0
                      • N Nemanja Trifunovic

                        Jim Crafton wrote:

                        But I can't inherit behavior, right? Isn't that one of the compelling things about OOP

                        Not in my book, except in very specific cases such as GUI libraries. Implementation inheritance is one of the worst ways to reuse code.

                        utf8-cpp

                        J Offline
                        J Offline
                        Jim Crafton
                        wrote on last edited by
                        #62

                        Why? Seriously, I don't understand what your issue with it is. I'm not trying to be argumentative, I'd genuinely be curious as to what the issue with it is.

                        ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                        N 1 Reply Last reply
                        0
                        • Steve EcholsS Steve Echols

                          Nemanja Trifunovic wrote:

                          Implementation inheritance is one of the worst ways to reuse code.

                          That's gotta be one of the craziest things I've heard (today at least). How are you re-using your code?


                          - S 50 cups of coffee and you know it's on! Code, follow, or get out of the way.

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

                          Steve Echols wrote:

                          That's gotta be one of the craziest things I've heard

                          Prefer composition to inheritance[^] Implementation Inheritance Is Evil[^] Abuse of Inheritance[^]

                          utf8-cpp

                          Steve EcholsS J 2 Replies Last reply
                          0
                          • R Rajesh R Subramanian

                            I work for an animation company in their research team. We write software components for 3d rendering, we have a home grown high performance graphics library, our own multicasting library, etc., I'm currently working on a high performance server (MFC for UI and C++ otherwise), and on a thread pool in C. Most of our code works extensively with other applications (other application API) like Maya, Quicktime, etc., Performance is very important here and C#, Java and other things stay outside the gate.

                            “Follow your bliss.” – Joseph Campbell

                            M Offline
                            M Offline
                            Member 96
                            wrote on last edited by
                            #64

                            No argument here. :) Though I bet the folks in accounting would be just as happy with their stuff being .net based (actually I *know* they could care less if they're like accounting and business people the world over) ;)


                            "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                            1 Reply Last reply
                            0
                            • J Jim Crafton

                              Why? Seriously, I don't understand what your issue with it is. I'm not trying to be argumentative, I'd genuinely be curious as to what the issue with it is.

                              ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

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

                              Jim Crafton wrote:

                              Why?

                              Just answered above with some links :)

                              utf8-cpp

                              1 Reply Last reply
                              0
                              • N Nemanja Trifunovic

                                Steve Echols wrote:

                                That's gotta be one of the craziest things I've heard

                                Prefer composition to inheritance[^] Implementation Inheritance Is Evil[^] Abuse of Inheritance[^]

                                utf8-cpp

                                Steve EcholsS Offline
                                Steve EcholsS Offline
                                Steve Echols
                                wrote on last edited by
                                #66

                                So because people have abused it, that makes it evil? In my mind, it's just another tool to get a job done. If something "is-a" I use inheritance. If something "has-a", I use composition. Then there's that huge gray area in between....


                                - S 50 cups of coffee and you know it's on! Code, follow, or get out of the way.

                                • S
                                  50 cups of coffee and you know it's on!
                                  Code, follow, or get out of the way.
                                1 Reply Last reply
                                0
                                • N Nemanja Trifunovic

                                  Steve Echols wrote:

                                  That's gotta be one of the craziest things I've heard

                                  Prefer composition to inheritance[^] Implementation Inheritance Is Evil[^] Abuse of Inheritance[^]

                                  utf8-cpp

                                  J Offline
                                  J Offline
                                  Jim Crafton
                                  wrote on last edited by
                                  #67

                                  Not very compelling arguments except for Herb's, which allow for a lot more leeway. Like anything, you have to learn how to use the tool. I would agree that MI is a PITA, and a language which ditches MI wouldn't bother me in the least. But to *completely* ditch inheritance still seems foolish. It's a tool. It's a good tool in a number of situations. Not all situations, but certainly more than enough to make it useful. The second's links reasoning is a little strange: "It encourages clients to tweak the behavior of base classes in ways that the original developer may not have envisioned. This often requires an intimate knowledge of the base class implementation and means that changes to the base class can easily break the subclass (FragileBaseClassProblem). This is an especially serious problem for component oriented development. " How does inheritance do this? If you don't have the source code to a library's base object, how can you "tweak" it? If the problem is with the design (which is what this really sounds like) then that's not an issue with inheritance per se, but an issue with the fact that whoever developer the library didn't know what they were doing. Two completely different problems.

                                  ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                                  1 Reply Last reply
                                  0
                                  • M Member 96

                                    The very old elitist argument against managed development outright regardless of circumstances because performance can be slower in some circumstances than for unmanaged apps.


                                    "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                                    P Offline
                                    P Offline
                                    PIEBALDconsult
                                    wrote on last edited by
                                    #68

                                    Yeah. It really depends on the developer. And as long as performance is "good enough", I'll take maintainability and readability over theoretical top performance.

                                    1 Reply Last reply
                                    0
                                    • R Rajesh R Subramanian

                                      That's a very good point you're making. However, I think that you're completely misunderstood here (at least on this thread). I did get you right to some extent though, and the fact with my workplace is that we need to milk out the best performance. I'm not against .NET either (I'm against Java though, such ugly shit should not exist).

                                      “Follow your bliss.” – Joseph Campbell

                                      M Offline
                                      M Offline
                                      Member 96
                                      wrote on last edited by
                                      #69

                                      Rajesh R Subramanian wrote:

                                      I think that you're completely misunderstood

                                      :-D Story of my life I'm afraid. Oh well there's always posthumous understanding I guess. Some day they'll say "remember old man JohnC, man was he ever right about so much stuff". ;)


                                      "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                                      J N A 3 Replies Last reply
                                      0
                                      • M Member 96

                                        Interesting. So basically the same boat as me: the only areas where performance matters are areas where the end users actually notice a slowness.


                                        "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

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

                                        John C wrote:

                                        So basically the same boat as me: the only areas where performance matters are areas where the end users actually notice a slowness.

                                        Not sure what your boat is, but the app I work on stays in the background most of the time and needs to be as unintrusive as possible while synchronizing the content over the network. That means - minimal use of CPU, memory and power (for laptops).

                                        utf8-cpp

                                        M 1 Reply Last reply
                                        0
                                        • N Nemanja Trifunovic

                                          John C wrote:

                                          So basically the same boat as me: the only areas where performance matters are areas where the end users actually notice a slowness.

                                          Not sure what your boat is, but the app I work on stays in the background most of the time and needs to be as unintrusive as possible while synchronizing the content over the network. That means - minimal use of CPU, memory and power (for laptops).

                                          utf8-cpp

                                          M Offline
                                          M Offline
                                          Member 96
                                          wrote on last edited by
                                          #71

                                          Ahh...I see, that sounds like interesting work.


                                          "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

                                          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