May 21, 2021

On Friday, 21 May 2021 at 07:29:35 UTC, Ola Fosheim Grostad wrote:

>

On Friday, 21 May 2021 at 07:07:19 UTC, Paulo Pinto wrote:

>

[...]

What do you propose that D should do?

I am not in a position to do anything more than propose ideas that can be developed into something that both satisfies the high level D programmers and the low level programmers and try to build some common ground. Building common ground takes time and repeated communication. You need to consider many proposals and evolve them to get to a good solution.

Nim seems to have considered and tested several options before landing on ARC, that is the right approach. Don't settle for anything before you have explored the options.

In my opinion a task based GC + shared RC should satisfy the needs of both groups and most single threaded code would not need many changes.

Do like those projects, the powers at the steering wheel should stick with the original design and push it no matter what, instead of switching direction every couple of years and never finishing it.

May 21, 2021

On Friday, 21 May 2021 at 08:43:44 UTC, Paulo Pinto wrote:

>

Do like those projects, the powers at the steering wheel should stick with the original design and push it no matter what, instead of switching direction every couple of years and never finishing it.

There is no future for a glorified scripting language, there are too many powerful alternatives for scripting. That is effectively proposing long tail decay as a strategy.

D has to support those that use D for scriptlike programming today, but there is no future in it, if that is all it aspires to do well.

May 21, 2021

On Friday, 21 May 2021 at 08:43:44 UTC, Paulo Pinto wrote:

>

Do like those projects, the powers at the steering wheel should stick with the original design and push it no matter what, instead of switching direction every couple of years and never finishing it.

The reason we want to move away from tracing GC is because of this, to quote Araq in this thread.

https://forum.dlang.org/post/fttikqwuygkdmpbfocdh@forum.dlang.org

But Nim actually bets on RC because it's much more amenable to manual optimizations and because it works well with custom memory management, making it a good fit for "systems programming".

If D wants be a viable option in embedded and systems programming, it has to move away from the tracing GC it has today. This is one of the big reasons D doesn't gain popularity. For high level scripting languages, there are plenty of alternatives.

May 21, 2021

On Friday, 21 May 2021 at 09:02:32 UTC, IGotD- wrote:

>

popularity. For high level scripting languages, there are plenty of alternatives.

Exactly, to do high level well you are also better off using a JIT as it opens for new and interesting language smantics (and performance).

May 21, 2021

On Friday, 21 May 2021 at 09:25:06 UTC, Ola Fosheim Grostad wrote:

>

On Friday, 21 May 2021 at 09:02:32 UTC, IGotD- wrote:

>

popularity. For high level scripting languages, there are plenty of alternatives.

Exactly, to do high level well you are also better off using a JIT as it opens for new and interesting language smantics (and performance).

Let us also remind ourself that almost anything that can be done in batch in parallell will run faster in the cloud on rented compute-nodes. That space is moving to fast for small players...

May 21, 2021

On Friday, 21 May 2021 at 08:43:44 UTC, Paulo Pinto wrote:

>

Do like those projects, the powers at the steering wheel should stick with the original design and push it no matter what, instead of switching direction every couple of years and never finishing it.

I'm glad D did not follow that literally. Remember, templates are the result of breaking that rule and changing direction early in D history.

But of course you're right that a prior direction should always have favour over new directions.

May 21, 2021

On Friday, 21 May 2021 at 08:51:08 UTC, Ola Fosheim Grostad wrote:

>

On Friday, 21 May 2021 at 08:43:44 UTC, Paulo Pinto wrote:

>

Do like those projects, the powers at the steering wheel should stick with the original design and push it no matter what, instead of switching direction every couple of years and never finishing it.

There is no future for a glorified scripting language, there are too many powerful alternatives for scripting. That is effectively proposing long tail decay as a strategy.

D has to support those that use D for scriptlike programming today, but there is no future in it, if that is all it aspires to do well.

Something like gVisor, runc, Android GPU Inspector or USB Armory could have been made better in D, but I digress, apparently it is just glorified scripting.

May 21, 2021

On Friday, 21 May 2021 at 09:02:32 UTC, IGotD- wrote:

>

On Friday, 21 May 2021 at 08:43:44 UTC, Paulo Pinto wrote:

>

Do like those projects, the powers at the steering wheel should stick with the original design and push it no matter what, instead of switching direction every couple of years and never finishing it.

The reason we want to move away from tracing GC is because of this, to quote Araq in this thread.

https://forum.dlang.org/post/fttikqwuygkdmpbfocdh@forum.dlang.org

But Nim actually bets on RC because it's much more amenable to manual optimizations and because it works well with custom memory management, making it a good fit for "systems programming".

If D wants be a viable option in embedded and systems programming, it has to move away from the tracing GC it has today. This is one of the big reasons D doesn't gain popularity. For high level scripting languages, there are plenty of alternatives.

Why bother with D given the competition?

https://www.f-secure.com/en/consulting/foundry/usb-armory

https://www.astrobe.com/

https://www.ptc.com/en/products/developer-tools/perc

https://www.aicas.com/wp/products-services/jamaicavm/

https://tinygo.org/

http://www.ulisp.com/

https://makecode.microbit.org/

https://www.wildernesslabs.co/

Just reboot memory managment yet again, better make it sooner than Go gets its first generics release by the end of the year, though.

May 21, 2021

On Friday, 21 May 2021 at 09:57:32 UTC, Dukc wrote:

>

I'm glad D did not follow that literally. Remember, templates are the result of breaking that rule and changing direction early in D history.

It's interesting to see how D would turn out without templates however. Template metaprogramming comes with a cost, such as forever dooming yourself to subpar IDE experience.

May 21, 2021

On Friday, 21 May 2021 at 10:53:28 UTC, JN wrote:

>

It's interesting to see how D would turn out without templates however. Template metaprogramming comes with a cost, such as forever dooming yourself to subpar IDE experience.

I think templates aren't the problem, rather the corner cases introduced in their implementation, making it hard to implement correct reasoning in IDEs.