On Wednesday, 16 April 2014 at 13:06:56 UTC, Bienlein wrote:
Can you give a concrete example of what features would be
easier if it was built-in?
My point is that multi-threading/concurrency should be very
simple. Go has channels and goroutines and that's it. That does
not make concurrency simple, but a lot simpler than when using
locks, semaphores, mutexes, etc. D already has some very nice
actor-style approach towards concurrency, which also offers a
very nice simple approach towards concurrency.
What Go can offer is something like "spawn as many thousand
threads as you like". This is independent of vibe.d, vert.x or
whatever. At least on my machine I cannot spawn more than 5000
D kernel threads as the machine runs out of resources. Being
able to spawn as many thousand threads as needed without caring
about it seems to be an impotant aspect for being an
interesting offering for developing server-side software. As I
already said the FiberScheduler by Sean Kelly could achieve
something in that direction. That would make a big difference
for using D for server-side applications beyond the argument of
being more productive than C++.
Maybe we should "spawn" a new thread for this discussion. I'm
sure this is of interest for everyone on this forum.