On Saturday, 20 December 2014 at 12:24:29 UTC, Paulo Pinto wrote:
On Saturday, 20 December 2014 at 12:19:34 UTC, Bienlein wrote:
I would say that D needs a usecase that puts it aside from
other languages. For Java this was the Internet. For Go it was
channel-based concurrency in conjunction with some style of
green threads (aka CSP). It is now the time of server side
concurrent programming. I would suggest to jump onto this
wagon and add channels and green threads to D. When people
successfully develop many server side systems this way as with
Go the news will spread by itself. No killer app for D needed.
Also Go does not have one.
-- Bienlein
Go has Google's sponsorship, Docker and CoreOS.
Message passing for concurrent server programming means
asynchronous programming. Asynchronous programming is inherently
difficult and error prone. I have done it for years and everyone
else who has can confirm this.
The big thing with CSP-style channels is that while things are
going on concurrently the code can be read like synchronous code.
This way a lot of people out there have built server side systems
with Go in record time. All the startups using Go are proof for
this.
There is really a lot of "technical data" and scientic papers
about this. The success of Go tells its own story. Also Rust will
have a module for CSP-style concurrent programming. That comes
for a reason.
This is the original paper titled "Communicating Sequential
Processes" by C. A. R. Hoare:
http://www.usingcsp.com/cspbook.pdf. CSP is not missing
"technical data". It has a solid basis and Go shows that it works
well. It has drawbacks like lack of pre-emptiveness, but things
like the C10K problem solved out of the box is more important to
many server side systems to be built.
Apparently, for D some commercial big spender has never popped
up. Killer apps to be developed need some good piece of fortune
to turn out successfull. But adding a more adequate
multi-threading/concurrency model to D and make it a success. And
that takes little resources compared to other alternatives to
make D more widely used.
Docker is not developed by Google. It is made by a company of its
own who was looking for a language suitable for server-side
concurrent programming. It could have been D if D better support
for this.