Why D is not popular enough?
John Burrton via Digitalmars-d
digitalmars-d at puremagic.com
Tue Aug 30 03:50:17 PDT 2016
On Tuesday, 30 August 2016 at 08:34:23 UTC, eugene wrote:
> On Tuesday, 30 August 2016 at 08:00:35 UTC, Markus wrote:
>> D has its roots in C++ (and C) but is full fledged now and
>> should
>> represent its features and strength WITHOUT continuously
>> referencing C++ and without this repetitive "without mistakes".
>> ...
>> From my point of view this is misleading for people coming to D
>> first time.
>
> i think it is to invite C\C++ developers to use D instead of
> what they now use. I dont think D currently can supersede
> neither C\C++ nor java, since both sides have a huge amount of
> libs, frameworks as it's a key why they are still highly used,
> though java lacks in speed of evolution and C++ is becoming
> more complex and C lacks abstractions like OOP
One thing that put me off looking a D again for a long time was
the code example on the front page.
Perhaps like many people, I like C, I liked early C++ as being a
much better C, but I look at "Modern" C++ with dismay. I liked C
and early C++ because they were systems programming languages,
where you could always see and understand the mapping from the
language to the underlying machine, both for instructions and
memory usage. Modern C++ has lost this. It's no longer considered
"best practice" to write code that maps directly to simple
machine constructs and use libraries when you want something
"bigger". I look at C++ with dismay now. Everything they added
works by "magic" or template "tricks" where you have little or no
idea how the underlying code works or how memory is used without
going into real depth.
This is why I've looked for a new language and I think D fits
that quite well. It's not lost the plot like C++ seems to have
done. it's simple to write and understand, but it has higher
level constructs when you want them.
This is why the example on the front page put me off for a long
time :-
stdin
.byLineCopy
.array
.sort!((a, b) => a > b) // descending order
.each!writeln;
It makes the language look like some weird high level functional
language where you don't ask how it works and you shouldn't care
how it maps to the machine instructions and memory.
I realize that the same is actually fairly simple using ranges
etc. and have no complaints about the code or having it as a
sample.
But it reminded me of haskel and functional programming, and
memory management where it all just works "by magic" and you're
patted on the head and told not to worry about it.
I feel this is a good example for later on, and I'm in no way
complaining about the code but a very bad thing for the first
thing you see on the front page.
I'm willing to admit I might be the only one :P But I'd much
rather see the "better C" side as my first view of typical D code
than this.
More information about the Digitalmars-d
mailing list