Re: Blocking points for further D adoption

2016-07-08 Thread dalailambda via Digitalmars-d
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

2016-06-30 Thread dalailambda via Digitalmars-d

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

2016-06-30 Thread dalailambda via Digitalmars-d
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.