Gary Willoughby: "Why Go's design is a disservice to intelligent programmers"

via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Mar 28 05:32:55 PDT 2015


On Saturday, 28 March 2015 at 11:52:34 UTC, Sönke Ludwig wrote:
> You can access TLS from an event callback just as easy as from 
> a fiber.

Yes, but it is much easier to verify that you don't hold onto 
references to TLS if get rid of arbitrary call stacks when moving 
to a new thread.

> And why can't you do the same with fibers and schedule the 
> fibers accordingly?

You could, but that's even more work since you then need to 
encode progress in a way the scheduler can use to estimate when 
the task can complete and when it must complete.

> It's you who brought up the randomization argument. Tasks are 
> assigned to a more or less random thread that is currently in 
> the scheduling phase, so that your constructed situation is 
> simply *highly* unlikely.

I don't understand how randomization can help you here.

> They *do* get balanced over threads, just like requests get 
> balanced over instances by the load balancer, even if requests

A good load balancer measure back-pressure (load information from 
the instance) and fire up new instances.

> are not moved between instances. But IMO it doesn't make sense 
> to go further with this argument with some actual benchmarks. 
> It's not at all as clear as you'd like what the effects on 
> overall performance and on average/~maximum latency are in 
> practice for different applications.

This is something you can do on paper. A language feature should 
support a wide set of applications.


More information about the Digitalmars-d-announce mailing list