Re: Blocking points for further D adoption
It's been suggested that DMD/LDC/GDC could be combined into a bundle, say DCC, and when you call DCC hello.d it will call dmd hello.d, and if you call DCC -fast hello.d it will call ldc hello.d or gdc hello.d This will give newcomers a different experience. I'm wondering if you couldn't achieve DMD's compilation speed in LDC by turning off some of the optimisation passes for debug builds. I understand that it will probably still be slower to compile, but if it's a negligible difference, and the community can fully support a single compiler I think that would be really good for D as a whole.
Re: Blocking points for further D adoption
On Thursday, 30 June 2016 at 23:48:29 UTC, Mike Parker wrote: DMD *is* the official compiler. That's what a reference compiler is. The other compilers are there for those who want them and are developed independently of DMD. It's no different from the situation with Java (with the exception that Oracle doesn't link to other compilers on their JDK download page). No one says you *have* to use LDC or GDC for production, or that you can't use DMD. It's just as a recommendation for those who care about squeezing out every last drop of performance. Sure, but overwhelmingly the community suggests to use DMD for development for fast compilation speeds and then use LDC/GDC for production. I'm not saying that the law mandates it but the impression I get as a newcommer to the community is that DMD is the ugly stepchild that isn't suitable for real world use case. As an example, look at whenever a benchmark comes up, someone will say "have you tried compiling with LDC?". I feel the is relevant since, as a systems language, performance should be a feature.
Re: Blocking points for further D adoption
As someone who has recently chosen D for a major project (a game/engine), I can confidently say that the biggest distinction for me between getting start with D versus something like Go is developer tooling. For Go I installed Go, installed a go intellij plugin, which automatically installed gocode and I was up and running. For D I had to install DMD (and learn about all the different compilers)[0], install dub, install workspace-d, install visual studio code (because the visual studio plugin had a linking error), and then I could finally have a complete setup. I think if dub were distributed with DMD, along with a utility to install global programs (that way a D plugin can just call `dub install workspace-d` or similar), it would make it very easy to get started with D. For reference, Cargo (Rust's package manager) allows `cargo install` https://github.com/rust-lang/rfcs/blob/master/text/1200-cargo-install.md [0] As much as the "reference compiler vs faster compiler" distinction, I feel like languages that have a single official compiler that you can use for development and production (e.g. Go/Rust) are much friendlier.