DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Page 1 of 19 12311 ... LastLast
Results 1 to 15 of 277

Thread: Why C++ is Annoyingly Esoteric

  1. #1
    Jeff Johnson Guest

    Why C++ is Annoyingly Esoteric


    "Ted" <TTarney@hotmail.com> wrote:
    >
    >Ya, see that's what I get for trying to be nice. So can you explain what
    >is so "annoyingly esoteric" about C++?


    1) Nested curly brackets-- pointless and ugly
    2) Use of "<<", "::", "#", ";", "!=" -- all bizarre shorthand
    3) What language does the word "cout" come from??? Is that French? Dutch?
    Irish??
    4) The C++ language does not provide a matrix type with an inversion operator
    or a string type with a concatenation operator.
    5) The downside of the backward compatabilty of the C languages is that the
    language has never been cleaned up. We are stuck with mediocre decisions
    made a LONG time ago....
    6) The typical line of C++ code expresses a lot more than the average line
    of Basic. This terseness makes the language opaque.
    7) The comment system is also another example of pointless shorthand. I
    say, bring back the REM statement!!!
    8) C was not designed with numerical computation in mind.


    -- Jeff




    // An example of why C++ is annoyingly esoteric

    #include <iostream>

    int main()
    {
    std::cout << "Hello, world!\n";
    }





    // Another example

    #include<iostream>
    #include<algorithm>
    #include<string>

    using namespace std;


    int count(const string& s, char c) // count occurrences of c in s
    {
    int n = 0;
    string::const_iterator i = find(s.begin(),s.end(),c);
    while (i != s.end()) {
    ++n;
    i = find(i+1,s.end(),c);
    }
    return n;
    }


    void f()
    {
    string m = "Mary had a little lamb";
    int a_count = count(m,'a');

    cout << "\"" << m << "\" contains " << a_count << " 'a's\n";
    }

    int main()
    {
    f();

    return 0; // redundant in ISO C++
    }




    // A strange doo-dad...

    enum Token_value {
    NAME, NUMBER, END,
    PLUS='+', MINUS='-', MUL='*', DIV='/',
    PRINT=';', ASSIGN='=', LP='(', RP=')'
    };




    // Completely Bizarre stuff

    template<class T> class Slice_iter {
    valarray<T>* v;
    slice s;
    size_t curr; // index of current element

    T& ref(size_t i) const { return (*v)[s.start()+i*s.stride()]; }







  2. #2
    clyde Guest

    Re: Why C++ is Annoyingly Esoteric


    um gee as opposed to

    I put function arg in parens but I don't put proceedure args in parens unless
    I leave out call

    or I must use set to assign objects but can't use it to assign primatives


    or write command that prepends a ' to every line written to a file (in the
    name of god why?)

    I could go on, but why bother how bout you actually learn the language before
    critising it.

    clyde

    "Jeff Johnson" <johnsonjs@hotmail.com> wrote:
    >
    >"Ted" <TTarney@hotmail.com> wrote:
    >>
    >>Ya, see that's what I get for trying to be nice. So can you explain what
    >>is so "annoyingly esoteric" about C++?

    >
    >1) Nested curly brackets-- pointless and ugly
    >2) Use of "<<", "::", "#", ";", "!=" -- all bizarre shorthand
    >3) What language does the word "cout" come from??? Is that French? Dutch?
    >Irish??
    >4) The C++ language does not provide a matrix type with an inversion operator
    >or a string type with a concatenation operator.
    >5) The downside of the backward compatabilty of the C languages is that

    the
    >language has never been cleaned up. We are stuck with mediocre decisions
    >made a LONG time ago....
    >6) The typical line of C++ code expresses a lot more than the average line
    >of Basic. This terseness makes the language opaque.
    >7) The comment system is also another example of pointless shorthand. I
    >say, bring back the REM statement!!!
    >8) C was not designed with numerical computation in mind.
    >
    >
    > -- Jeff
    >
    >
    >
    >
    >// An example of why C++ is annoyingly esoteric
    >
    >#include <iostream>
    >
    >int main()
    >{
    > std::cout << "Hello, world!\n";
    >}
    >


    >
    >
    >
    >
    >// Another example
    >
    >#include<iostream>
    >#include<algorithm>
    >#include<string>
    >
    >using namespace std;
    >
    >
    >int count(const string& s, char c) // count occurrences of c in s
    >{
    > int n = 0;
    > string::const_iterator i = find(s.begin(),s.end(),c);
    > while (i != s.end()) {
    > ++n;
    > i = find(i+1,s.end(),c);
    > }
    > return n;
    >}
    >
    >
    >void f()
    >{
    > string m = "Mary had a little lamb";
    > int a_count = count(m,'a');
    >
    > cout << "\"" << m << "\" contains " << a_count << " 'a's\n";
    >}
    >
    >int main()
    >{
    > f();
    >
    > return 0; // redundant in ISO C++
    >}
    >
    >
    >
    >
    >// A strange doo-dad...
    >
    >enum Token_value {
    > NAME, NUMBER, END,
    > PLUS='+', MINUS='-', MUL='*', DIV='/',
    > PRINT=';', ASSIGN='=', LP='(', RP=')'
    >};
    >
    >
    >
    >
    >// Completely Bizarre stuff
    >
    >template<class T> class Slice_iter {
    > valarray<T>* v;
    > slice s;
    > size_t curr; // index of current element
    >
    > T& ref(size_t i) const { return (*v)[s.start()+i*s.stride()]; }
    >
    >
    >
    >
    >
    >



  3. #3
    Jeff Johnson Guest

    Re: Why C++ is Annoyingly Esoteric


    Pardon me clyde...

    I didn't intend to Bash C or start a fight-- but my intention is merely to
    illustrate why C is less readable to me. Although I do not know C, I do
    believe I'm qualified to point out the things that make it hard for ME to
    understand it!!!

    I am not making an assertion that C++ stinks. In fact-- I'm considering
    writing a General Ledger system in it. I believe that the consensus on this
    newsgroup is that C++ is the most versatile and stable language around.

    However I must point out that you do not attempt to refute my case that C++
    is in fact annoyingly esoteric. You merely point out some of the more annoying
    qualities of VB-- and (ack!) point out my ignorance of the C language.

    I do not claim to be an expert in C++, nor do I claim that VB is free of
    annoyances-- but I DO claim that the difference between "x = ++Z" and "X
    = z++" is obnoxious!!! (Even the clever pun in the name of the language
    is annoying.... I always thought the "++" stood for "extended twice"....
    There is no C+, though....)

    If I truly am a hoplessly ignorant buffon, then your post does nothing to
    enlighten this poor hapless 'programmer'.... (Yes... it's in quotes because
    I presently write in VBA-- and we all know that isn't REAL programming....)


    "clyde" <clyde@yahoo.com> wrote:
    >
    >um gee as opposed to
    >
    >I put function arg in parens but I don't put proceedure args in parens unless
    >I leave out call
    >
    >or I must use set to assign objects but can't use it to assign primatives
    >
    >
    >or write command that prepends a ' to every line written to a file (in the
    >name of god why?)
    >
    >I could go on, but why bother how bout you actually learn the language before
    >critising it.
    >
    >clyde



  4. #4
    Jonathan Allen Guest

    Re: Why C++ is Annoyingly Esoteric

    > I put function arg in parens but I don't put proceedure args in parens
    unless
    > I leave out call


    That has been fixed in VB.Net. Now you always use parens if there are
    arguments. They remain optional otherwise.

    > or I must use set to assign objects but can't use it to assign primatives


    That has also been fixed in VB.Net. The Set notation is no longer used.

    > or write command that prepends a ' to every line written to a file (in the
    > name of god why?)


    If I remember correctly, there was Print and Write. One send the information
    literally, and the other formatted it.

    It doesn't matter though, since we now use "File System Objects" instead.

    And BTW, VB.Net uses the standardized System.IO classes that all the other
    languages now use.

    > I could go on, but why bother how bout you actually learn the language

    before
    > critising it.


    It seems you need to do the learning. But at least you successfully proved
    Jeff's 5th point about being able to clean up the language.

    --
    Jonathan Allen


    "clyde" <clyde@yahoo.com> wrote in message news:3b58e283$1@news.devx.com...
    >
    > um gee as opposed to
    >
    > I put function arg in parens but I don't put proceedure args in parens

    unless
    > I leave out call
    >
    > or I must use set to assign objects but can't use it to assign primatives
    >
    >
    > or write command that prepends a ' to every line written to a file (in the
    > name of god why?)
    >
    > I could go on, but why bother how bout you actually learn the language

    before
    > critising it.
    >
    > clyde
    >
    > "Jeff Johnson" <johnsonjs@hotmail.com> wrote:
    > >
    > >"Ted" <TTarney@hotmail.com> wrote:
    > >>
    > >>Ya, see that's what I get for trying to be nice. So can you explain

    what
    > >>is so "annoyingly esoteric" about C++?

    > >
    > >1) Nested curly brackets-- pointless and ugly
    > >2) Use of "<<", "::", "#", ";", "!=" -- all bizarre shorthand
    > >3) What language does the word "cout" come from??? Is that French?

    Dutch?
    > >Irish??
    > >4) The C++ language does not provide a matrix type with an inversion

    operator
    > >or a string type with a concatenation operator.
    > >5) The downside of the backward compatabilty of the C languages is that

    > the
    > >language has never been cleaned up. We are stuck with mediocre decisions
    > >made a LONG time ago....
    > >6) The typical line of C++ code expresses a lot more than the average

    line
    > >of Basic. This terseness makes the language opaque.
    > >7) The comment system is also another example of pointless shorthand. I
    > >say, bring back the REM statement!!!
    > >8) C was not designed with numerical computation in mind.
    > >
    > >
    > > -- Jeff
    > >
    > >
    > >
    > >
    > >// An example of why C++ is annoyingly esoteric
    > >
    > >#include <iostream>
    > >
    > >int main()
    > >{
    > > std::cout << "Hello, world!\n";
    > >}
    > >

    >
    > >
    > >
    > >
    > >
    > >// Another example
    > >
    > >#include<iostream>
    > >#include<algorithm>
    > >#include<string>
    > >
    > >using namespace std;
    > >
    > >
    > >int count(const string& s, char c) // count occurrences of c in s
    > >{
    > > int n = 0;
    > > string::const_iterator i = find(s.begin(),s.end(),c);
    > > while (i != s.end()) {
    > > ++n;
    > > i = find(i+1,s.end(),c);
    > > }
    > > return n;
    > >}
    > >
    > >
    > >void f()
    > >{
    > > string m = "Mary had a little lamb";
    > > int a_count = count(m,'a');
    > >
    > > cout << "\"" << m << "\" contains " << a_count << " 'a's\n";
    > >}
    > >
    > >int main()
    > >{
    > > f();
    > >
    > > return 0; // redundant in ISO C++
    > >}
    > >
    > >
    > >
    > >
    > >// A strange doo-dad...
    > >
    > >enum Token_value {
    > > NAME, NUMBER, END,
    > > PLUS='+', MINUS='-', MUL='*', DIV='/',
    > > PRINT=';', ASSIGN='=', LP='(', RP=')'
    > >};
    > >
    > >
    > >
    > >
    > >// Completely Bizarre stuff
    > >
    > >template<class T> class Slice_iter {
    > > valarray<T>* v;
    > > slice s;
    > > size_t curr; // index of current element
    > >
    > > T& ref(size_t i) const { return (*v)[s.start()+i*s.stride()]; }
    > >
    > >
    > >
    > >
    > >
    > >

    >




  5. #5
    Phil Weber Guest

    Re: Why C++ is Annoyingly Esoteric

    > What language does the word "cout" come from?

    Jeff: English: I think it's an abbreviation of "console out."
    ---
    Phil Weber



  6. #6
    Ted Guest

    Re: Why C++ is Annoyingly Esoteric


    "Jeff Johnson" <johnsonjs@hotmail.com> wrote:
    >
    >I didn't intend to Bash C or start a fight-- but my intention is merely

    to
    >illustrate why C is less readable to me. Although I do not know C, I do
    >believe I'm qualified to point out the things that make it hard for ME to
    >understand it!!!


    That's right. It is less readable to you, don't you forget that.

    >I am not making an assertion that C++ stinks. In fact-- I'm considering
    >writing a General Ledger system in it. I believe that the consensus on

    this
    >newsgroup is that C++ is the most versatile and stable language around.


    BS. That is not true. The consensus here is "C++ is too **** hard". You
    have already proved that point by this post.

    >However I must point out that you do not attempt to refute my case that

    C++
    >is in fact annoyingly esoteric.


    Esoteric in the fact that you have to know what you're doing?

    >I do not claim to be an expert in C++, nor do I claim that VB is free of
    >annoyances-- but I DO claim that the difference between "x = ++Z" and "X
    >= z++" is obnoxious!!!


    This is control my man. You have the option of overloading ++ for types
    so that you can control how the increment and decrements are done. You even
    have the choice of InterlockedIncrement and Decrement for threaded versions.
    Hmm, does VB have this sort of control and power. Not knowing C++, you
    have no clue what you are missing in VB. The bad thing about knowing C++
    first(if you did know it, unlike those on this group who will come back with
    why they left C++ for VB Land. Face it you left because you couldn't hang)
    is going to VB makes you realize how much control and power you have in C++
    and lack in VB. So you not knowing C++ leaves you with no authority to say
    what is "annoyingly esoteric" about C++.

    >I presently write in VBA-- and we all know that isn't REAL programming....)


    Right. You said it not me.

    Now on to this garbage(rubbish if you're from the UK).

    >>1) Nested curly brackets-- pointless and ugly

    Ok, so having to tell whether or not a function is a function or a sub routine
    is useful. The return type should tell.

    >>2) Use of "<<", "::", "#", ";", "!=" -- all bizarre shorthand

    So having the ability to overload these operators is bizarre? I've said
    it before if you cannot understand semi colons you deserve VB and vice versa.

    >>3) What language does the word "cout" come from??? Is that French? Dutch?

    Irish??
    Option Explicit, What the **** is that?

    >>4) The C++ language does not provide a matrix type with an inversion >>operator

    or a string type with a concatenation operator.
    That's what classes are for. Do you want everything done for you. Write
    your own. The problem with you is that you get it done by someone else and
    you just never know what you are getting. In C++ even though the STL is
    there, there are still times when its lack of performance and efficiency
    doesn't warrant its use. As for the string, well you show your ignorance
    once again. std::string, CString , CComBSTR, etc. There are many out there.

    >>5) The downside of the backward compatabilty of the C languages is that
    >>the language has never been cleaned up. We are stuck with mediocre >>decisions

    made a LONG time ago....
    What do you mean WE? Lets see, C++, standards committee, VB, MS. Clean
    up what? The committee is there to see to the good of the language not to
    some sniveling(yes VB devs) crybaby who doesn't like the how increment and
    decrement are implemented. So, once again you show your ignorance. The
    committee works round the clock.

    >>6) The typical line of C++ code expresses a lot more than the average >>line

    of Basic. This terseness makes the language opaque.
    Once again, you want it all done for you.

    >>7) The comment system is also another example of pointless shorthand.

    I
    >>say, bring back the REM statement!!!

    You my friend are a dumbass.

    >>8) C was not designed with numerical computation in mind.

    VB was? Boy VB is used in all types of real time environments.

    Sorry Jeff, you are clueless when it comes to C++. You point out all of
    these knitpicky things that you don't like, well as C++ devs, you work with
    constructs provided you don't cry to MS and ask for more to be done to make
    your life easier.



  7. #7
    Larry Serflaten Guest

    Re: Why C++ is Annoyingly Esoteric


    "clyde" <clyde@yahoo.com> wrote
    >
    > um gee as opposed to
    >
    > I put function arg in parens but I don't put proceedure args in parens unless
    > I leave out call


    The parentheses are included when you use Call on a Sub, if you omit Call,
    then Functions use them, Subs do not, and properties use an = sign.

    > or I must use set to assign objects but can't use it to assign primatives


    Like Let, which was used to assign primatives, that will soon be gone....

    > or write command that prepends a ' to every line written to a file (in the
    > name of god why?)


    Why duplicate function? Print already handled output to a file, Write simply
    includes the formating needed "so the data can always be read and correctly
    interpreted using Input".

    > I could go on, but why bother how bout you actually learn the language before
    > critising it.


    Isn't that like saying you must really experience a plane crash, before you can
    describe one? The fact that C derivatives are cryptic, is not news to anyone....

    LFS







  8. #8
    Kunle Odutola Guest

    Re: Why C++ is Annoyingly Esoteric


    "Ted" <TTarney@hotmail.com> wrote in message
    news:3b599f20$1@news.devx.com...

    > >I do not claim to be an expert in C++, nor do I claim that VB is free of
    > >annoyances-- but I DO claim that the difference between "x = ++Z" and "X
    > >= z++" is obnoxious!!!

    >
    > This is control my man.


    Actually it isn't. It's shorthand for increment. An aid to optimization in
    the days when it mattered. Now it is just part of C/C++ history.

    > You have the option of overloading ++ for types
    > so that you can control how the increment and decrements are done.


    How does this make the construct any more intuitive for someone that finds
    it "obnoxious" ?

    > You even
    > have the choice of InterlockedIncrement and Decrement for threaded

    versions.

    These are API services, nothing to do with C++ specifically and equally
    accessible to VB'ers.

    > Hmm, does VB have this sort of control and power.


    Yes. See above.

    > Not knowing C++, you
    > have no clue what you are missing in VB.


    Easy(ier) access to the low-level internals of the system. Most applications
    do not need this.

    > The bad thing about knowing C++
    > first(if you did know it, unlike those on this group who will come back

    with
    > why they left C++ for VB Land. Face it you left because you couldn't hang)
    > is going to VB makes you realize how much control and power you have in

    C++
    > and lack in VB.


    > So you not knowing C++ leaves you with no authority to say
    > what is "annoyingly esoteric" about C++.


    Since "annonyingly esoteric" is a subjective opinion, what "authority" do
    you have to questions his authority?


    > >>4) The C++ language does not provide a matrix type with an inversion

    >>operator

    > or a string type with a concatenation operator.
    > That's what classes are for. Do you want everything done for you. Write
    > your own. The problem with you is that you get it done by someone else and
    > you just never know what you are getting. In C++ even though the STL is
    > there, there are still times when its lack of performance and efficiency
    > doesn't warrant its use. As for the string, well you show your ignorance
    > once again. std::string, CString , CComBSTR, etc. There are many out

    there.

    With regards to strings, Jeff said "The C++ language does not provide....a
    string type with a concatenation operator"

    He is absolutely right of course and you show your ignorance. All the string
    representation you quote are from libraries, not the language.

    > >>5) The downside of the backward compatabilty of the C languages is that
    > >>the language has never been cleaned up. We are stuck with mediocre

    >>decisions

    > made a LONG time ago....
    > What do you mean WE? Lets see, C++, standards committee, VB, MS. Clean
    > up what? The committee is there to see to the good of the language not to
    > some sniveling(yes VB devs) crybaby who doesn't like the how increment and
    > decrement are implemented. So, once again you show your ignorance. The
    > committee works round the clock.


    Backwards compatibility is a trade-off against innovation. C/C++ - the
    language - stopped evolving years ago. That it is overseen by a standards
    committee has no bearing on that fact.

    > >>8) C was not designed with numerical computation in mind.

    > VB was? Boy VB is used in all types of real time environments.
    >
    > Sorry Jeff, you are clueless when it comes to C++. You point out all of
    > these knitpicky things that you don't like, well as C++ devs, you work

    with
    > constructs provided you don't cry to MS and ask for more to be done to

    make
    > your life easier.


    What Jeff is doing is expressing his opinion about C++. What you are doing
    Ted, is making a fool of yourself (yet again....)

    Kunle



  9. #9
    David A. Rothgery Guest

    Re: Why C++ is Annoyingly Esoteric

    "Kunle Odutola" wrote:
    >
    > "Ted" <TTarney@hotmail.com> wrote:
    >
    > > >>4) The C++ language does not provide a matrix type with an inversion
    > >>operator

    > > or a string type with a concatenation operator.
    > > That's what classes are for. Do you want everything done for you. Write
    > > your own. The problem with you is that you get it done by someone else and
    > > you just never know what you are getting. In C++ even though the STL is
    > > there, there are still times when its lack of performance and efficiency
    > > doesn't warrant its use. As for the string, well you show your ignorance
    > > once again. std::string, CString , CComBSTR, etc. There are many out

    > there.
    >
    > With regards to strings, Jeff said "The C++ language does not provide....a
    > string type with a concatenation operator"
    >
    > He is absolutely right of course and you show your ignorance. All the string
    > representation you quote are from libraries, not the language.


    Well, technically std::string is core C++, as the STL is part of the C++
    standard, and operator+ is overloaded to do a strcat on std::string.

    But this doesn't detract from the obvious... Ted doesn't know VB6 or
    vb.NET at all, seems to barely understand C++, and still considers
    himself a 'real programmer'.

    --
    Dave Rothgery
    Picking nits since 1976
    drothgery@myrealbox.com
    http://drothgery.editthispage.com

  10. #10
    Jeff Peil Guest

    Re: Why C++ is Annoyingly Esoteric


    "David A. Rothgery" <drothgery@myrealbox.com> wrote in message
    news:MPG.15c37834b779fe249896d6@news.devx.com...
    > Well, technically std::string is core C++, as the STL is part of the C++
    > standard, and operator+ is overloaded to do a strcat on std::string.


    I wouldn't go so far as to call it "core C++" as freestanding
    implementations are not required to include it However that is not to say it
    is not a part of the language.



  11. #11
    Jeff Johnson Guest

    Re: Why C++ is Annoyingly Esoteric


    Ted--

    The vehemence of your response over this issue is rather disturbing. Do
    you honestly think that you can prove me wrong by being rude?

    1) Personal attacks against me are irrelevant to the validity of my assertions.

    2) Shortcomings of VB are irrelevant.
    3) The fact that C++ is powerful and flexible is irrelevant to the validity
    of my assertions. In fact... I point out myself that this low level TERSE
    backward compatable nature of C++ is brought to us AT THE EXPENSE OF READABILITY.
    I am not commenting on the relative value of C++ power and control. I'm
    talking about the price of it.


    Snip:

    >>>6) The typical line of C++ code expresses a lot more than the average
    >>>line

    >of Basic. This terseness makes the language opaque.
    >Once again, you want it all done for you.


    Ted. You cannot say that terseness makes the language readable, easy to
    maintain, and easy to pickup, so you insinuate that I am a lazy. Wow.


    So, Ted, tell me... who do you think came up with a better system of notation
    for the Calculus: Newton or Leibniz?



  12. #12
    Mike Mitchell Guest

    Re: Why C++ is Annoyingly Esoteric

    On 21 Jul 2001 08:26:24 -0700, "Ted" <TTarney@hotmail.com> wrote:

    >>I didn't intend to Bash C or start a fight-- but my intention is merely

    >to
    >>illustrate why C is less readable to me. Although I do not know C, I do
    >>believe I'm qualified to point out the things that make it hard for ME to
    >>understand it!!!

    >
    >That's right. It is less readable to you, don't you forget that.


    It is less readable to everybody, even those like you who obviously
    like taxing their brains unnecessarily.

    >>However I must point out that you do not attempt to refute my case that

    >C++
    >>is in fact annoyingly esoteric.

    >
    >Esoteric in the fact that you have to know what you're doing?


    Esoteric in that no one uses it for business apps. Oh, a few, maybe.
    The ones who haven't yet discovered high level languages (C++ is
    assembler with a face). Try RAD and join the three million classic VB
    programmers whose outputs drive the corporate world.

    >>I do not claim to be an expert in C++, nor do I claim that VB is free of
    >>annoyances-- but I DO claim that the difference between "x = ++Z" and "X
    >>= z++" is obnoxious!!!


    Too darn right! If I were a C++ programmer, I'd feel personally
    affronted that I wouldn't be able to call it ++C.

    >This is control my man. You have the option of overloading ++ for types
    >so that you can control how the increment and decrements are done. You even
    >have the choice of InterlockedIncrement and Decrement for threaded versions.


    Like we're going to be doing that three times before breakfast!

    > Hmm, does VB have this sort of control and power.


    No, and who the heck wants it? (Oh, yes, I remember: C++ programmers
    apparently wallow in it!)

    > Not knowing C++, you
    >have no clue what you are missing in VB.


    Not knowing the Amazon rainforest means I don't have a clue what I
    might be missing in Central Park. Still doesn't mean I'm missing very
    much, though, apart from strange diseases, dangerous animals, and
    being eaten.

    >>>1) Nested curly brackets-- pointless and ugly

    >Ok, so having to tell whether or not a function is a function or a sub routine
    >is useful. The return type should tell.


    In VB we fathom this by looking at the type of call: With parentheses
    and a return variable we usually come to the conclusion that it's a
    function call. Without, well, we use lateral thinking here and say
    "It's a sub!". And at the actual procedure, VB helps us out with "Sub
    DoThis" and Function "Do That". VB is like that. An uncomplaining
    little helper, always willing to assist. Its C++ comrade in arms on
    the other hand says "Help? Moi? Gotta be kiddin', fellah! You've gotta
    learn these arcane curly brackets if ya wanna become a Real
    Programmer!" (Sorry 'bout the hip language, 'cos C++ is anything but
    hip.)

    >>>2) Use of "<<", "::", "#", ";", "!=" -- all bizarre shorthand

    >So having the ability to overload these operators is bizarre?


    Yep. Sure is bizarre. Like watching those bizarre attractions at
    fairgrounds where people stick pins through their cheeks. You *know*
    it's possible, but it kinda just seems, well, daft!

    > I've said
    >it before if you cannot understand semi colons you deserve VB and vice versa.


    What? I deserve VB because; I; can't; understand; semicolons? Hang
    about, I just looked on the box. No, it doesn't say anywhere "Ideal
    for those who cannot understand semicolons." Maybe I deserve VB for
    other reasons - like it's the ideal RAD language for producing apps
    quickly. Dumping the semicolons is just a byproduct toward
    productivity.

    >>>3) What language does the word "cout" come from??? Is that French? Dutch?

    >Irish??
    >Option Explicit, What the **** is that?


    Er, let me guess: English?

    >>>4) The C++ language does not provide a matrix type with an inversion >>operator

    >or a string type with a concatenation operator.
    >That's what classes are for. Do you want everything done for you.


    Well, ideally, yes. I mean, if you had more time to do the things you
    like to do (watching bizarre attractions, maybe), then surely you
    wouldn't wish to be cOOPed up indoors, slaving over a hot overloaded
    operator? We'd like the computer to do more of our thinking for us.
    That's why we invented them. Why buy a dog then bark yourself?

    > Write
    >your own. The problem with you is that you get it done by someone else and
    >you just never know what you are getting.


    You'll know soon enough when it doesn't work the way you want. Then
    you'll get the right tool from someone else who does know what you
    want. The big problem with re-use is, everyone keeps reinventing the
    wheel, and you're doing it again by admonishing "Write your own". We
    shouldn't need to write hardly anything. That's what RAD is all about.
    You paint a picture of your app and provide just enough logic to make
    it work. The less logic you need to write, the more producive you
    become. A picture says a thousand words, and a RAD design can replace
    a thousand lines of logic. "Write your own" is a recipe for bloatware.

    > In C++ even though the STL is
    >there, there are still times when its lack of performance and efficiency
    >doesn't warrant its use. As for the string, well you show your ignorance
    >once again. std::string, CString , CComBSTR, etc. There are many out there.


    Yes, I liked the look of that std::string. Not! Oh, and it's
    case-sensitive, too! Very intuitive, that.

    >>>5) The downside of the backward compatabilty of the C languages is that
    >>>the language has never been cleaned up. We are stuck with mediocre >>decisions

    >made a LONG time ago....
    >What do you mean WE? Lets see, C++, standards committee, VB, MS. Clean
    >up what? The committee is there to see to the good of the language not to
    >some sniveling(yes VB devs) crybaby who doesn't like the how increment and
    >decrement are implemented. So, once again you show your ignorance. The
    >committee works round the clock.


    I bet it *doesn't* work round the clock! What, 24/7? Even if it were
    working 'only' five days a week at 7 hours a day, that's a lot of
    standards they're perusing. Makes you wonder what's wrong with a
    language that needs so much policing. Like an unruly suburb in your
    neighbourhood where the cops also have to work round the clock to keep
    order.

    >>>6) The typical line of C++ code expresses a lot more than the average >>line

    >of Basic. This terseness makes the language opaque.
    >Once again, you want it all done for you.


    Er, I've said it before - yes, please!

    >>>7) The comment system is also another example of pointless shorthand.

    >I
    >>>say, bring back the REM statement!!!

    >You my friend are a dumbass.


    Excuse me, my hearing aid filters out noise. Did you say something?

    >>>8) C was not designed with numerical computation in mind.

    >VB was? Boy VB is used in all types of real time environments.


    Whether VB is used in real time environments or not, it is the world's
    most successful computer language, bar none. And if C++ were as
    simple, accessible and universal, it could have become as successful.
    The fact is, it wasn't, isn't, and hasn't.

    >Sorry Jeff, you are clueless when it comes to C++. You point out all of
    >these knitpicky things that you don't like, well as C++ devs, you work with
    >constructs provided you don't cry to MS and ask for more to be done to make
    >your life easier.


    Indeed we do want to make our lives easier. If that means paying
    someone something we can afford to do it for us, so be it. That's what
    I call being productive. You want to buy a bike then push it
    everywhere? We recognise the movement facilitator and don't need to
    know how the gear ratio does its stuff or the tyres' friction is less
    than our boots' (although, as you can tell, I do have an interest in
    knowing those things, too). We just climb on, pedal away, and enjoy
    the benefits, fools that we are for buying into such mad schemes!

    MM

  13. #13
    Kunle Odutola Guest

    Re: Why C++ is Annoyingly Esoteric


    "Jeff Peil" <jpeil@bigfoot.com> wrote in message
    news:3b5a1c39$1@news.devx.com...
    >
    > "David A. Rothgery" <drothgery@myrealbox.com> wrote in message
    > news:MPG.15c37834b779fe249896d6@news.devx.com...
    > > Well, technically std::string is core C++, as the STL is part of the C++
    > > standard, and operator+ is overloaded to do a strcat on std::string.

    >
    > I wouldn't go so far as to call it "core C++" as freestanding
    > implementations are not required to include it However that is not to say

    it
    > is not a part of the language.


    It isn't a part of the language.




  14. #14
    David Kroll Guest

    Re: Why C++ is Annoyingly Esoteric


    As someone who has done programming in both C++ and VB, I've been very amused
    by this thread. It seems like it can be summed up like this:

    VB Programmer: VB rules, C++ sucks

    C++ Programmer: C++ rules, VB sucks

    VB Programmer: No, you are wrong. VB rules, C++ sucks.

    C++ Programmer: I beg your pardon. C++ rules, VB sucks.

    [repeat, ad infinitum]

    I think both languages are useful in their own ways.

    VB allows you to do things very quickly and easily, with a minimum of fuss
    and trouble. For most jobs, it gives you enough power to complete your task.
    On the downside, there are many times when I've reached the limits of its
    power. Yes, there are times when you can get around these limitations with
    by judiciously using API calls, but I find that it's better to go to C++
    if you find yourself with too many API calls. Also, while the language is
    easy on the eyes, it is not a very elegant or consistent language. I understand
    that a lot of people consider this to be part of VB's charm, but it does
    add to the learning curve of an otherwise easy-to-learn language.

    C++ (Visual C++ in particular) does contain a lot of crypic operators and
    expressions, certain features do add a measure of complexity. However, for
    the most part, I find it to be a very versatile and elegant language. Most
    of the standard complaints that people have about C++ are because they cling
    to the C way of doing things, rather than using the improved C++ constructs
    (ex: null-terminated strings vs. the string data type). C++ also provides
    many features that VB doesn't expose (or doesn't expose easily). For Windows
    programming, MFC provides a much more complete abstraction of the Windows
    API than VB.

    No matter which programming language you use, I've found that writing a non-trivial
    program that does something useful in either language is hard. It's hard
    not because of the language, but because programming, by its nature, is a
    complex task.

    Well, that's just my two cents on this whole subject. I hope I didn't interrupt
    the flow of the usual "X is great, Y sucks" back-and-forth. Free free to
    continue. I'll get out of your way now!


  15. #15
    Jeff Peil Guest

    Re: Why C++ is Annoyingly Esoteric


    "Kunle Odutola okocha.freeserve.co.uk>" <kunle.odutola@<REMOVETHIS> wrote in
    message news:3b5ae0a2@news.devx.com...
    >
    > It isn't a part of the language.
    >


    Kunle,

    Sure it is,

    This isn't the place to discuss it, but if you care to venture over to
    comp.std.c++ and try to argue that the standard C++ library is not a part of
    the language, I'd be happy to head over with you, though I think you'll find
    few people willing to take your side (based on previous cases where the
    subject has come up.)

    The library is clearly described inside ISO 14882-1998 "Programming
    Languages -- C++" and it is not described as seperate from the language.

    Just because it isn't part of the compiler that does not mean it is not a
    part of the language.

    In fact pure separation between the two is pretty much impossible (consider
    cases like setjmp which are bound by the compiler's implementation, and at
    the same time create very real restrictions on a BE's ability to optimize
    when a call is made to setjmp within a function, or cases like the typeid
    operator which is tighly coupled to std::type_info, or exception handling
    which is tightly coupled with unexpected(), uncaught_exception(),
    terminate(), and std::bad_exception.)




Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center