

Stroustrup on The C++0x "Remove Concepts" Decision - scott_s
http://www.ddj.com/architect/218600111

======
huhtenberg
Woa .. this will sure upset Mr. Stepanov. The lack of the support for concepts
was one of his main concerns about the C++ even back in 1995. I'm sure his
feelings didn't improve dramatically since then.

    
    
      What is an iterator? Not a class. Not a type. It is a  
      concept. (Or, if we want to be more formal, it is what    
      Bourbaki calls a structure type, what logicians call a 
      theory, or what type theory people call a sort.) It is 
      something which doesn't have a linguistic incarnation 
      in C++. But it could. 
    

<http://www.sgi.com/tech/stl/drdobbs-interview.html>

------
gchpaco
I don't expect this to make C++0x any less of a train wreck--it would take an
act of God to do that at this point--but it's interesting to note that most
standards committees see their role as codification of existing practice,
whereas C++0x and the previous standard before it have had a marked tendency
toward invention.

~~~
thras
Do you really consider it a train wreck? There seem to be some useful new
features.

The tragedy, in my opinion, is that we don't have more to show from a decade's
work by so many brilliant people. C++ is straitjacketed by ISO
standardization.

~~~
huhtenberg
Design by committee is a tricky business, especially if Bijarne says they are
always aiming for the consensus and not a simple majority vote.

Even not considering C++, this approach is more likely to result in the
acceptance of a feature that everyone feels equally "meh" about rather than
something that "only" 80% really likes, but 20% opposes.

~~~
GeneralMaximus
Just a fun fact: Haskell was designed by a committee. Just saying that it's
not all bad :)

------
makecheck
It's okay for them to be a little conservative. As we've seen with the likes
of GNU extensions and Boost, it is certainly _possible_ to move forward
without perfect standardization.

But part of me also wants to put C++ on life support, and simply devote all
time to the improvement of D (akin to temporarily moving Python 2.x forward
until Python 3 is more mature).

~~~
chancho
Commercially, C++ is already on life support: it's no longer a general
applications language but rather a niche language. Microsoft supports it in
Visual Studio for the game industry and Intel supports it for the same as well
as the HPC market. For all the rhetoric over C++ (it will either save or
destroy C++ depending on who you talk to) its unlikely to make a big
difference either way.

I think D is pretty cool, but it has a lot farther to go with regards to
standardization as well as implementation. There is a current reddit thread
going over its shortcomings:

[http://www.reddit.com/r/programming/comments/93jh5/ask_progg...](http://www.reddit.com/r/programming/comments/93jh5/ask_proggit_the_d_programming_language_looks/)

Whether it wants to be or not, D is now in the same niche as C++, but without
either the maturity or commercial support that a niche language needs to
thrive. And that probably won't change now that the larger software world has
moved on.

~~~
GeneralMaximus
Qt and hundreds of KDE apps built on it are hardly niche. What about VLC?
Gecko? WebKit? LLVM? All niche projects?

I don't know about the commercial application space, but in FOSS C++ is alive
and well. And it isn't going anywhere for a long, long time.

For a new project, C++ is a much better choice than C, even if you don't use
all features of the language. The compilers are faster and better than ever,
and the libraries are great.

<UNRELATED> I, for one, have _never_ seen a decent quality desktop application
written in Java. C# has better apps because C# programmers seem to prefer
using Windows.Forms on Windows and GTK# on Linux. But _nothing_ beats the
speed and responsiveness of an application running on the bare metal.
</UNRELATED>

~~~
pfedor
_I, for one, have never seen a decent quality desktop application written in
Java._

I hear eclipse is pretty decent.

~~~
GeneralMaximus
I was kind of talking from the users' perspective.

------
thras
I really like C++. I use python, I use ruby, but I don't enjoy either of them
as much as C++. They feel "dumbed-down." And the speed has been nice many
times.

I feel that one of the things really holding C++ back is its development
model. The benevolent dictator open source approach seems to have proven
itself compared to C++'s problematic ISO-standard process. For one thing,
mistakes are locked in stone. Non-standardized languages handle mistakes
through versioning, which tends to be a much better bargain for all involved.

At the same time, the ISO-standardization means that C++ has some much more
computer-science orientated modules than you tend to see in other languages.
The amount of thought and optimization that goes into everything is mind-
boggling.

~~~
neilc
Given how enormously complicated C++98 is, let alone C++0x, I think the last
thing C++ needs is to jettison the standardization process in pursuit of
faster evolution. The evolution of C++ should be conservative: both because it
is widely deployed on many different platforms and compilers for doing
"serious" work, and because it already has far, far too much junk in it
already.

