Andrei's list of barriers to D adoption
Ola Fosheim Grøstad via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 7 03:11:27 PDT 2016
On Tuesday, 7 June 2016 at 09:29:35 UTC, Russel Winder wrote:
> That is the current state after 7 years of development, and at
> least three GCs. The arguments about GCs in the Go mailing list
> were almost similar to those in these D mailing lists.
It probably was. I only followed those mailing lists when Go was
first launched and people didn't complain then, but they
complained about lacking exceptions and non-null pointers.
I knew Go users complained about GC performance after some time
(when trying to use it in production), but I didn't know they
complained about having a GC?
> However it is, and always has been, emphasized as a systems
> programming language. Their "strap line" is effectively that GC
> is not a problem for systems programming. And they are right.
They initially said it was a systems programming language, but
they later turned around and said it isn't and isn't trying to
be. Go is a high level language, it does not try to give unbiased
access to hardware semantics. So it cannot be considered a system
level language. I am not even sure if Rust fully qualifies atm.
> Which is why D has no problem with being a GC language.
Well... that remains unproven. :-) And I don't agree.
> If C++ and Rust can only offer 20% improvement they are dead in
> the water.
I meant that by not having a GC C++ can get approx 20%
improvement over Go with the same code as the Go code by writing
idiomatic. There is also overhead when making system calls and
also C-calls in Go, thanks to the GC.
That said, in the cloud it makes a lot of sense to not use a
system level language and use a high level "virtual" environment
so that you can upgrade hardware without affecting the behaviour
of services.
If Go was positioned as a system level language it would be dead.
> I would love to create a CSP thing for D but I cannot give the
> time to do this on my own.
I don't use CSP in Go... The only thing I care about regarding Go
is: high level (not particularly hardware dependent), GC, http,
significantly faster than Python for web-servers, AppEngine
support and good searchable online documentation (traction).
If Go was a system level language I would not consider using it
actually and I am only starting to adopt it, very very slowly, as
Python still have many advantages over Go in production. I am
never going to use Go for something I couldn't do with Python.
So to me C++ and Go have disjunct application areas. Rust and D
mostly are in the C++ domain, with a little bit more overlap with
Go than C++, but not much.
That said, if the basic simplicity-oriented design philosophy in
D1 had been refined, then D could have taken on Go. As it stands,
I don't think D can without making very radical changes to the
language.
More information about the Digitalmars-d
mailing list