May 18, 2023
On Thursday, 18 May 2023 at 12:30:43 UTC, Mike Parker wrote:
>
> ...

I do not accept the proposition (of some) -> 'no vision, no motivation'.

Putting that aside....

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.

That D could compete with C++ or C# (in terms of wide-spread, persistent and large-scale use) well... that's absurd.

D's is an experimental language. The should become the ideal vision of itself.

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.

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!).

If I had been in charge 10 years ago, the above is where my focus would have been,
and all the other languages (though used far more than D), would all be looking at D for new ideas.

D also needs (long overdue IMO) a rotating stewardship, like they have in FreeBSD.

Those stewards have a fixed time to make their mark, and then others get a change as well.

Instead, stagnation in stewardship is what has come to define the D programming language.



May 19, 2023
On Thursday, 18 May 2023 at 23:12:15 UTC, Theo wrote:

[...]

Great, a long treatise unrelated to Mike's post, written with the intention of Google bringing it up for the next 10 years.

May 18, 2023
On 5/18/23 16:12, Theo wrote:

> D's is an experimental language.

Sure.

> The should become the ideal vision of
> itself.

Speaking of selves, do you think your writing under pseudonyms is about your having a strong self? A little far-fetched but there is a theory out there about this thing called "unself" which you may find useful.

> If I had been in charge 10 years ago, the above is where my focus would
> have been,

I wish that were the case but for all I know, you are a bot that uses the pseudonym Theo these days. (I need to look in my Outlook filters for the earlier ones.)

> and all the other languages (though used far more than D), would all be
> looking at D for new ideas.

Don't they already do that? You mentioned C++ earlier... Don't you think they have been taking ideas from D?

Ali

May 18, 2023
Thank you, Mike!

The notes should be part of it.

On 5/18/2023 5:30 AM, Mike Parker wrote:
> A few notes:
> 
> * I've excluded Bugzilla issues that have since been closed
> * I've tried to include examples and suggestions that were provided along with the points, but I have cut out some bits that were irrelevant or extraneous.
> * I've not included compliments. I wanted to focus only on things we need to fix/change. But the compliments were received and much appreciated.
> * There were three pieces that I decided not to breakdown into actionable items and included in longform instead. Those are at the bottom of the document.
> * I'll probably update this list after our planning meeting tomorrow.
> 
> So, the next steps related to this. Generally, we need to:
> 
> * establish some high-level goals
> * go through this list to see what fits with those goals, what doesn't fit now but could be done later, and what is unlikely to ever fit any goals
> * discuss additional ideas from our own wish lists (and I'll update the document with those once I have them all)
> * prioritize everything we've decided fits our current goals
> * publish categorized task lists
> * work out who among us is responsible for what
> * get things done
> 
> That last one is the hard part. I'll have more to say about it when the time comes.
> 

May 19, 2023
On Friday, 19 May 2023 at 00:10:52 UTC, bachmeier wrote:
> On Thursday, 18 May 2023 at 23:12:15 UTC, Theo wrote:
>
> [...]
>
> Great, a long treatise unrelated to Mike's post, written with the intention of Google bringing it up for the next 10 years.

?? what ??

Everyone else gripes are welcome.. except mine?


May 19, 2023
On Friday, 19 May 2023 at 00:19:41 UTC, Ali Çehreli wrote:
>
> Don't they already do that? You mentioned C++ earlier... Don't you think they have been taking ideas from D?
>
> Ali

Yes. Precisely. That is my point.

I'd like those ideas to keep coming, and find there way into 'expermental' branch of D, and once they've demonstrated their worth (and correctness), put into 'production' D.

This is 'my' 'ideal' 'vision', of how I'd like to see D continued forward.

btw. If bots could think and write like I do, then humans would not be necessary anymore ;-)
May 19, 2023
On Friday, 19 May 2023 at 00:10:52 UTC, bachmeier wrote:
> On Thursday, 18 May 2023 at 23:12:15 UTC, Theo wrote:
>
> [...]
>
> Great, a long treatise unrelated to Mike's post, written with the intention of Google bringing it up for the next 10 years.

also. I don't get how my gripes are unrelated to post about gripes.

I also don't get the reference to google??

And btw. I've been using D for over a decade. So expect me to have gripes, just like anyone else (including yourself, no doubt).

Nothing in the past 5 years has motivated me, in any way at all, in regards the D programming language. That' really sad.

Anyway, I'll keep 'waiting....' I guess, till the next big announcement about >?>>>>??


May 19, 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.

May 19, 2023

On Thursday, 18 May 2023 at 12:30:43 UTC, Mike Parker wrote:

>

I feel like my blog post must have been mutilated a bit since I see only 1/3rd of my suggestions making a list that includes "swap to 1 indexing"

  • Im on team stepouv, the only conceivable future of languages improving is the re-separation of data structures and algorithms that share a language wide interface, you get m*n solutions out of m+n(x3 cause overhead) lines of code. D has... 1 good data structure, the built-in dynamic array, aa's aren't implemented yet and wont be for the foreseeable future and I hate their interface anyway, every part of strings design needs to be replace, auto decoding is stupid as is defining a fundamental data type in one-liner to be clever. D needs data structures.

  • The average person writting the algorithm code must have gotten some weird ideas in their head, cause a x3 over head seems like an under estimation for the level of complexity in the std.

  • There is a bunch of simple hacks to make ranges work, but you'd have to know them by heart as none are in the std, not even an identity map or .map!(a=>a)

  • d3 should simplify the range interface, expand the data structure libs drastically, include range hacks, and lower their standards of correctness.

May 19, 2023

On Friday, 19 May 2023 at 11:43:06 UTC, GrimMaple wrote:

>

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.

I haven't read Mike's post yet, i will right after this, but i wanted to address your reply first, because it kinda pains me

There are some features that are essential to be able achieve the vision D wants to achieve (pay as you go)

For example:

  • exception handing: why use EH when you can have your function return 2 values (error and result)

  • gc: why use classes/interfaces/new when you can just use a tagged union and pattern matching coupled with an Allocator API

This alone makes it so we can build a foundation of libraries that are both pragmatic and adhere to a "pay as you go" vision for the user

Now the GC discourse is no more! want to use a GC? just pass GCAllocator, wants to do it manually because you have certain requirement? (game) use this GeneralPurposeAllocator, or make your very own

Pragmatism is great, lets the user choose about what path to take rather than enforcing a path to the user with a specific assumption

>

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

Yes and No, for D it's not since it is blocking

You want to have full control over your memory allocation strategy anyways

Read about how people workaround GC problems in both Unreal/Unity, let's not come up with the same problems, that's not how you'll win users, why would they use something less popular, that has the same problems but worse?

Being pragmatic, and having an allocator API would solve the GC problem people have in both Unreal/Unity, they don't so they waste time workingaround

Be the solution to their problems, not a copy pasta, i always seen D as being the pragmatic solution, hence i choose to stick with D ~4 years ago, it's unfortunatly winding down as i read more people who are against having essential and foundational features