On Sunday, 11 March 2018 at 07:59:53 UTC, rumbu wrote:
On Sunday, 11 March 2018 at 01:10:28 UTC, psychoticRabbit wrote:
On Sunday, 11 March 2018 at 00:36:19 UTC, Dylan Graham wrote:
And personally, depending on the problem, C# is better to
program in than D. I still don't know why C# programmers are
willing to give up C# and prefer to use D.
C# is vastly surperior for what it does.
Because, even the language creators seem to not recognize this,
D looks like C# with *native compilation*, the syntax is 95%
identical. Basically, if my source code doesn't use any .NET
framework function, it will compile successfully with dmd
without any (major) change.
I suppose that every C# programmer is enthusiastic on the first
contact with the D language, but fails to keep his enthusiasm
when he sees Phobos. C# programmer's mind is locked in the OOP
world and Phobos looks like a mess from his point of view.
The problem is that D stagnates and in the same time C#
evolves. Sometimes I feel like the C# language team is using D
as inspiration for the new features, starting with C# 7.0, a
lot of D concepts were introduced in the language: local
functions, '_' as digit separator, binary literals, ref
returns, tuples, templates, immutability. Guess what the next
version of C# has on the table: slices.
In the same time, D delegates new features (and sometime
existing ones) to library implementation, instead of assume
them in the language syntax.
My opinion is that the day when C# will compile to native (on
any platform), the C# developer interest in D will drop
instantly.
It's a good thing not bad that other languages are inspired by
what works. Languages aren't in a vicious battle to the death, a
Hobbesian war of all against all. If C# gets better, that's
great!
I don't think D is stagnating at all - on the contrary, it's
amazing to see the ecosystem flourishing, no matter where you
look - documentation, adoption, libraries, commercial adoption.
I think it's reasonable to disagree with the strategic decision
made to move capabilities from compiler to libraries. But you
really have to make an argument about why you disagree if you are
you expect to be persuasive because there is a thought-through
argument for the choices made, which I am sure you must be
familiar with.
I don't think it matters much whether you are right about what
happens to C# programmer interest in D dies as soon as C# native
cross-platform is ready because D is quite an ambitious language
and doesn't need to depend on adoption from any one community to
continue growing at an impressive rate. As it happens though, as
an empirical matter I doubt it.
C# slices look great. I wanted to use them for generating
wrappers for our analytics. Not that easy for that purpose, from
what I could see. Looks like the primitives are stack only, and
I tried to figure out how to use them elsewhere and gave up
because it wasn't that easy.
If Phobos looks like a mess to C# programmers, so much the worse
for C# programmers. However I doubt they this is true in the
general case. It's better in many ways, but different and
unfamiliar and everything unfamiliar is disconcerting in the
beginning.