Andrei Alexandrescu wrote:
bearophile wrote:
Walter Bright:
bearophile wrote:
I think C++ is almost a niche language at Google.
Every chance I get, I ask programmers what languages their
companies use. In the last 5 years, I've seen a steady shrinking of
the amount of C++ in use. Java and C# increasingly dominate.
Today C# is probably the best general-purpose language+IDE. It has
some problems, but they are usually tolerable. Its main problem is to
be a proprietary language. C# gives almost the freedom of C++ (and a
lot of more freedom than Java), while being "safe" and allowing for
good IDEs. Programming in C# is faster, you avoid many bugs and
corner cases present in C++ and the language is designed to be not
error prone. Probably C# is the language closest to D. The ecological
niche for D is shrinking, programmers like VMs with lot of libraries,
good IDE and good amount of modules available. I like D, but I don't
know if all the work spent on creating D is somewhat wasted effort.
My friends don't seem interested in a "better C++"...
An opposing trend is that single processor speed is plateau-ing, at
least for the time being. This means two things. One, parallelism is
becoming increasingly important. Second, efficient languages will be
sought after because new applications will always put more demands on
processing speed. Until recently, it was the case that processing speed
increased together with new software releases (leading to the bloatware
we know), but that needs to change now.
So I see the niche for D growing for the time being.
Andrei
I agree with Andrei, D is still in its infancy. C++ might be getting
less popular in certain domains, companies nowadays don't want to spend
much in development anymore and wrongly focus their resources on
marketing instead.
However I do believe D has the potential to tap into this market; it
gives much more freedom in the hands of the programmer than Java and is
community driven unlike C#, yet allow for faster and easier development
than C/C++ provides.
Once the shared qualifier gets an usable specification, and a few
different concurrent models are implemented in the runtime and
completely abstracted from any underlying libraries or mechanisms, D
will definitely have an edge over other languages. Most languages I've
seen implement either one concurrent model, or none.
I would love to see the D runtime implement at least four concurrent
models: vector processing (OpenCL), message passing, software
transactional memory and shared memory. I will definitely try and
implement them in my runtime when I get to it. I believe in giving a
complete set of tools to the programmer and letting them decide which is
best suited for what they're doing. And having all four of these models
in D would really put it at the front of concurrent programming languages.
I also agree with Walter about the lack of an IDE for D as powerful as
Visual Studio, I myself use poseidon only because of its overly simple
build process and simple project manager and debug in windbg. But that
isn't the case with most programmers who like or dislike a language
based on the IDE they use.
Jeremie