Thread overview
My choice to pick Go over D ( and Rust ), mostly non-technical
Oct 08
jfondren
Oct 08
russhy
Oct 08
russhy
Oct 08
russhy
October 08
https://forum.dlang.org/post/vnkgayrbnokeufduuuba@forum.dlang.org

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
> First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion.
>
> [...]

General question: how much of this is still true?
October 08
On Friday, 8 October 2021 at 15:45:10 UTC, Imperatorn wrote:
> https://forum.dlang.org/post/vnkgayrbnokeufduuuba@forum.dlang.org
>
> On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
>> First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion.
>>
>> [...]
>
> General question: how much of this is still true?

All of it's still true.
October 08

On Friday, 8 October 2021 at 15:45:10 UTC, Imperatorn wrote:

>

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

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

>

First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion.

[...]

General question: how much of this is still true?

state of the language compared to back then:

  • there is a good requests library now
  • there is hunt framework as high performance HTTP client, but there aren't really a lot of resources on how to get started on it / userbase is small in general
  • regressions have gotten a lot better
  • code.dlang.org is much more stable, doesn't really crash a lot anymore
  • grpc has dub packages (thanks to symmetry)
  • imap has dub packages (thanks to symmetry)
  • PDF libraries have been published, you can use C libs too
  • awesome-d has been migrated to dlang-community, has been improved a lot
  • windows support has improved a lot
  • I would say VSC plugins work fine out of the box by now

It feels to me like the target audience is still as blurry as back then. Several of the issues there still persist.

October 08

On Friday, 8 October 2021 at 16:25:47 UTC, WebFreak001 wrote:

>

[...]

  • grpc has dub packages (thanks to symmetry)
    [...]

sorry, didn't mean to put the symmetry mention on this package there - actually haven't used that grpc library yet, it's from the hunt developers though, would assume it works well enough and is OOP.

October 08

On Friday, 8 October 2021 at 16:25:47 UTC, WebFreak001 wrote:

>

On Friday, 8 October 2021 at 15:45:10 UTC, Imperatorn wrote:

>

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

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

>

First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion.

[...]

General question: how much of this is still true?

state of the language compared to back then:

  • there is a good requests library now

i disagree, adding that libraries hurts build time a lot

>
  • there is hunt framework as high performance HTTP client, but there aren't really a lot of resources on how to get started on it / userbase is small in general

i disagree, it is a library with ton of OOP usage rather than composition, it mimics dead java frameworks, similar to vibe-d and requests, adding it makes your project build time become VERY bad

>
  • regressions have gotten a lot better

i agree

>
  • code.dlang.org is much more stable, doesn't really crash a lot anymore

i agree, but search is very bad

>
  • grpc has dub packages (thanks to symmetry)
  • imap has dub packages (thanks to symmetry)

can't comment on that i haven't tried, but knowing it is supported is a nice thing

>
  • PDF libraries have been published, you can use C libs too
  • awesome-d has been migrated to dlang-community, has been improved a lot

can't comment on that

>
  • windows support has improved a lot

i agree

>
  • I would say VSC plugins work fine out of the box by now

It feels to me like the target audience is still as blurry as back then. Several of the issues there still persist.

When you compare with Go, everything remains quick to compile, everything is scalable and the GC is a low latency one

Betting on Hunt/Vibe-d is the best way to follow Java and Dotnet in the graveyard

Go ate everyone's cake because they focus on simplicity without sacrifying everything else

It makes iterating on projects super fast, and it makes the projects easy to debug, all of that facilitates contributors work, there is a reason why it grew so fast and is no the language of choice for cloud native

I try my best to maintain insanely fast compile time in my projects, that is why i avoid STD and most libraries, because consuming them prevents me to reach and maintain that goal

October 08

And i wanted to add:

Supporting X or Y, or Z is useless if you don't have the culture and the taste for elegent softwares

Something that doesn't need magic to build, something that doesn't need decyphering code in order to debug it, and something that allows fast iteration tim so you don't waste your contributors time

Debugging DLS/SERVE-D is a PAIN IN THE ASS, waiting multiple double digit seconds on each code change HURTS iteration time, as a result the software doesn't improve and the quality of code drastically go downhill because changing / refactoring things becomes a PAIN and things die a slow death

October 08

It is bearable in java because they rely on IDEs, and they manage to still get decent compile time

Go's simplicity, and strict formatting rules helped them rise, we must learn from that and keep push simple and elegant libraries

  • fast to compile
  • easy to debug
  • composition over OOP

3 rules to encourage contributions, 3 rules to help grow an ecosystem

Two extra rule:

  • avoid GC at all cost until we get better GC story
  • prefer allocator aware APIs
October 08
On Friday, 8 October 2021 at 15:45:10 UTC, Imperatorn wrote:
> General question: how much of this is still true?

I'd say a lot of it is still true. Especially in terms of packages.

In languages like Go and C# you get standard interfaces for a lot of things (logging, HTTP, etc.). This means libraries all share a common ground to work together with, even when you use third party frameworks (Gin builds off of Go's standard HTTP stuff, Giraffe sits on top of ASP Core, C# graphql libraries integrate with the standard dependency injection stuff, etc.)

In D you have experimental packages at best, and dead dub packages at (common) worst. And libraries have no real integration with one another.

Everyone seems to prefer writing their own code, because for one reason or another, existing code just doesn't work/suit their use case/whatever, thus leading to most packages simply dying due to lack of interest, lack of maintainers, and so on.

D supports too many paradigms and wildly different usages (gc, nogc, betterc) that unless a package is completely "perfect", it seems to just be dropped off peoples' radars.

Is this even as big an issue as I feel it is? No clue.

Is there something we can even do about it? No clue.

And I've gone on about this a bit before, but in terms of a "get shit done" language, D isn't much of a competitor. If I want to get something tapped out quick and easy, I'd rather use C# or Go where everything is well tested, mostly well documented, and I don't have to deal with C libraries just to bridge the gaps in missing functionality (especially making sure the code builds cross-platform).

Bonus points is that I get to use a VSCode plugin that works more than 50% of the time, and is able to cover most of the language features. That's not a dig at code-d btw since I'm sure it does the best it can manage with D's flexible syntax.

In other words, there's just a lot of friction getting things done with this language, even though the benefits of the language itself are mostly worth the effort, sometimes it's just easier to drop to a more straightforward language + libraries.

With other languages I get the feeling of people rallying around specific things and the language itself, while with D I get the feeling of everyone being spread out, and only occasionally gathering together once in a while.
October 18
On Friday, 8 October 2021 at 18:05:47 UTC, SealabJaster wrote:
> And I've gone on about this a bit before, but in terms of a "get shit done" language, D isn't much of a competitor. If I want to get something tapped out quick and easy, I'd rather use C# or Go where everything is well tested, mostly well documented, and I don't have to deal with C libraries just to bridge the gaps in missing functionality (especially making sure the code builds cross-platform).

Are you talking about C# and Go with only their standard libraries or with additional libraries. In the latter case it would be difficult for any small language to compete, but if we make the assumption that projects only use the standard library then there is an argument to be made for creating a streamlined programming experience with a sensible default setup.

But one still needs to define the typical use scenario in order to determine what the best choice is… It is basically impossible to design in a vacuum, then one ends up with a mishmash of opinions.