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. General Programming
  3. C#
  4. Operator overloading, when to

Operator overloading, when to

Scheduled Pinned Locked Moved C#
csharpc++javacomdesign
37 Posts 6 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.
  • D David1987

    Ok I'm bored so I'm going to argue anyway.

    jschell wrote:

    Since the vast majority of programming in the world does not involve that it isn't a significant problem.

    Not sure what world you're living in. Every time a vector or a int128 (or larger) is needed, Java will make your life a hell by insisting on manual cloning and writing verbose a.Multiply(b) and the like, for no reason other than that operator overloading can and is abused. Frankly it's none of their busyness whether I choose to abuse their language or not. But then again maybe you're working for some boring company just maintaining even more boring applications (as they call them, versus actual programs) - you know, the kind of program that doesn't actually do anything but just glues some stuff together.

    jschell wrote:

    And it is not accidental.

    Of course it isn't. I was referring to overloading methods in Java, which you can do accidentally because it doesn't require any syntax. It also will happen sooner or later and that's a nasty bug which is hard to find.

    You can also override some method (accidentally even, in Java) and have it completely break the Liskov substitution principle.

    People will do it, on purpose too. So lets ban virtual methods. In fact, let's ban strings and IO and arrays and dictionaries and floating point numbers and abstract classes and definitely reflection, all of which are frequently abused.

    J Offline
    J Offline
    jschell
    wrote on last edited by
    #19

    David1987 wrote:

    Not sure what world you're living in. Every time a vector or a int128 (or larger) is needed, Java will make your life a hell by insisting on manual cloning and writing verbose a.Multiply(b) and the like, for no reason other than that operator overloading can and is abused. Frankly it's none of their busyness whether I choose to abuse their language or not.

    Presumably you mean 'vector' in terms of mathematics and not in terms of the java class. Based on that, the point is meaningless. In terms of lines of code in the world the code that requires vectors is so small as to be unmeasurable.

    David1987 wrote:

    But then again maybe you're working for some boring company just maintaining even more boring applications (as they call them, versus actual programs) - you know, the kind of program that doesn't actually do anything but just glues some stuff together

    Not sure what that means but most of the applications I write do glue things together. And they also make a lot of money both directly and indirectly. I will admit that getting a regular paycheck and being able to pay bills is in fact 'boring' compared to the alternative. Applications that make money lead to that sort of boredom.

    David1987 wrote:

    Of course it isn't. I was referring to overloading methods in Java, which you can do accidentally because it doesn't require any syntax. It also will happen sooner or later and that's a nasty bug which is hard to find.

    I don't recall it happening to me. I do recall hundreds, thousands, perhaps hundreds of thousands of logic errors of which many are in fact hard to diagnose and sometimes very hard to solve. So I suspect the one of which you speak is lost in the noise.

    David1987 wrote:

    People will do it, on purpose too. So lets ban virtual methods.

    I haven't seen many problems with that in java. I can't recall any. I saw more of that sort of problem in C++ with people not understanding such things as the role of a virtual dtor. And working around the lack of virtual methods can be done but is much harder.

    David1987 wrote:

    In fact, let's ban strings and IO and arrays and dictionaries and floating point numbers and abstract classes and definitely reflection, all of which are frequently

    D 1 Reply Last reply
    0
    • J jschell

      David1987 wrote:

      Not sure what world you're living in. Every time a vector or a int128 (or larger) is needed, Java will make your life a hell by insisting on manual cloning and writing verbose a.Multiply(b) and the like, for no reason other than that operator overloading can and is abused. Frankly it's none of their busyness whether I choose to abuse their language or not.

      Presumably you mean 'vector' in terms of mathematics and not in terms of the java class. Based on that, the point is meaningless. In terms of lines of code in the world the code that requires vectors is so small as to be unmeasurable.

      David1987 wrote:

      But then again maybe you're working for some boring company just maintaining even more boring applications (as they call them, versus actual programs) - you know, the kind of program that doesn't actually do anything but just glues some stuff together

      Not sure what that means but most of the applications I write do glue things together. And they also make a lot of money both directly and indirectly. I will admit that getting a regular paycheck and being able to pay bills is in fact 'boring' compared to the alternative. Applications that make money lead to that sort of boredom.

      David1987 wrote:

      Of course it isn't. I was referring to overloading methods in Java, which you can do accidentally because it doesn't require any syntax. It also will happen sooner or later and that's a nasty bug which is hard to find.

      I don't recall it happening to me. I do recall hundreds, thousands, perhaps hundreds of thousands of logic errors of which many are in fact hard to diagnose and sometimes very hard to solve. So I suspect the one of which you speak is lost in the noise.

      David1987 wrote:

      People will do it, on purpose too. So lets ban virtual methods.

      I haven't seen many problems with that in java. I can't recall any. I saw more of that sort of problem in C++ with people not understanding such things as the role of a virtual dtor. And working around the lack of virtual methods can be done but is much harder.

      David1987 wrote:

      In fact, let's ban strings and IO and arrays and dictionaries and floating point numbers and abstract classes and definitely reflection, all of which are frequently

      D Offline
      D Offline
      David1987
      wrote on last edited by
      #20

      Strings and floats and reflection are very often abused. Enough so that I see such abuses pop up in the C# forum about every few weeks or so. But operator overloading abuse? Never in C#.. sometimes in C++, which sets the wrong example with their << on streams - and still less often than string-abuse. String abuse is especially bad since it causes performance trouble real quick - as does Object abuse, which I hadn't even previously mentioned (some people seem to think that you have to wrap everything in an object).

      jschell wrote:

      Based on that, the point is meaningless. In terms of lines of code in the world the code that requires vectors is so small as to be unmeasurable.

      Sure, you can put everything on one line.. which is a different kind of abuse, also made possible by java, but easily defeatable with auto-formatting. The raytracer we had to write in University became a horror of tangles Subtract's and Multiply's that in no way looked like the actual formula's. It sucked. With operator overloading it wouldn't have been such a pain.

      jschell wrote:

      Operator overloading is often misused.

      Prove it. I've never seen it.

      J 1 Reply Last reply
      0
      • D David1987

        It does when you're dismissing arguments out of hand and using irrelevant and nonsensical arguments to "prove" your position. This post again proves you to be a troll.

        J Offline
        J Offline
        jschell
        wrote on last edited by
        #21

        That is your opinion on the relevance of the arguments. The creators of Java specifically did not want operator overloading in the language. http://java.sun.com/docs/white/langenv/Simple.doc2.html#4098[^] Presumably they too did not know what they were talking about.

        D 1 Reply Last reply
        0
        • D David1987

          Strings and floats and reflection are very often abused. Enough so that I see such abuses pop up in the C# forum about every few weeks or so. But operator overloading abuse? Never in C#.. sometimes in C++, which sets the wrong example with their << on streams - and still less often than string-abuse. String abuse is especially bad since it causes performance trouble real quick - as does Object abuse, which I hadn't even previously mentioned (some people seem to think that you have to wrap everything in an object).

          jschell wrote:

          Based on that, the point is meaningless. In terms of lines of code in the world the code that requires vectors is so small as to be unmeasurable.

          Sure, you can put everything on one line.. which is a different kind of abuse, also made possible by java, but easily defeatable with auto-formatting. The raytracer we had to write in University became a horror of tangles Subtract's and Multiply's that in no way looked like the actual formula's. It sucked. With operator overloading it wouldn't have been such a pain.

          jschell wrote:

          Operator overloading is often misused.

          Prove it. I've never seen it.

          J Offline
          J Offline
          jschell
          wrote on last edited by
          #22

          David1987 wrote:

          Strings and floats and reflection are very often abused. Enough so that I see such abuses pop up in the C# forum about every few weeks or so.

          That is not evidence that in total lines of code that it occurs 'often'. And you see Strings misused?

          David1987 wrote:

          String abuse is especially bad since it causes performance trouble real quick

          I have seen claims of that. And hypothetical arguments about it. I have never seen it occur in a real application. Presumably you have. Could you describe the nature of that problem and the impact on the application performance pre and post?

          David1987 wrote:

          Sure, you can put everything on one line.. which is a different kind of abuse, also made possible by java, but easily defeatable with auto-formatting.

          That isn't what I meant. Given a count of lines of code in the world for all languages, the number of lines of code involving vectors (mathematical) is so small that one is unlikely to be able to measure it enough to get it above the error rate of the measurement process itself.

          David1987 wrote:

          The raytracer we had to write in University became a horror of tangles Subtract's and Multiply's that in no way looked like the actual formula's. It sucked. With operator overloading it wouldn't have been such a pain.

          Since most of OO programming involves method calls why is this different than any other OO programming task? Or misusing some other OO idiom such as method chaining. And how many total code lines were in the application? And how many code lines were specific to vector arithmetic operations?

          David1987 wrote:

          Prove it. I've never seen it.

          Then here you go... http://thedailywtf.com/Comments/Yet-Another-Operator-Overloading-Abuse.aspx?pg=4[^]

          D 1 Reply Last reply
          0
          • J jschell

            That is your opinion on the relevance of the arguments. The creators of Java specifically did not want operator overloading in the language. http://java.sun.com/docs/white/langenv/Simple.doc2.html#4098[^] Presumably they too did not know what they were talking about.

            D Offline
            D Offline
            David1987
            wrote on last edited by
            #23

            Indeed they were not. It's not the only mistake they made. The C# creators disagreed with them.

            J 1 Reply Last reply
            0
            • J jschell

              David1987 wrote:

              Strings and floats and reflection are very often abused. Enough so that I see such abuses pop up in the C# forum about every few weeks or so.

              That is not evidence that in total lines of code that it occurs 'often'. And you see Strings misused?

              David1987 wrote:

              String abuse is especially bad since it causes performance trouble real quick

              I have seen claims of that. And hypothetical arguments about it. I have never seen it occur in a real application. Presumably you have. Could you describe the nature of that problem and the impact on the application performance pre and post?

              David1987 wrote:

              Sure, you can put everything on one line.. which is a different kind of abuse, also made possible by java, but easily defeatable with auto-formatting.

              That isn't what I meant. Given a count of lines of code in the world for all languages, the number of lines of code involving vectors (mathematical) is so small that one is unlikely to be able to measure it enough to get it above the error rate of the measurement process itself.

              David1987 wrote:

              The raytracer we had to write in University became a horror of tangles Subtract's and Multiply's that in no way looked like the actual formula's. It sucked. With operator overloading it wouldn't have been such a pain.

              Since most of OO programming involves method calls why is this different than any other OO programming task? Or misusing some other OO idiom such as method chaining. And how many total code lines were in the application? And how many code lines were specific to vector arithmetic operations?

              David1987 wrote:

              Prove it. I've never seen it.

              Then here you go... http://thedailywtf.com/Comments/Yet-Another-Operator-Overloading-Abuse.aspx?pg=4[^]

              D Offline
              D Offline
              David1987
              wrote on last edited by
              #24

              jschell wrote:

              Presumably you have. Could you describe the nature of that problem and the impact on the application performance pre and post?

              No. All programs I've actually worked on were written either by just myself or me and a bunch of friends all of whom are not noobs who use strings for everything. There was no operator overloading abuse either. See here[^] for the worst string abuse I can remember from this forum.

              jschell wrote:

              Then here you go...

              Yes, it's C++. Argument dismissed. C++ has operator overloading abuse built-in with their << on streams. And besides, we were talking about C#.

              jschell wrote:

              Given a count of lines of code in the world for all languages, the number of lines of code involving vectors (mathematical) is so small that one is unlikely to be able to measure it enough to get it above the error rate of the measurement process itself.

              That doesn't matter (though there are definitely a lot in scientific code - if we ignore the Boring Code that becomes a lot more significant). Vectors aren't the only thing that should behave like a mathematical type instead of objects.

              jschell wrote:

              Since most of OO programming involves method calls why is this different than any other OO programming task? Or misusing some other OO idiom such as method chaining.

              Because a vector shouldn't be modeled as an object. A vector is a value, so that's exactly what it should be modeled as.

              J 1 Reply Last reply
              0
              • D David1987

                jschell wrote:

                Presumably you have. Could you describe the nature of that problem and the impact on the application performance pre and post?

                No. All programs I've actually worked on were written either by just myself or me and a bunch of friends all of whom are not noobs who use strings for everything. There was no operator overloading abuse either. See here[^] for the worst string abuse I can remember from this forum.

                jschell wrote:

                Then here you go...

                Yes, it's C++. Argument dismissed. C++ has operator overloading abuse built-in with their << on streams. And besides, we were talking about C#.

                jschell wrote:

                Given a count of lines of code in the world for all languages, the number of lines of code involving vectors (mathematical) is so small that one is unlikely to be able to measure it enough to get it above the error rate of the measurement process itself.

                That doesn't matter (though there are definitely a lot in scientific code - if we ignore the Boring Code that becomes a lot more significant). Vectors aren't the only thing that should behave like a mathematical type instead of objects.

                jschell wrote:

                Since most of OO programming involves method calls why is this different than any other OO programming task? Or misusing some other OO idiom such as method chaining.

                Because a vector shouldn't be modeled as an object. A vector is a value, so that's exactly what it should be modeled as.

                J Offline
                J Offline
                jschell
                wrote on last edited by
                #25

                David1987 wrote:

                All programs I've actually worked on were written either by just myself or me and a bunch of friends all of whom are not noobs who use strings for everything.

                You were using that as analogy for abuse which was comparable to the abuse in operator overloading. Your very statement here however suggests that you yourself do not consider it an apt analogy.

                David1987 wrote:

                Yes, it's C++.
                Argument dismissed.
                C++ has operator overloading abuse built-in with their << on streams.
                And besides, we were talking about C#.

                First I can provide a quote from Stroustrup that says that he specifically thinks that the operator overloading in streams is an excellent use. Second C++ has been around much longer than C# and has a larger base of code. Thus one can judge the impact better. Third C# does not limit operator overloading in such a way to make it incompatible with the problems that one might experience from abusing the idiom. Just as with C++. Fourth I am not now nor have I ever been discussing this in terms of only C#. I am referring the realm of possibilities for operator overloading of which the two languages, C# and C++, have sufficient user bases to evaluate usage. There are other languages which support operator overloading as well. It is possible some of the more esoteric ones might be a better fit for the idiom due to the nature of the language. But neither C# nor C++ is.

                David1987 wrote:

                That doesn't matter (though there are definitely a lot in scientific code - if we ignore the Boring Code that becomes a lot more significant). Vectors aren't the only thing that should behave like a mathematical type instead of objects.

                Yes it does matter. C#, Java and C++ are general purpose languages. They were designed and have evolved to support a wide range of problems. They are NOT designed to be ideal tools for specific problem domains. There are languages specifically designed to support a narrow range of problems. Such languages would be designed to support idioms specific to the nature of the domain they are targeted at. And there are languages specifically targeted to support scientific and mathematical problems which not only support the features that you are touting but do so at the native level. It is a matter of using the right tool for t

                D 1 Reply Last reply
                0
                • D David1987

                  Indeed they were not. It's not the only mistake they made. The C# creators disagreed with them.

                  J Offline
                  J Offline
                  jschell
                  wrote on last edited by
                  #26

                  David1987 wrote:

                  It's not the only mistake they made.

                  Your opinion.

                  David1987 wrote:

                  The C# creators disagreed with them.

                  Actually your opinion as well. The existence of the idiom in the language itself is not proof of your opinion. Now if you can provide a documented reference that states specifically that it was added because Java didn't have it (versus say because C++ does) then that would certainly be relevent. Relevent of their opinion though and nothing else.

                  D 1 Reply Last reply
                  0
                  • J jschell

                    David1987 wrote:

                    All programs I've actually worked on were written either by just myself or me and a bunch of friends all of whom are not noobs who use strings for everything.

                    You were using that as analogy for abuse which was comparable to the abuse in operator overloading. Your very statement here however suggests that you yourself do not consider it an apt analogy.

                    David1987 wrote:

                    Yes, it's C++.
                    Argument dismissed.
                    C++ has operator overloading abuse built-in with their << on streams.
                    And besides, we were talking about C#.

                    First I can provide a quote from Stroustrup that says that he specifically thinks that the operator overloading in streams is an excellent use. Second C++ has been around much longer than C# and has a larger base of code. Thus one can judge the impact better. Third C# does not limit operator overloading in such a way to make it incompatible with the problems that one might experience from abusing the idiom. Just as with C++. Fourth I am not now nor have I ever been discussing this in terms of only C#. I am referring the realm of possibilities for operator overloading of which the two languages, C# and C++, have sufficient user bases to evaluate usage. There are other languages which support operator overloading as well. It is possible some of the more esoteric ones might be a better fit for the idiom due to the nature of the language. But neither C# nor C++ is.

                    David1987 wrote:

                    That doesn't matter (though there are definitely a lot in scientific code - if we ignore the Boring Code that becomes a lot more significant). Vectors aren't the only thing that should behave like a mathematical type instead of objects.

                    Yes it does matter. C#, Java and C++ are general purpose languages. They were designed and have evolved to support a wide range of problems. They are NOT designed to be ideal tools for specific problem domains. There are languages specifically designed to support a narrow range of problems. Such languages would be designed to support idioms specific to the nature of the domain they are targeted at. And there are languages specifically targeted to support scientific and mathematical problems which not only support the features that you are touting but do so at the native level. It is a matter of using the right tool for t

                    D Offline
                    D Offline
                    David1987
                    wrote on last edited by
                    #27

                    Your own argument defeats yourself. C# is a general purpose language and so should be able to deal with it if some calculations are required. It would be pretty silly to have a language that can't calculate (XSTL?) But then, in a ray tracer the majority of the code isn't mathematics - just a lot of it. Building a ray tracer in mathematica or maple is kind of silly. Operators exist for built-in types, not allowing them on "everything else" makes the built-in types more special. In Java they are even more special and that sucks even more. It's not "nice" or "elegant" and it has bitten almost everyone who learned the language.

                    jschell wrote:

                    Third C# does not limit operator overloading in such a way to make it incompatible with the problems that one might experience from abusing the idiom. Just as with C++.

                    It is impossible to do so anyway. Just don't abuse it then. C# also does not limit method overloading and virtual methods and strings in such a way that you can't abuse them. Nor should it try to, you'd end up with a language that you'd have to fight at every turn to get something done. (like Haskell? and even haskell, for all its 'purity' has unsafePerformIO - and is not immune to string abuse, which is probably impossible to ban)

                    jschell wrote:

                    First I can provide a quote from Stroustrup that says that he specifically thinks that the operator overloading in streams is an excellent use.

                    Well of course, why else would he have done it that way. That doesn't mean that I'm going to agree with him though. << and >> should be used for bitwise shifts, any other use is abuse at least in my opinion, and I'm reasonably sure that a lot of people agree with that.

                    J 1 Reply Last reply
                    0
                    • J jschell

                      David1987 wrote:

                      It's not the only mistake they made.

                      Your opinion.

                      David1987 wrote:

                      The C# creators disagreed with them.

                      Actually your opinion as well. The existence of the idiom in the language itself is not proof of your opinion. Now if you can provide a documented reference that states specifically that it was added because Java didn't have it (versus say because C++ does) then that would certainly be relevent. Relevent of their opinion though and nothing else.

                      D Offline
                      D Offline
                      David1987
                      wrote on last edited by
                      #28

                      No. You're just talking crap here. They didn't choose to leave operator overloading out, so they can't have seen it as a major problem. It doesn't matter whether they specifically added it because Java didn't have it - it matters that they didn't see it as a problem. Their disagreement doesn't have to be explicit to be disagreement.

                      J 1 Reply Last reply
                      0
                      • D David1987

                        Your own argument defeats yourself. C# is a general purpose language and so should be able to deal with it if some calculations are required. It would be pretty silly to have a language that can't calculate (XSTL?) But then, in a ray tracer the majority of the code isn't mathematics - just a lot of it. Building a ray tracer in mathematica or maple is kind of silly. Operators exist for built-in types, not allowing them on "everything else" makes the built-in types more special. In Java they are even more special and that sucks even more. It's not "nice" or "elegant" and it has bitten almost everyone who learned the language.

                        jschell wrote:

                        Third C# does not limit operator overloading in such a way to make it incompatible with the problems that one might experience from abusing the idiom. Just as with C++.

                        It is impossible to do so anyway. Just don't abuse it then. C# also does not limit method overloading and virtual methods and strings in such a way that you can't abuse them. Nor should it try to, you'd end up with a language that you'd have to fight at every turn to get something done. (like Haskell? and even haskell, for all its 'purity' has unsafePerformIO - and is not immune to string abuse, which is probably impossible to ban)

                        jschell wrote:

                        First I can provide a quote from Stroustrup that says that he specifically thinks that the operator overloading in streams is an excellent use.

                        Well of course, why else would he have done it that way. That doesn't mean that I'm going to agree with him though. << and >> should be used for bitwise shifts, any other use is abuse at least in my opinion, and I'm reasonably sure that a lot of people agree with that.

                        J Offline
                        J Offline
                        jschell
                        wrote on last edited by
                        #29

                        David1987 wrote:

                        Your own argument defeats yourself. C# is a general purpose language and so should be able to deal with it if some calculations are required.

                        I see no problem with creating a vector library in Java. So no it doesn't defeat my point. And a general purpose language is NOT intended to be able to solve all problems and is certainly NOT intended to solve all of them in an ideal way either.

                        David1987 wrote:

                        Operators exist for built-in types, not allowing them on "everything else" makes the built-in types more special. In Java they are even more special and that sucks even more. It's not "nice" or "elegant" and it has bitten almost everyone who learned the language.

                        I have seen a lot of code in a lot of languages. Some elegant some not. But nothing in that statement has anything to do with operator overloading.

                        David1987 wrote:

                        It is impossible to do so anyway. Just don't abuse it then. C# also does not limit method overloading and virtual methods and strings in such a way that you can't abuse them. Nor should it try to, you'd end up with a language that you'd have to fight at every turn to get something done. (like Haskell? and even haskell, for all its 'purity' has unsafePerformIO - and is not immune to string abuse, which is probably impossible to ban)

                        To make it specifically clear - I do not accept your analogy of strings/virtuals as equivalent to operator overloading. A better analogy would be inheritance which is abused a great deal. However eliminating inheritance does not leave one with an alternative. That isn't true for operator overloading.

                        D 1 Reply Last reply
                        0
                        • D David1987

                          No. You're just talking crap here. They didn't choose to leave operator overloading out, so they can't have seen it as a major problem. It doesn't matter whether they specifically added it because Java didn't have it - it matters that they didn't see it as a problem. Their disagreement doesn't have to be explicit to be disagreement.

                          J Offline
                          J Offline
                          jschell
                          wrote on last edited by
                          #30

                          You specifically said. "The C# creators disagreed with them." That suggests intent. 1. They looked at Java, it didn't have operator overloading and thus they added it because Java didn't have it. In this case they disagreed with the the designers of Java. 2. Conversely they could have looked at C++, saw that it had operator overloading and added it because of that. In this case they agreed with the designers of C++. 1 and 2 are not the same.

                          D 2 Replies Last reply
                          0
                          • J jschell

                            David1987 wrote:

                            Your own argument defeats yourself. C# is a general purpose language and so should be able to deal with it if some calculations are required.

                            I see no problem with creating a vector library in Java. So no it doesn't defeat my point. And a general purpose language is NOT intended to be able to solve all problems and is certainly NOT intended to solve all of them in an ideal way either.

                            David1987 wrote:

                            Operators exist for built-in types, not allowing them on "everything else" makes the built-in types more special. In Java they are even more special and that sucks even more. It's not "nice" or "elegant" and it has bitten almost everyone who learned the language.

                            I have seen a lot of code in a lot of languages. Some elegant some not. But nothing in that statement has anything to do with operator overloading.

                            David1987 wrote:

                            It is impossible to do so anyway. Just don't abuse it then. C# also does not limit method overloading and virtual methods and strings in such a way that you can't abuse them. Nor should it try to, you'd end up with a language that you'd have to fight at every turn to get something done. (like Haskell? and even haskell, for all its 'purity' has unsafePerformIO - and is not immune to string abuse, which is probably impossible to ban)

                            To make it specifically clear - I do not accept your analogy of strings/virtuals as equivalent to operator overloading. A better analogy would be inheritance which is abused a great deal. However eliminating inheritance does not leave one with an alternative. That isn't true for operator overloading.

                            D Offline
                            D Offline
                            David1987
                            wrote on last edited by
                            #31

                            Ok, then I accept none of your arguments and you are simply wrong. Case closed. Troll.

                            J 1 Reply Last reply
                            0
                            • J jschell

                              You specifically said. "The C# creators disagreed with them." That suggests intent. 1. They looked at Java, it didn't have operator overloading and thus they added it because Java didn't have it. In this case they disagreed with the the designers of Java. 2. Conversely they could have looked at C++, saw that it had operator overloading and added it because of that. In this case they agreed with the designers of C++. 1 and 2 are not the same.

                              D Offline
                              D Offline
                              David1987
                              wrote on last edited by
                              #32

                              No it does not. It means they don't share the same opinion.

                              J 1 Reply Last reply
                              0
                              • J jschell

                                You specifically said. "The C# creators disagreed with them." That suggests intent. 1. They looked at Java, it didn't have operator overloading and thus they added it because Java didn't have it. In this case they disagreed with the the designers of Java. 2. Conversely they could have looked at C++, saw that it had operator overloading and added it because of that. In this case they agreed with the designers of C++. 1 and 2 are not the same.

                                D Offline
                                D Offline
                                David1987
                                wrote on last edited by
                                #33

                                Also in case you hadn't noticed, a post like that is the mark of a troll. There is no doubt about it. You are purposefully wasting my time with your intentional nonsense.

                                J 1 Reply Last reply
                                0
                                • D David1987

                                  No it does not. It means they don't share the same opinion.

                                  J Offline
                                  J Offline
                                  jschell
                                  wrote on last edited by
                                  #34

                                  David1987 wrote:

                                  No it does not. It means they don't share the same opinion.

                                  Which is not the same as your previous statement when you said "The C# creators disagreed with them."

                                  1 Reply Last reply
                                  0
                                  • D David1987

                                    Also in case you hadn't noticed, a post like that is the mark of a troll. There is no doubt about it. You are purposefully wasting my time with your intentional nonsense.

                                    J Offline
                                    J Offline
                                    jschell
                                    wrote on last edited by
                                    #35

                                    David1987 wrote:

                                    Also in case you hadn't noticed, a post like that is the mark of a troll. There is no doubt about it. You are purposefully wasting my time with your intentional nonsense.

                                    Because you said it, it must be so. Couldn't possibly be because I disagree with your opinion.

                                    1 Reply Last reply
                                    0
                                    • D David1987

                                      Ok, then I accept none of your arguments and you are simply wrong. Case closed. Troll.

                                      J Offline
                                      J Offline
                                      jschell
                                      wrote on last edited by
                                      #36

                                      David1987 wrote:

                                      Ok, then I accept none of your arguments and you are simply wrong. Case closed. Troll.

                                      Pretty sure I said early on that you were expressing nothing but a personal opinion.

                                      D 1 Reply Last reply
                                      0
                                      • J jschell

                                        David1987 wrote:

                                        Ok, then I accept none of your arguments and you are simply wrong. Case closed. Troll.

                                        Pretty sure I said early on that you were expressing nothing but a personal opinion.

                                        D Offline
                                        D Offline
                                        David1987
                                        wrote on last edited by
                                        #37

                                        Whatever. I don't give a shït. This useless discussion is far past the time that it was ever useful. Just go away.

                                        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