I'm suggesting that they should be honest about who their target
audience is.
Who is "they"?
C++ was thought complex from the start, it sure was at first standard.
The world invented VB, java, C# to be lighter on programmers and
learning curve. (Read Joel Spolsky on javaschools for the result... )
As of now C++ is still considered the second best pick for any
particular task, and beign multi-paradigm you can get way better
results than with a fast pick.
It ceratainly needs more brains on the programmer and more time to
master. If you have bad or lazy programmers, forget it. (industry
shows that those wreak havoc in any language, so its better to just
not use them...)
If the intended audience is academia, they're free to do
No, the intended audience is bright pragmatic programmers. With a
calling too. Those who are not afraid to read a few books, and pay
attention to learning instead of just experimenting in the editor
until something compiles and "looks like work".
I.e. terms like "lvalue" and "rvalue" were present IIRC even in the
K&R C book. and reference was in CFront 1.0. So what can be the the
problem understanding rvalue reference and lvalue reference? Guess
those without clue never understood the difference of rvalues, and
coded bugs wherever it mattered.
whatever they want with it. Make it as complicated and impractical as
humanly possible. But if they're going to claim that it's a language
for use in solving mainstream, practical problems, then that's what it
needs to be.
And it is too. Then if it is not fit for your field, don't use it. Or
if you like the '98 version, stick with that, the compilers will not
disappear, and most have switch to select the acting rules.
And currently, it's not anywhere close to that. It's no
longer the best at anything really,
Was it ever? And nowadays with more frameworks, toolsets, the pick is
even less based on language but the libraries, ready components and
stuff like that. For greenfield projects.
And where you contnue the existing job... you're stuck with most
elements anyway.
except perhaps at interfacing with
legacy C/C++ code. If you want to write code that's in a HLL and
still close to the OS you can use D now. Indeed, Andrei Alexandrescu
is even a big fan of D now. (I have no idea what his stance is on C++
anymore, he could very well still love it).
So then what? People make D, E, F -- should that seal C++? And leave
it as it is, not addressing the many problems and needs of the users?
Hope you don;t claim it is not used and there is shortage of projects
that will need maitainance further.
I'm also noticing that you've sidestepped the real question in every
single one of your responses, and instead chosen to respond with
subtle suggestions that I might, perhaps,
be too stupid to understand C++'s awesomeoness.
Honestly, your posts after the first indeed leave the impression of
empty flame and closed mindset. And there's nothing much to address,
in taste-based stuff. You have the right to not like C++ or think it
is [whatever]. Or flame it or bash it.
If you mean your examples seriously however -- you need to go down to
details and explain what is really YOUR problem. As those you picked
are quite straightforward. Not liek two-phased lookup, or
similars.
To which I would say that first of all, you should
try to answer the real question (in particular, why should someone
bother using a language for which the learning curve is unnecessarily
high compared to the productivity curve,
Inesrting 'why' before false statements will not form sensible
questions.
And the whole approach is fishy -- many people already know C++ and
used it for a deal of time -- so can pick up the difference easily and
enjoy.
Language and environment for a particular project is decided using
many factors -- but not from the big bang. I heard of 0 cases where
language were decided and company hired greenies all starting to learn
the decided language. Instead you either have the knowledge in house
or hire it. And beyond very trivial scope the learning curve of the
language itself is little compared to the buiness logic/the real
task.
If only language learnability counted we would all use nothing but
scheme, would we? Or maybe python. (and yeah, I suggest pick thse,
or anything if fits).
The advantage of C++ over many others is being multi-paradigm, so it
gives you more tools to cover the task with optimal ones. i.e. with
java you can learn faster, but if your task does not match very
closelt "the one JAVA WAY", you get hosed very soon, and will suffer
for the rest of your time. Whatever good programmers you get early or
late.
when you can achieve exactly
the same things in other languages much simpler),
That depends quite much. A big project can have many different
"things", that are easy to cover by many languages -- and you'll have
the problem unable to put together.
Or pick up such new, non-fitting stuff in V2.5 and later...
and second of all,
when you have to convince a large number of people (and believe me, I
don't think I'm the only one) who have been proponents of C++ for a
very long of C++'s long-term position in the world of programming
languages, then perhaps it's time for some inner reflection. Instead
of just denying everything people are saying without giving it some
actual thought, think about what people are saying.
Huh? The C++ standard is being made from like '93 and the process is
open to everyone. Whoever have something to say (add, remove, modify)
can do it in the committee directly or submit as proposal, or talk in
forums (comp.std.c++, this, this.moderated has several dozens of
people with drect influence, and pay attention to input.