What is D?
Abdulhaq
alynch4047 at gmail.com
Mon Apr 8 18:36:02 UTC 2019
On Sunday, 7 April 2019 at 13:05:14 UTC, Mike Franklin wrote:
> On Sunday, 7 April 2019 at 11:39:01 UTC, Abdulhaq wrote:
>> What is D?
>
> I think D started not as a better C++, but as a better Java. I
> think Walter saw the appeal of Java and wanted to explore
> making it compile to native binaries. There is evidence of
> this with things like `super`, single inheritance with multiple
> interface implementation, the garbage collector, etc. When D
> started it didn't have templates, and I even heard Walter
> forbade templates at first.
>
Mike's already given a good answer to this but yes Walter wrote a
compiler for Java a long time ago, and also gcc was able to
compile Java too
(https://en.wikipedia.org/wiki/GNU_Compiler_for_Java) which was
also unsuccessful - there doesn't seem to be a market for that.
> I also think D is more evolution than intelligent design. It
> has evolved so much over the years, moving away from a "native
> java" to to more of a "better C++". It think that has
> contributed much to its oddities, warts, and technical debt.
>
Yes it's evolved but was any other way practical?
> A few years ago D's slogan was changed to "Fast this, fast
> that, yada yada". I honestly don't know what it is because I
> read it once, immediately hated it, and forgot it. Prior to
> that change, D's slogan was "Modeling power, modern
> convenience, and native efficiency" See
> https://www.youtube.com/watch?v=Kn88228KSpQ for a presentation
> by Walter elaborating on this. <-- THIS IS D!
>
I do get the feeling that speed takes precedence over most other
features.
> I think over the past few years it has become apparent that D
> has also become a case study in design by introspection: See
> https://www.youtube.com/watch?v=Kn88228KSpQ for a presentation
> by Andrei elaborating on this.
>
I haven't watched this yet but keep meaning too. I have a
suspicion that it's a bit like duck typing so I should learn more
and find out if that's true or not. I can't help thinking that
that is what happened to ranges and now Andrei is trying to
tighten them up. No doubt I am totally wrong though!
You're points about other languages are well taken and
interesting. D does seem to do better here. I think what you
value about D is very representative of the body of D users - a
very powerful and expressive systems language. Safety comes below
expressiveness.
My feelings though are that the future all-conquering C++
replacement will be the language that gets safety right, while
providing properly isolated systems style code to do the
necessary dirty work, providing as many guarantees as possible
given that requirement. D has @system and @safe which are the
right direction but don't seem to provide sufficient safety. ATM
@safe seems to be subtractive meaning that Walter is slowly
picking away with new code that disallows constructs where (it
turns out) it doesn't actually provide safety. I'd rather have a
solution which was additive in the sense that it starts 100% safe
with less functionality (e.g. no raw pointers / systems style
code?) and then slowly more power can be opened up. My gut finger
in the air feeling is that D is 95% - 98% safe where it says it
is safe. The all conquering language that drives cars, flies
aeroplanes, controls robots for neurosurgery and governs
financial transactions, will be at least 99.99% safe and it won't
take great analysis for a reader of the code to have that
confidence.
I also agree that W&A have not managed the project in an optimal
way conducive to growing the numbers. Instead it seems they've
focused on what they enjoy doing - coding, not managing and
reviewing - that or, in Andrei's case it seems, doing the washing
up and hoovering in in preference to managing. I've all been
there!
>
> I'm giving D another try hoping Walter and Andrei are willing
> to embrace a little change.
>
In broad terms, what would you change?
> Mike
More information about the Digitalmars-d
mailing list