On Monday, 6 June 2016 at 08:42:55 UTC, Russel Winder wrote:
On Mon, 2016-06-06 at 06:50 +0000, poliklosio via Digitalmars-d
wrote:
[…]
Please, elliminate GC.
Let's not. It is a USP against C++ and Rust. It forges a new
route to traction, cf. Go, Java, etc.
I should have been more specific here. I mean I want to
elliminate GC in my code. I don't mind if you or anyone else uses
GC. Even I use GC languages when writing things like scripts, so
I'm not a no-GC-because-I-say-so person.
Is it a unique selling point (USP) against C++ or Rust? I don't
think so. People who use the GC languages for business/scientific
apps don't care what is behind the scenes. Also, the relationship
between GC and productivity is a subtle point that requires some
CompSci background to grasp. I think D is far too complicated to
be marketed as even simpler than python or Go. Low-latency people
do care what is behind the scenes and they understandably want no
GC. That leaves high-performance high-latency people. If you
think you can find a niche there, fair enough, otherwise its not
a USP.
D's power is in its native-but-productive approach. This is an
improvement in C++ niches, not a simplified language for banging
end-user apps.
This also hurts the open source community. Why would I
write/opensource a high performance library if I know that
projects like AAA games are not going to use it anyway due to
GC
in D? On the other hand if I can write a library that
guarantees
to not use and not need garbage collector then even C and C++
projects can use it.
With GC, D doesn't play nice with existing C/C++ code.
There may be some instances where this is the case. Let them
use C++ or Rust. Fine. If AAA games people want C++ they will
use C++, for D they are a lost market.
Why would they not use D? D is a much better language for them as
well. To give some examples, in C++ code there is a ton of
boilerplate, while D code hardly has any. Also, the number of
bugs in a D program is smaller due to easier unittesting. Also,
templates don't cause day-long stop-and-learn sessions as in C++.
I don't think those people are a lost market.
And anyway D has a GC if you want and a no-GC if you want. Thus
this is not actually an issue anyway.
This is a big issue now due to lack of a comprehensive guide, as
well as holes in the language and phobos (strings, exceptions,
delegates). C++ doesn't have those holes.