grauzone wrote:
It matters because Java is used a lot in multithreaded applications,
and it is gc based. The gc is not a disastrous problem with it.
For one, Java has an infinitely better GC implementation than D. Yeah,
this isn't a problem with the concept or the language specification, but
it matters in reality.
I thought we were talking about a fundamental issue of concept and
language specification.
There's no way a shared GC is ever going to be scalable with multicores.
If I'm wrong and it can be made scalable, I'd like to see it. Not just
in theory, but in D.
I believe there's plenty that can be achieved with it first. D has a
fairly simple GC implementation in it right now, probably early 90's
technology. It could be pushed an awful lot further.
If you want to help out with it, you're welcome to.
Erlang is entirely based on immutability of data. The only "cruft"
they got rid of was mutability!
You could understand your argument as "having both is cruft". Maybe D2
would be better if we removed all mutable types?
Pure functional languages (which is what not having mutable data are)
are forced to buy into a whole 'nother set of problems (see "monads").
My impression is Erlang does one thing very very well (multithreading)
and everything else, not so good.