On 12/18/2011 11:51 AM, Ruslan Mullakhmetov wrote:
On 2011-12-18 00:56:33 +0000, Timon Gehr said:
C++11 does not change the relation between D and C++ a lot. Why do you
think it does?
Because it incorporates many features D declared to be unique to it
It does not, except for the most trivial stuff.
over
C++ like
- thread local variables
D never declared that to be unique over C++. In D, thread local is the
*default*. C++ does not have that, and it cannot have that.
- explicit concurrency model
?
- type deduction
C++11 cannot deduce function return value types. Except for lambdas.
C++11 cannot pass template lambda functions as template parameters.
- variadic templates
Yes, now you can pass a variable number of things to a C++ template. But
what kind of things you can pass is still severely restricted.
- generalized constant expressions
LOL! D has full CTFE. C++11's generalized constant expressions are a
joke in comparison.
Some comparison is made at http://d-programming-language.org/cpp0x.html
The language does not have to be changed to get that to work.
The C language doesn't have to be changed to get OOP working. There are
libraries written in plain C satisfying all requirements of OOP, e.g.
libav. Nevertheless C++ was born.
This analogy is broken. D is expressive enough that there is no point in
changing the language to support it. What part of MAS would require
language support to be done nicely?
So, what do i propose. To get it explicit in language and working out of
the box, like in Erlang. the only benefit over Erlang i currently see
that D is much more friendly for newcomers from C-like camp. The another
is possibility for embedded programming. I was surprised that there are
attempts to use MAS at embedded programming e.g. robotics where
different controlers are autonomous and communicate with each others.
comparing to other modern languages
IMO that is not a very important question. It is not a contest.
I thin that this is exactly context. I try to explain. D has reputation
of marginal language
D pushes the margin. :o)
with no concrete niche.
It does not need a 'niche' and that is a good thing. D is general
purpose. You can throw it at any task and expect good results. That is
why MAS does not need explicit language support.