-
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()]; }
-
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()]; }
>
>
>
>
>
>
-
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
-
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()]; }
> >
> >
> >
> >
> >
> >
>
-
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
-
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.
-
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
-
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
-
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
-
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.
-
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?
-
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
-
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.
-
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!
-
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
Forum Rules
|
Top DevX Stories
Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL
|
Bookmarks