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. C++/Fido.net/Memories

C++/Fido.net/Memories

Scheduled Pinned Locked Moved The Lounge
csharpc++learning
31 Posts 7 Posters 3 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.
  • W William E Kempf

    Jeremy Falcon wrote: William E. Kempf wrote: You can create extremely efficient OOP designs. Clickety[^] Do some more research. Modern compilers have little problem optimizing away the problems exposed by OOPACK. The trouble isn't with the abstractions, per se, but with the optimizations applied by the compiler. You also have to note that with OOPACK (and stepanov and other such bench tests) that they are testing a very specific design, so they aren't a universal representation in the first place. Even back in '92 the statement I gave above would have still held true despite these benchmarks. You just had to be cognizant of the issues and how to work around them. Jeremy Falcon wrote: William E. Kempf wrote: More over, C++ has proven to allow even greater flexibility and performance than C in many areas. No, Bjarne created C++ to be more strict than C. His words, not mine. Why Bjarne created C++ has nothing at all to do with what I just said, and you definately didn't refute it by quoting him here. After all, if C++ were only a stricter C, you'd lose your argument from the very beginning, as type safety has zero overhead or impact to the "low level" nature of a language. Jeremy Falcon wrote: William E. Kempf wrote: For example, Blitz and other such numerical template libraries AFAIK that's not a standard library and not a part of the core language. And templates and classes are two different cookies. And, algorithms cannot be compared to calling conventions, OOP overhead, etc. Why must it be part of the standard library to be evidence of my claims? And the Blitz code happens to be both templates and classes... so you're not making much of an argument here. Further, I never said anything to lead you to assume that ALL of the C++ language shouldn't be considered in this thread... and that includes templates. After all, the original complaint was with C++ and not OOP in general. And sorry, but I really can't figure out how to interpret your last sentence about algorithms with regards to this discussion? William E. Kempf

    J Offline
    J Offline
    Jeremy Falcon
    wrote on last edited by
    #16

    William E. Kempf wrote: After all, if C++ were only a stricter C, you'd lose your argument from the very beginning, as type safety has zero overhead or impact to the "low level" nature of a language. My claim was on the grounds of OOP overhead. I never said C++ was a "stricter C". You are putting words in my mouth to falsify a point. The greater flexibility you spoke of goes against what I read of Bjarne when he created C++ to have strict rules on type checking, etc. So, I don't see how you can claim greater flexibility. As far as performance gains, I say prove it. This largely depends on the compiler. William E. Kempf wrote: Why must it be part of the standard library to be evidence of my claims? Do you have the source to Blitz? If not, then you don't know for sure what the underlying algorithms are coded with (maybe inline asm for all you know). If so, then this doesn't matter. William E. Kempf wrote: And sorry, but I really can't figure out how to interpret your last sentence about algorithms with regards to this discussion? Because OOP will always add an extra layer of overhead. What goes in a member function and how the member function is accessed are not the same things. Jeremy Falcon

    N W 2 Replies Last reply
    0
    • N Nemanja Trifunovic

      Richard Stringer wrote: If you had to ask then you wouldn't understand the answer :wtf: Somehow, I don't think he is that ignorant.

      R Offline
      R Offline
      Richard Stringer
      wrote on last edited by
      #17

      I didn't think he was or I would not have answered like that. Its kinda like someone going to buy a Rolls Royce and asking what the gas mileage is. If you can afford the car you can afford the gas. If he knew enough about the differences between C and C++ to defend his position he knew enough to understand the answer . He and I disagree on a silly little point of functionality thats all. I think I'm right - he thinks he's right - and the rest of the world really doesn't care very much. Richard In Italy for thirty years under the Borgias they had warfare, terror, murder and bloodshed but they produced Michelangelo, Leonardo da Vinci and the Renaissance. In Switzerland, they had brotherly love; they had five hundred years of democracy and peace and what did that produce? The cuckoo clock. Orson Welles

      1 Reply Last reply
      0
      • J Jeremy Falcon

        William E. Kempf wrote: After all, if C++ were only a stricter C, you'd lose your argument from the very beginning, as type safety has zero overhead or impact to the "low level" nature of a language. My claim was on the grounds of OOP overhead. I never said C++ was a "stricter C". You are putting words in my mouth to falsify a point. The greater flexibility you spoke of goes against what I read of Bjarne when he created C++ to have strict rules on type checking, etc. So, I don't see how you can claim greater flexibility. As far as performance gains, I say prove it. This largely depends on the compiler. William E. Kempf wrote: Why must it be part of the standard library to be evidence of my claims? Do you have the source to Blitz? If not, then you don't know for sure what the underlying algorithms are coded with (maybe inline asm for all you know). If so, then this doesn't matter. William E. Kempf wrote: And sorry, but I really can't figure out how to interpret your last sentence about algorithms with regards to this discussion? Because OOP will always add an extra layer of overhead. What goes in a member function and how the member function is accessed are not the same things. Jeremy Falcon

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

        Jeremy Falcon wrote: Do you have the source to Blitz? If not, then you don't know for sure what the underlying algorithms are coded with (maybe inline asm for all you know). If so, then this doesn't matter. Blitz++ is shipped with the source (like all template libraries). And no, it has no inline asm - pure C++.

        1 Reply Last reply
        0
        • J Jeremy Falcon

          William E. Kempf wrote: After all, if C++ were only a stricter C, you'd lose your argument from the very beginning, as type safety has zero overhead or impact to the "low level" nature of a language. My claim was on the grounds of OOP overhead. I never said C++ was a "stricter C". You are putting words in my mouth to falsify a point. The greater flexibility you spoke of goes against what I read of Bjarne when he created C++ to have strict rules on type checking, etc. So, I don't see how you can claim greater flexibility. As far as performance gains, I say prove it. This largely depends on the compiler. William E. Kempf wrote: Why must it be part of the standard library to be evidence of my claims? Do you have the source to Blitz? If not, then you don't know for sure what the underlying algorithms are coded with (maybe inline asm for all you know). If so, then this doesn't matter. William E. Kempf wrote: And sorry, but I really can't figure out how to interpret your last sentence about algorithms with regards to this discussion? Because OOP will always add an extra layer of overhead. What goes in a member function and how the member function is accessed are not the same things. Jeremy Falcon

          W Offline
          W Offline
          William E Kempf
          wrote on last edited by
          #19

          Jeremy Falcon wrote: My claim was on the grounds of OOP overhead. I never said C++ was a "stricter C". No, but you quoted Bjarne with an implication that that's all *he* intended C++ to be. Jeremy Falcon wrote: You are putting words in my mouth to falsify a point. Not intentionally, and what you have next makes me believe that at best we have a misunderstanding of what the other is saying. At least it certainly appears that you're still making the claim I state above. Jeremy Falcon wrote: The greater flexibility you spoke of goes against what I read of Bjarne when he created C++ to have strict rules on type checking, etc. How does strict type checking go against greater flexibility? Jeremy Falcon wrote: So, I don't see how you can claim greater flexibility. I've given the example of Blitz. Jeremy Falcon wrote: William E. Kempf wrote: Why must it be part of the standard library to be evidence of my claims? Do you have the source to Blitz? If not, then you don't know for sure what the underlying algorithms are coded with (maybe inline asm for all you know). If so, then this doesn't matter. http://www.oonumerics.org/blitz/[^] There's also Boost libraries that achieve many of the same things. Jeremy Falcon wrote: William E. Kempf wrote: And sorry, but I really can't figure out how to interpret your last sentence about algorithms with regards to this discussion? Because OOP will always add an extra layer of overhead. What goes in a member function and how the member function is accessed are not the same things. Absolutely not. Non-virtual member functions add no more overhead than stand alone functions in C (and with modern compilers, virtual member functions add very little overhead, and no more overhead than equivalent constructs in C... though the very nature of polymorphic calls does imply some overhead, and as such should only be used when necessary). The OOPACK benchmark is very specifically illustrating issues with small object abstractions. An OO design need not use small object abstractions. Further, modern C++ compilers are finding ways to optimize small object abstractions so that there is no penalty involved here. William E. Kempf

          J 1 Reply Last reply
          0
          • W William E Kempf

            Jeremy Falcon wrote: My claim was on the grounds of OOP overhead. I never said C++ was a "stricter C". No, but you quoted Bjarne with an implication that that's all *he* intended C++ to be. Jeremy Falcon wrote: You are putting words in my mouth to falsify a point. Not intentionally, and what you have next makes me believe that at best we have a misunderstanding of what the other is saying. At least it certainly appears that you're still making the claim I state above. Jeremy Falcon wrote: The greater flexibility you spoke of goes against what I read of Bjarne when he created C++ to have strict rules on type checking, etc. How does strict type checking go against greater flexibility? Jeremy Falcon wrote: So, I don't see how you can claim greater flexibility. I've given the example of Blitz. Jeremy Falcon wrote: William E. Kempf wrote: Why must it be part of the standard library to be evidence of my claims? Do you have the source to Blitz? If not, then you don't know for sure what the underlying algorithms are coded with (maybe inline asm for all you know). If so, then this doesn't matter. http://www.oonumerics.org/blitz/[^] There's also Boost libraries that achieve many of the same things. Jeremy Falcon wrote: William E. Kempf wrote: And sorry, but I really can't figure out how to interpret your last sentence about algorithms with regards to this discussion? Because OOP will always add an extra layer of overhead. What goes in a member function and how the member function is accessed are not the same things. Absolutely not. Non-virtual member functions add no more overhead than stand alone functions in C (and with modern compilers, virtual member functions add very little overhead, and no more overhead than equivalent constructs in C... though the very nature of polymorphic calls does imply some overhead, and as such should only be used when necessary). The OOPACK benchmark is very specifically illustrating issues with small object abstractions. An OO design need not use small object abstractions. Further, modern C++ compilers are finding ways to optimize small object abstractions so that there is no penalty involved here. William E. Kempf

            J Offline
            J Offline
            Jeremy Falcon
            wrote on last edited by
            #20

            William E. Kempf wrote: No, but you quoted Bjarne with an implication that that's all *he* intended C++ to be. But that's just it, you spawned off an "implication" that you assumed I made. William E. Kempf wrote: I've given the example of Blitz. Lemme take a look at it, and I'll get back to ya. Jeremy Falcon

            W 1 Reply Last reply
            0
            • J Jeremy Falcon

              William E. Kempf wrote: No, but you quoted Bjarne with an implication that that's all *he* intended C++ to be. But that's just it, you spawned off an "implication" that you assumed I made. William E. Kempf wrote: I've given the example of Blitz. Lemme take a look at it, and I'll get back to ya. Jeremy Falcon

              W Offline
              W Offline
              William E Kempf
              wrote on last edited by
              #21

              Jeremy Falcon wrote: William E. Kempf wrote: No, but you quoted Bjarne with an implication that that's all *he* intended C++ to be. But that's just it, you spawned off an "implication" that you assumed I made. Not intentionally, but that's the only meaning I could glean from the quote. Care to explain further? William E. Kempf

              J 1 Reply Last reply
              0
              • W William E Kempf

                Jeremy Falcon wrote: William E. Kempf wrote: No, but you quoted Bjarne with an implication that that's all *he* intended C++ to be. But that's just it, you spawned off an "implication" that you assumed I made. Not intentionally, but that's the only meaning I could glean from the quote. Care to explain further? William E. Kempf

                J Offline
                J Offline
                Jeremy Falcon
                wrote on last edited by
                #22

                William E. Kempf wrote: Care to explain further? Well, I had type checking in my head at the time; however, it didn't seem to come out on paper (err, bytes). :-O I'll be the first to admit (well maybe second ;P) that my experience with C is much greater than C++. Even when I use C++ I tend to stay with the "C style" and use classes if I "need" them. Yes, I know OOAD, but I think OOP is just another buzz term. In fact I heard something new that's supposed to be called "Application Oriented." What's next, we use "Procedure Oriented" and we go back to the way I we all did things in the first place? :) I don't use much STL, but rather the standard libs. Even with my Windows programming I use the pure API calls because I don't think they were poorly designed – just not OO. I can achieve encapsulation simply by staying modular with my functions. And, it's just as easy to reuse a well-written function as it is a class. Anyway, I've always read since the dawn of ages that C++ incurs overhead simply because of it's extra functionality. To me that makes sense. Now, if compilers these days are closing the bridge on that - that's great. But, I'd like to see stats. P.S. When I get a chance, I still intend on checking out the Blitz library just to see what kind of magic you say they are pulling off. Jeremy Falcon

                W 1 Reply Last reply
                0
                • J Jeremy Falcon

                  William E. Kempf wrote: Care to explain further? Well, I had type checking in my head at the time; however, it didn't seem to come out on paper (err, bytes). :-O I'll be the first to admit (well maybe second ;P) that my experience with C is much greater than C++. Even when I use C++ I tend to stay with the "C style" and use classes if I "need" them. Yes, I know OOAD, but I think OOP is just another buzz term. In fact I heard something new that's supposed to be called "Application Oriented." What's next, we use "Procedure Oriented" and we go back to the way I we all did things in the first place? :) I don't use much STL, but rather the standard libs. Even with my Windows programming I use the pure API calls because I don't think they were poorly designed – just not OO. I can achieve encapsulation simply by staying modular with my functions. And, it's just as easy to reuse a well-written function as it is a class. Anyway, I've always read since the dawn of ages that C++ incurs overhead simply because of it's extra functionality. To me that makes sense. Now, if compilers these days are closing the bridge on that - that's great. But, I'd like to see stats. P.S. When I get a chance, I still intend on checking out the Blitz library just to see what kind of magic you say they are pulling off. Jeremy Falcon

                  W Offline
                  W Offline
                  William E Kempf
                  wrote on last edited by
                  #23

                  Jeremy Falcon wrote: Yes, I know OOAD, but I think OOP is just another buzz term. Buzz terms don't have life spans of the length that OOP has already endured ;). I think you're falling afoul of the initial "buzz" over OOP being that it was a silver bullet that would solve all of our problems. Obviously it's not, as there is no such thing as a silver bullet. So, because of this "buzz", you've mentally aligned yourself to think that OOP is bad. There are two problems with this, as it pertains to this thread. First, OOP *IS* a very good solution for many problems... including some problems not easily solvable with other paradigms, such as you're favored procedural. Secondly, C++ is *NOT* an OOP language, or at least not exclusively. It actually lets you program using many different methodologies, including your preferred procedural. Good C++ developers make use of each paradigm, choosing the most appropriate one for the task at hand (of course, that's not always an easy thing to determine). Jeremy Falcon wrote: In fact I heard something new that's supposed to be called "Application Oriented." I believe you're referring to AO, which is Aspect Oriented (http://aosd.net/[^]), not Application Oriented. Jeremy Falcon wrote: What's next, we use "Procedure Oriented" and we go back to the way I we all did things in the first place? When it's appropriate. BTW, you've missed several other methodologies/paradigms which can be used in C++. Functional is one of the more intersting ones being explored right now. Jeremy Falcon wrote: I don't use much STL, but rather the standard libs. Depending on how you use the term "STL", it *IS* part of the standard libs. Jeremy Falcon wrote: And, it's just as easy to reuse a well-written function as it is a class. Absolutely. But it's more difficult to achieve things like lifetime management, for instance. Both methodologies have their strengths and weaknesses. The nice thing about C++ is it let's me choose ;). Jeremy Falcon wrote: Anyway, I've always read since the dawn of ages that C++ incurs overhead simply because of it's extra functionality. To me that makes sense. Now, if compilers these days are closing the bridge on that - that's great. But, I'd like to see stats. Act

                  J 1 Reply Last reply
                  0
                  • W William E Kempf

                    Jeremy Falcon wrote: Yes, I know OOAD, but I think OOP is just another buzz term. Buzz terms don't have life spans of the length that OOP has already endured ;). I think you're falling afoul of the initial "buzz" over OOP being that it was a silver bullet that would solve all of our problems. Obviously it's not, as there is no such thing as a silver bullet. So, because of this "buzz", you've mentally aligned yourself to think that OOP is bad. There are two problems with this, as it pertains to this thread. First, OOP *IS* a very good solution for many problems... including some problems not easily solvable with other paradigms, such as you're favored procedural. Secondly, C++ is *NOT* an OOP language, or at least not exclusively. It actually lets you program using many different methodologies, including your preferred procedural. Good C++ developers make use of each paradigm, choosing the most appropriate one for the task at hand (of course, that's not always an easy thing to determine). Jeremy Falcon wrote: In fact I heard something new that's supposed to be called "Application Oriented." I believe you're referring to AO, which is Aspect Oriented (http://aosd.net/[^]), not Application Oriented. Jeremy Falcon wrote: What's next, we use "Procedure Oriented" and we go back to the way I we all did things in the first place? When it's appropriate. BTW, you've missed several other methodologies/paradigms which can be used in C++. Functional is one of the more intersting ones being explored right now. Jeremy Falcon wrote: I don't use much STL, but rather the standard libs. Depending on how you use the term "STL", it *IS* part of the standard libs. Jeremy Falcon wrote: And, it's just as easy to reuse a well-written function as it is a class. Absolutely. But it's more difficult to achieve things like lifetime management, for instance. Both methodologies have their strengths and weaknesses. The nice thing about C++ is it let's me choose ;). Jeremy Falcon wrote: Anyway, I've always read since the dawn of ages that C++ incurs overhead simply because of it's extra functionality. To me that makes sense. Now, if compilers these days are closing the bridge on that - that's great. But, I'd like to see stats. Act

                    J Offline
                    J Offline
                    Jeremy Falcon
                    wrote on last edited by
                    #24

                    William E. Kempf wrote: Buzz terms don't have life spans of the length that OOP has already endured Explain "HaXoR", "1337", and "Visual Basic". William E. Kempf wrote: I think you're falling afoul of the initial "buzz" over OOP being that it was a silver bullet that would solve all of our problems. You're assuming again, and no I am not falling afoul as you put it. Funny how you aggreed with Richard that there's nothing I can't do in C that can be done in C++. And yes you shoot down my choice (that coincides with his) of saying OOP is not the gratest things since sliced bread. And, as far as marketing nuts, rookies, etc. OOP is a buzz word still. William E. Kempf wrote: Depending on how you use the term "STL", it *IS* part of the standard libs. I meant as in "non-templatized". Since your perception is so keen, I figured you'd pick up on it. William E. Kempf wrote: Actually, it doesn't make that much sense. Here's a very common C way of doing things: Don't confuse "as much experience" with "no experience". This is extremely rookie crap you're showing me here. And furthermore, I've never referred to coding when talking about overhead, but rather what the computer must endure (taxation-wise) to account for this methodology. William E. Kempf wrote: but no more so than similar techniques employed by C libraries such as the Win32 API. As an FMI, can you name a technique the Win32 API uses that has as much overhead? William E. Kempf wrote: http://www.oonumerics.org/MailArchives/oon-list/msg00073.php\[^\]. There has to be a lot more info than this, but I found this one with a 10 second Google search. These stats are crap. You're quick to argue, but slow to search. What gives? Jeremy Falcon

                    W 2 Replies Last reply
                    0
                    • J Jeremy Falcon

                      William E. Kempf wrote: Buzz terms don't have life spans of the length that OOP has already endured Explain "HaXoR", "1337", and "Visual Basic". William E. Kempf wrote: I think you're falling afoul of the initial "buzz" over OOP being that it was a silver bullet that would solve all of our problems. You're assuming again, and no I am not falling afoul as you put it. Funny how you aggreed with Richard that there's nothing I can't do in C that can be done in C++. And yes you shoot down my choice (that coincides with his) of saying OOP is not the gratest things since sliced bread. And, as far as marketing nuts, rookies, etc. OOP is a buzz word still. William E. Kempf wrote: Depending on how you use the term "STL", it *IS* part of the standard libs. I meant as in "non-templatized". Since your perception is so keen, I figured you'd pick up on it. William E. Kempf wrote: Actually, it doesn't make that much sense. Here's a very common C way of doing things: Don't confuse "as much experience" with "no experience". This is extremely rookie crap you're showing me here. And furthermore, I've never referred to coding when talking about overhead, but rather what the computer must endure (taxation-wise) to account for this methodology. William E. Kempf wrote: but no more so than similar techniques employed by C libraries such as the Win32 API. As an FMI, can you name a technique the Win32 API uses that has as much overhead? William E. Kempf wrote: http://www.oonumerics.org/MailArchives/oon-list/msg00073.php\[^\]. There has to be a lot more info than this, but I found this one with a 10 second Google search. These stats are crap. You're quick to argue, but slow to search. What gives? Jeremy Falcon

                      W Offline
                      W Offline
                      William E Kempf
                      wrote on last edited by
                      #25

                      Jeremy Falcon wrote: Funny how you aggreed with Richard that there's nothing I can't do in C that can be done in C++. And yes you shoot down my choice (that coincides with his) of saying OOP is not the gratest things since sliced bread. And, as far as marketing nuts, rookies, etc. OOP is a buzz word still. I see no contradictions in anything I said. And I certainly did not "shoot down your choice... of saying OOP is not the greatest things (sic) since sliced bread." We'll have to agree to disagree about OOP being a buzzword, but regardless, it's a well proven methodology. Jeremy Falcon wrote: Don't confuse "as much experience" with "no experience". I never assumed anything along these lines. Jeremy Falcon wrote: This is extremely rookie crap you're showing me here. And furthermore, I've never referred to coding when talking about overhead, but rather what the computer must endure (taxation-wise) to account for this methodology. The code I presented was meant to show there's nothing "the computer must endure (taxation-wise) to account for this methodology." The resulting overhead should have been identical for both the procedural design as well as the OOP design for my simplistic example. Jeremy Falcon wrote: William E. Kempf wrote: but no more so than similar techniques employed by C libraries such as the Win32 API. As an FMI, can you name a technique the Win32 API uses that has as much overhead? Certainly. WNDPROCs are a C way of getting polymorphic behavior, with the same amount of overhead as most C++ implementations of polymorphism (i.e. a vtable with a single level of indirection). Jeremy Falcon wrote: William E. Kempf wrote: http://www.oonumerics.org/MailArchives/oon-list/msg00073.php\[^\]. There has to be a lot more info than this, but I found this one with a 10 second Google search. These stats are crap. You're quick to argue, but slow to search. What gives? How are they crap? And why should I do your research? I don't have a vested interest in this. I showed that a simple Google search can get you the data you want, so go do the search. (BTW, I did find other sites showing similar figures.) Why are you taking this so personal? This is getting very close to degenerating into a flame war. William E. Kempf

                      J 1 Reply Last reply
                      0
                      • J Jeremy Falcon

                        William E. Kempf wrote: Buzz terms don't have life spans of the length that OOP has already endured Explain "HaXoR", "1337", and "Visual Basic". William E. Kempf wrote: I think you're falling afoul of the initial "buzz" over OOP being that it was a silver bullet that would solve all of our problems. You're assuming again, and no I am not falling afoul as you put it. Funny how you aggreed with Richard that there's nothing I can't do in C that can be done in C++. And yes you shoot down my choice (that coincides with his) of saying OOP is not the gratest things since sliced bread. And, as far as marketing nuts, rookies, etc. OOP is a buzz word still. William E. Kempf wrote: Depending on how you use the term "STL", it *IS* part of the standard libs. I meant as in "non-templatized". Since your perception is so keen, I figured you'd pick up on it. William E. Kempf wrote: Actually, it doesn't make that much sense. Here's a very common C way of doing things: Don't confuse "as much experience" with "no experience". This is extremely rookie crap you're showing me here. And furthermore, I've never referred to coding when talking about overhead, but rather what the computer must endure (taxation-wise) to account for this methodology. William E. Kempf wrote: but no more so than similar techniques employed by C libraries such as the Win32 API. As an FMI, can you name a technique the Win32 API uses that has as much overhead? William E. Kempf wrote: http://www.oonumerics.org/MailArchives/oon-list/msg00073.php\[^\]. There has to be a lot more info than this, but I found this one with a 10 second Google search. These stats are crap. You're quick to argue, but slow to search. What gives? Jeremy Falcon

                        W Offline
                        W Offline
                        William E Kempf
                        wrote on last edited by
                        #26

                        Jeremy Falcon wrote: William E. Kempf wrote: Depending on how you use the term "STL", it *IS* part of the standard libs. I meant as in "non-templatized". Since your perception is so keen, I figured you'd pick up on it. I missed this part in my first reply. What does "non-templatized" have to do with anything? If you choose not to use templates, that's your choice (though I can't see any rationale reason for the choice), but I see no bearing to this subject? William E. Kempf

                        J 1 Reply Last reply
                        0
                        • W William E Kempf

                          Jeremy Falcon wrote: William E. Kempf wrote: Depending on how you use the term "STL", it *IS* part of the standard libs. I meant as in "non-templatized". Since your perception is so keen, I figured you'd pick up on it. I missed this part in my first reply. What does "non-templatized" have to do with anything? If you choose not to use templates, that's your choice (though I can't see any rationale reason for the choice), but I see no bearing to this subject? William E. Kempf

                          J Offline
                          J Offline
                          Jeremy Falcon
                          wrote on last edited by
                          #27

                          William E. Kempf wrote: though I can't see any rationale reason for the choice Personal preference. Jeremy Falcon

                          1 Reply Last reply
                          0
                          • W William E Kempf

                            Jeremy Falcon wrote: Funny how you aggreed with Richard that there's nothing I can't do in C that can be done in C++. And yes you shoot down my choice (that coincides with his) of saying OOP is not the gratest things since sliced bread. And, as far as marketing nuts, rookies, etc. OOP is a buzz word still. I see no contradictions in anything I said. And I certainly did not "shoot down your choice... of saying OOP is not the greatest things (sic) since sliced bread." We'll have to agree to disagree about OOP being a buzzword, but regardless, it's a well proven methodology. Jeremy Falcon wrote: Don't confuse "as much experience" with "no experience". I never assumed anything along these lines. Jeremy Falcon wrote: This is extremely rookie crap you're showing me here. And furthermore, I've never referred to coding when talking about overhead, but rather what the computer must endure (taxation-wise) to account for this methodology. The code I presented was meant to show there's nothing "the computer must endure (taxation-wise) to account for this methodology." The resulting overhead should have been identical for both the procedural design as well as the OOP design for my simplistic example. Jeremy Falcon wrote: William E. Kempf wrote: but no more so than similar techniques employed by C libraries such as the Win32 API. As an FMI, can you name a technique the Win32 API uses that has as much overhead? Certainly. WNDPROCs are a C way of getting polymorphic behavior, with the same amount of overhead as most C++ implementations of polymorphism (i.e. a vtable with a single level of indirection). Jeremy Falcon wrote: William E. Kempf wrote: http://www.oonumerics.org/MailArchives/oon-list/msg00073.php\[^\]. There has to be a lot more info than this, but I found this one with a 10 second Google search. These stats are crap. You're quick to argue, but slow to search. What gives? How are they crap? And why should I do your research? I don't have a vested interest in this. I showed that a simple Google search can get you the data you want, so go do the search. (BTW, I did find other sites showing similar figures.) Why are you taking this so personal? This is getting very close to degenerating into a flame war. William E. Kempf

                            J Offline
                            J Offline
                            Jeremy Falcon
                            wrote on last edited by
                            #28

                            William E. Kempf wrote: WNDPROCs are a C way of getting polymorphic behavior I can see your point with the callback schema. But, considering this is a Win32 and not a C issue (directly) this overhead would apply to all Windows applications. So, you wouldn't really get a benefit from using C++ (in this manner) over C when coding for Win32 (or many other GUIed/message-based OSes as they implement similar techniques). William E. Kempf wrote: How are they crap? And why should I do your research? I thought you were trying to prove the point of C++ supremacy? It takes some work ya know. ;) William E. Kempf wrote: BTW, I did find other sites showing similar figures. Fine then, but if they present things like the other one I don't think I'll be thoroughly convinced. As they did not present the grandiose pile of information that I was hoping for. William E. Kempf wrote: Why are you taking this so personal? I'm not. I have a certain "style" of writing if you will. For instance, I call a lot of things crap. Don't take offense. William E. Kempf wrote: This is getting very close to degenerating into a flame war. By whom? Jeremy Falcon

                            W 1 Reply Last reply
                            0
                            • J Jeremy Falcon

                              William E. Kempf wrote: WNDPROCs are a C way of getting polymorphic behavior I can see your point with the callback schema. But, considering this is a Win32 and not a C issue (directly) this overhead would apply to all Windows applications. So, you wouldn't really get a benefit from using C++ (in this manner) over C when coding for Win32 (or many other GUIed/message-based OSes as they implement similar techniques). William E. Kempf wrote: How are they crap? And why should I do your research? I thought you were trying to prove the point of C++ supremacy? It takes some work ya know. ;) William E. Kempf wrote: BTW, I did find other sites showing similar figures. Fine then, but if they present things like the other one I don't think I'll be thoroughly convinced. As they did not present the grandiose pile of information that I was hoping for. William E. Kempf wrote: Why are you taking this so personal? I'm not. I have a certain "style" of writing if you will. For instance, I call a lot of things crap. Don't take offense. William E. Kempf wrote: This is getting very close to degenerating into a flame war. By whom? Jeremy Falcon

                              W Offline
                              W Offline
                              William E Kempf
                              wrote on last edited by
                              #29

                              Jeremy Falcon wrote: I can see your point with the callback schema. But, considering this is a Win32 and not a C issue (directly) this overhead would apply to all Windows applications. So, you wouldn't really get a benefit from using C++ (in this manner) over C when coding for Win32 (or many other GUIed/message-based OSes as they implement similar techniques). I don't think you understand the point I was making. There's no "benefit" to using C++ in this case. What I'm pointing out is that you can do no better in C when implementing a polymorphic call than occurs in C++. The myth of virtual method overhead lies in two factors. The first is simply that the overhead is no different from any such techniques you'd employ for polymorphism even in Assembler. The second is in the fact that polymorphic calls are usually abused by beginners in OOP, which leads to the mistaken belief that they add uneccessary overhead. Jeremy Falcon wrote: William E. Kempf wrote: How are they crap? And why should I do your research? I thought you were trying to prove the point of C++ supremacy? It takes some work ya know. 1) You didn't answer the first question. 2) I'm not trying to prove C++'s supremacy. I don't believe in such forms of advocacy. Use the right tool for the job, and when multiple tools will do just as well, choose the one you're more comfortable with. I'm only trying to dispell the notion that C++ causes unecessary overhead. Jeremy Falcon wrote: William E. Kempf wrote: BTW, I did find other sites showing similar figures. Fine then, but if they present things like the other one I don't think I'll be thoroughly convinced. As they did not present the grandiose pile of information that I was hoping for. Again, you have to answer my question before I can hope to provide the data you want. After all, the link I sent you shows the actual output of running OOPACK, so I can't fathom what else you'd want? William E. Kempf

                              J 1 Reply Last reply
                              0
                              • W William E Kempf

                                Jeremy Falcon wrote: I can see your point with the callback schema. But, considering this is a Win32 and not a C issue (directly) this overhead would apply to all Windows applications. So, you wouldn't really get a benefit from using C++ (in this manner) over C when coding for Win32 (or many other GUIed/message-based OSes as they implement similar techniques). I don't think you understand the point I was making. There's no "benefit" to using C++ in this case. What I'm pointing out is that you can do no better in C when implementing a polymorphic call than occurs in C++. The myth of virtual method overhead lies in two factors. The first is simply that the overhead is no different from any such techniques you'd employ for polymorphism even in Assembler. The second is in the fact that polymorphic calls are usually abused by beginners in OOP, which leads to the mistaken belief that they add uneccessary overhead. Jeremy Falcon wrote: William E. Kempf wrote: How are they crap? And why should I do your research? I thought you were trying to prove the point of C++ supremacy? It takes some work ya know. 1) You didn't answer the first question. 2) I'm not trying to prove C++'s supremacy. I don't believe in such forms of advocacy. Use the right tool for the job, and when multiple tools will do just as well, choose the one you're more comfortable with. I'm only trying to dispell the notion that C++ causes unecessary overhead. Jeremy Falcon wrote: William E. Kempf wrote: BTW, I did find other sites showing similar figures. Fine then, but if they present things like the other one I don't think I'll be thoroughly convinced. As they did not present the grandiose pile of information that I was hoping for. Again, you have to answer my question before I can hope to provide the data you want. After all, the link I sent you shows the actual output of running OOPACK, so I can't fathom what else you'd want? William E. Kempf

                                J Offline
                                J Offline
                                Jeremy Falcon
                                wrote on last edited by
                                #30

                                William E. Kempf wrote: I don't think you understand the point I was making. You are making assumptions again. Furthermore, I do understand the point. That's why I said "I can see your point." I was merely stating the C or C++ irrelevence so that A: I could lay it out in English for confirmation and B: for the readers (if there are any left) of this thread. William E. Kempf wrote: You didn't answer the first question. What question? The one about Bjarne's quote? I already did answer that. If it's not that question, then I'm afraid I have no idea what your question is. William E. Kempf wrote: I'm not trying to prove C++'s supremacy. No, but you are going back and forth between OOP's performance (in C++) versus its overall validity in the first place. My stance is I don't think OOP solves any problems that programming languages didn't solve before - period. The issues programmers faced when coming from ASM to C are not the same ones when the time came to merge from C to C++. I used the OOPACK reference when on the topic of performance, but overall and performance aside I believe OOP is not my savior. (Also take no implications from that because I did not say it was yours either - you seem to assume a lot). As far as performance, I still don't see any gains over C when using C++, even in a non-OOP fashion. I do agree, however, that C++ does allow you to use both when the need arises, and I'll use it if my job requires it. But, personally I prefer not to. Jeremy Falcon

                                W 1 Reply Last reply
                                0
                                • J Jeremy Falcon

                                  William E. Kempf wrote: I don't think you understand the point I was making. You are making assumptions again. Furthermore, I do understand the point. That's why I said "I can see your point." I was merely stating the C or C++ irrelevence so that A: I could lay it out in English for confirmation and B: for the readers (if there are any left) of this thread. William E. Kempf wrote: You didn't answer the first question. What question? The one about Bjarne's quote? I already did answer that. If it's not that question, then I'm afraid I have no idea what your question is. William E. Kempf wrote: I'm not trying to prove C++'s supremacy. No, but you are going back and forth between OOP's performance (in C++) versus its overall validity in the first place. My stance is I don't think OOP solves any problems that programming languages didn't solve before - period. The issues programmers faced when coming from ASM to C are not the same ones when the time came to merge from C to C++. I used the OOPACK reference when on the topic of performance, but overall and performance aside I believe OOP is not my savior. (Also take no implications from that because I did not say it was yours either - you seem to assume a lot). As far as performance, I still don't see any gains over C when using C++, even in a non-OOP fashion. I do agree, however, that C++ does allow you to use both when the need arises, and I'll use it if my job requires it. But, personally I prefer not to. Jeremy Falcon

                                  W Offline
                                  W Offline
                                  William E Kempf
                                  wrote on last edited by
                                  #31

                                  Jeremy Falcon wrote: William E. Kempf wrote: I don't think you understand the point I was making. You are making assumptions again. Read the quote again. I very explicitly said "I don't think". I'm not making an assumption, I'm trying to understand what you've said. Jeremy Falcon wrote: William E. Kempf wrote: You didn't answer the first question. What question? The one about Bjarne's quote? I already did answer that. If it's not that question, then I'm afraid I have no idea what your question is. The first question in the full quote you just made. To whit, why do you find the numbers to be crap. Jeremy Falcon wrote: William E. Kempf wrote: I'm not trying to prove C++'s supremacy. No, but you are going back and forth between OOP's performance (in C++) versus its overall validity in the first place. No, I haven't been. Jeremy Falcon wrote: I used the OOPACK reference when on the topic of performance, but overall and performance aside I believe OOP is not my savior. (Also take no implications from that because I did not say it was yours either - you seem to assume a lot). (You asked earlier why I thought this was degenerating into a flame. Constant implications that I assume a lot and other language you use has been escalating from the first posts, and is nearing the point of being offensive. I may drop out of this discussion very soon because of this, and because I have no vested interest in where the argument is going.) Obviously OOP isn't your savior. No one has ever suggested that it should be. The fact that you continually go back to this is more of an indication that you're the one "going back and forth between OOP's performance (in C++) versus its overall validity in the first place". OOP *is* valid. The reasons for it's validity have nothing to do with performance, however, and it's validity does not mean that it's the magical silver bullet that will solve all of our problems. I've not made this argument, so there's no reason to continually try and go back to this. Jeremy Falcon wrote: As far as performance, I still don't see any gains over C when using C++, even in a non-OOP fashion. Blitz and other libraries provide a speed benefit that you'll be hard to get from C. This occurs because of the compile time constructs (as opposed to runtime calculations) that can be achieved using templates. But I've not be

                                  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