Feedback from the Gripes and Wishes Campaign
GrimMaple
grimmaple95 at gmail.com
Fri May 19 11:43:06 UTC 2023
On Thursday, 18 May 2023 at 23:12:15 UTC, Theo wrote:
> D has little to no chance of ever having persistent,
> large-scale traction.
>
> It simply cannot compete with the other languages out there, in
> that arena.
I disagree, strongly. D suits several areas incredibly well, even
as is. For example, I built this
https://github.com/GrimMaple/mwverify UI (!) app in about 20
minutes from scratch. And it uses zero C dependencies, it's Full
D.
Besides that, D suits game developemnt really well, thanks to its
easily controllable garbage collection and access to low level
features to speed up your code when necessary. And while the GC
implementation is sometimes lacking, just having a GC that you
can decide when to run, gives you a great coding speed advanatage
over C/C++, where you would spend most of your time thinking
about proper memory management (shared pointers aren't proper
memory management).
It also has a great advantage over C#/Java, being compiled
natively. And with the use of LDC, you can achieve executables as
lightning fast as C/C++ executables.
> That D could compete with C++ or C# (in terms of wide-spread,
> persistent and large-scale use) well... that's absurd.
Again, I disagree. In fact, I came to D __from__ C++ and C#.
Because I got tired of C++'s bs. And I got tired of C# being
_slow_.
> D's is an experimental language. The should become the ideal
> vision of itself.
While this is de-facto true, it doesn't have to be like that. I
have been vouching for a stable D branch for about a year now,
because I'm sick of having to fix my frameworks with literally
__every__ new compiler version. The older the framework, the more
breakage happens.
> Once everyone finally realises this, that realization is what
> will take D forward.
>
> Taking D forward, will not come about by creating a vision for
> persistent, large-scale traction. That is a delusion, created
> in peoples minds.
I think that the purpose of a language is to create software. And
D doesn't really help with achieveing that. The language itself
does, but the infrastructure around it and its release cycles
clearly don't. Recently, dmd deprecated `alias this` for classes.
Do you have any idea how devastating that change was for any
third party that used it? Now, if such feature was used, any
class that used it would have to be split to `before` and `after`
branches, creating quite a lot of tech debt, deprecation
messages, and `version` to make this monstrocity at least
remotely usable. And how do you expect me to even think about
wrting third party when I know it will be broken by language
developers in near future? Again, such breaking has been
happening to `dlangui` with almost every new version of the
compiler. I'm getting tired of fixing breakage instead of fixing
`dlangui` itself.
And do I have to mention that I have to make sure that the
framework code compiles with older compilers? Because people
might use `apt install dmd`, and get a compiler that's about 1
year out of date. That requires me to have different versions of
compiler set-up, and I have to make sure that users are able to
compiler & run my framework.
> D has also long-needed an experimental branch, to help motivate
> ideas, participation, and use. ImportC should have gone
> straight into an experimental branch, and no found its way into
> production branch until it does what it claims to do (which is
> still doesn't!).
I don't think that is necessary. D already has everything it
needs to gently slide in experimental changes/features. It's just
not being used properly. For compiler features, there are
`preview` switches. For phobos, there's `std.experimental`.
Unfortunately, big compiler changes, like mentioned above
deprecation of alias this, or ImportC for that matter, weren't
hidden behind a preview switch. Heck, ImportC didn't even go
through DIP process! And `std.experimental` is a synonim for
graveyard, from where nothing gets out to actual `std`. Logger is
the only exception to the case, I think.
> Instead, stagnation in stewardship is what has come to define
> the D programming language.
I don't think that it can be attributed to stagnation itself, I
think Walter (and other core D devs) need to get out of the
compiler / phobos and start writing something useful in D. Apps,
frameworks, websites, whatever. Something that can be put on the
dlang.org main page under "Apps written in Full D". This way they
would learn how frustrating D is in real world, and maybe they
will stop breaking stuff and introducing features nearly nobody
asked for.
More information about the Digitalmars-d
mailing list