upvote
I found the lack of mature tooling to be hugely problematic. The Visual D extension always felt flimsy and unreliable when debugging D.

DUB also exhibits weird behavior. For example, I wanted it to produce separate debug and release binaries, which it won't do out of the box. Instead, it'll create the same binary for both configurations. Changing that behavior was more difficult than it needed to be. Maybe it's changed since then, but I didn't have a pleasurable experience.

reply
> And Dlang was, by far, the worst experience out of the lot. Firstly is the lack of adequate, comprehensive, and centralised tooling. I almost gave up when dmd could not even compile a freshly init'd project.

Yep this also happened to me when I tried D. I love the idea of the language and the syntax is great, but I really don't want to fight my tools when I'm working on a project.

reply
Hi there. I'm the serverino's author.

Could you please explain better what's wrong with it?

It could be useful to improve newcomers experience.

How did you choose serverino over other frameworks?

reply
Oh the issue isn't with serverino itself but with the lack of tooling-support for the language features that serverino makes heavy use of. And while serverino is open source, so one can ultimately view its source code, not having access to modern IDE type inspection adds a lot of unnecessary friction.
reply
Still curious: How did you choose Serverino among the many servers?
reply
Might seem silly, but the choice just came from looking at (https://code.dlang.org/search?q=websockets) and seeing that serverino is the only one maintained. vibe-d isn't listed there, I only learned about that later. Basically, serverino has good SEO.
reply
Thanks, good to know. Also the fact that you searched directly on the site is a clue for me :)
reply
How so, if I may ask?
reply
Well, you might have searched for GitHub or got there from some page where serverino was mentioned (forum, ...) or maybe someone suggested it to you in the community. Once a program of mine was mentioned in a telegram channel and I started seeing a lot of stars on github and I didn't understand why.
reply
Tangential, but which of the 7 ended up being the best experience?
reply
It's a tossup between Dart and Bun: Dart has better language features but Bun has better APIs. Since Bun is first and foremost a Javascript runtime, it inherits its annoyances and issues, like the complete lack of pattern matching, or switch expressions at all, or decent enums, etc. That said, Bun includes SQLite support and encryption out of the box, whereas Dart is heavily compartmentalised (https://pub.dev/publishers/dart.dev/packages). Imagine if, in Bun, importing "node:crypto" meant needing a "node:crypto" npm dependency. Dart ekes out the win though, I think.
reply
How did you build the rust project? The docs say:

> Most Rust programmers don't invoke rustc directly, but instead do it through Cargo. It's all in service of rustc though! If you want to see how Cargo calls rustc, you can

$ cargo build --verbose

reply
Sure, but everything seems to point users towards using the compiler, not the package manager. For example:

- The tour guide first recommends dmd (https://tour.dlang.org/tour/en/welcome/run-d-program-locally), though it does mention dub at the bottom

- Clicking "Documentation -> Command-line Reference" takes you to dmd, with only the barest mention of dub

- Even this post, the "Programming in D" book, tells you to use dmd and doesn't mention dub at all.

reply