On Thursday, 15 March 2018 at 17:17:47 UTC, Dukc wrote:
On Sunday, 11 March 2018 at 07:59:53 UTC, rumbu wrote:
My opinion is that the day when C# will compile to native (on
any platform), the C# developer interest in D will drop
instantly.
I do write a commerical project in C#. But I have an opposite
feeling: The day D will easily compile to Javascript and be
able to fully interface with it, my wish to use C# will drop
pretty much instantly. I'm not even sure I would choose C# over
-BetterC D!
It can already compile to Javascript using LDC/Emscripten,
which is impressive, but you cannot interface with its strings
and classes without glue code, except perhaps with some
trickery. I have already tried doing some but so far for no
avail.
And that's not to say that C# would be a bad language. I didn't
hesistate to pick it over writing Javascript directly, and I
don't think Java or Python would be superior for my tastes
either. But it still isn't even a close match against D.
First, C# feels like it's hiding details from me, it kind of
wants to maintain an ivory tower illusion. It's very hard, if
possible at all, to control memory management. Libraries often
feel like they're dependant on IDE (Visual Studio), not just
the language.
Second, iterating in C# feels last-century standard. I like
LINQ, but it still is like Phobos with only forward ranges,
strange names and no thought put on avoiding needless heap
allocations. And it's foreach loop can't iterate by ref, which
means I often tend to iterate as if I was using C.
Third, expressive power suffers alot from lack of powerful
templates, Voldemort types and var keyword being much more
constrained in use than auto.
My quote is out of context. Somebody asked surprised why C#
developers are interested in D. For me (mainly a C# developer),
this is the main reason: native compilation (and this includes
memory management). I highlighted the fact that the C# team keep
implementing D specific ideas in each new version, so don't be
surprised if your list of D exclusive features becomes smaller
with each new C# iteration. My complaint was the fact that D
drops features or push them into library solutions.