What is the D plan's to become a used language?
Bienlein via Digitalmars-d
digitalmars-d at puremagic.com
Mon Dec 22 00:51:15 PST 2014
>People have already suggested you to actually try vibe.d at
>least once before repeating "CSP is necessary for easy async"
>mantra.
I was trying to point out in some previous thread that the value
of CSP is that concurrent things from the code looks like
>>sync<< calls (not async, but sync). The statement above again
says async and not sync (in "CSP is necessary for easy async
mantra."). So, I'm not sure the point was understood.
Asynchronous programming is very difficult to get right and also
inherently difficult. Programming with channels where things look
like >>synchronous calls<< make concurrent programming immensely
easier than with asynchronous programming. If you have done
asynchronous programming for some years and then only spend 1/2 h
looking at concurrency in Go you will grasp immediately that this
is a lot lot simpler. All cores are being made used of very
evenly out of the box and are constantly under high load. You
have to work very hard for long time to achieve the same in
Java/C/C++/C#/whatever, because the threading model is
conventional. With CSP-style concurrency in Go it is a lot easier
to write concurrent server side applications and whatever you do
can hold 40'000 network connections out of the box. Yes, you can
do that with vibe.d as well. But for Go you only need to learn a
drop simple language and you can start writing your server
application, because all you need for concurrency is in the
language.
One idea would be to add a drop dead simple abstraction layer for
vibe.d to provide the same and sell D as a language for server
side development like Go. There is a need for a unique selling
point. Let's say the guys at Docker had chosen D, because it had
that already. Then they would realize that they also can use D
for general purpose programming and be happy. But first there has
to be a unique selling point. The selling point of a better C++
has not worked out. You have to accept that and move on. Not
accepting that time moves on is not an option.
>Sorry, but wrong and wrong. Go has a model of concurrency and
>parallelism that works very well and no other language has, so
>Go has technical merit.
The technical merit is in the concurrency model as already said
in the statement above. And currently is the time of server side
software development. When C++ was started it was time for some
better C. That time is over. Things change constantly and there
is nothing you can do about that. You can accept that things have
moved on and make use of the new chance of server side
programming as a new selling point or continue living in the
past. Go might be simplistic. So add CSP-style channels to D and
you can overtake Go in all respects very easily. Besides, Haskell
also has channel-based inter-process communication. If that is
not academical/scientiic backing then I don't know.
More information about the Digitalmars-d
mailing list