D vs Go in real life

Chris Cain clcain at uncg.edu
Thu Nov 28 21:51:47 PST 2013


On Friday, 29 November 2013 at 05:14:14 UTC, brad clawsie wrote:
> First I tried installing dmd from source, which was fine but 
> then I would get strange errors about referring to a file 
> "object.d" when trying to build dub. Some poking around on the 
> web resulted in the advice of installing the pre-built dmd 
> binary that is in the release distribution.

I really have to agree. I recently had to set up an environment 
for contributing to phobos but the whole experience was a bit ... 
tedious. I ended up just using dmd.2.064.2.zip and putting the 
git repos in the src folder and making a bunch of scripts to move 
the built binaries into their correct positions. Being in the 
unique position of programming on Windows, Mac, and Linux, I've 
had to rewrite the coping script differently for each one. 
Windows is the worst for that sort of thing, but that's to be 
expected.

The whole build process is a lot more involved than it really 
should be. Ideally you should be able to clone dmd, phobos, and 
druntime and just have everything compile and be put into a 
relative path together and just "work". Maybe alert you if you 
don't have phobos and druntime to build. Ultimately, you really 
"have to" download the binary version if you want it to work 
transparently, but it would be nice if it were easy enough to 
build from source that a printed 1 page guide would get you 100% 
running.

> I feel HTTP serving is so common that it should be one of the 
> accepted "batteries included" by default.

That I'm not sure I'd agree with. Maybe getting stuff via HTTP 
(we have curl at a.t.m.) but serving HTTP files really needs 
something more substantial than I'd feel comfortable being in the 
standard library. Something too simple would likely not be used 
in favor of something like vibe.d while something the size of 
vibe.d probably is a bit too expansive to really be considered 
for part in the standard library. Not to mention the fact that 
vibe.d is in reasonably rapid development. The speed of vibe.d 
releases outpaces DMD releases and I think that's a positive 
thing overall.

Plus I feel like such an approach might make "simpler" things 
suffer (or, at least, make them feel like they suffer). Every 
time I use python I think "it's so nice that I can write an 
advanced http server with ssl encryption serving up a calculated 
meaning of life and the last digit of pi in one line, but I have 
to write an iterator to iterate over elements pairwise, which I'd 
really think should be in the standard library somewhere." (A 
"recipe" for it is in itertools which, strangely, suggests that 
they know how often it might be needed but failed to add it as an 
actual part of the standard library, but I digress...)


More information about the Digitalmars-d mailing list