D vs Go in real life

Craig Dillabaugh craig.dillabaugh at gmail.com
Thu Nov 28 21:49:33 PST 2013


On Friday, 29 November 2013 at 05:14:14 UTC, brad clawsie wrote:
> this has been a great thread and I've found a lot of the 
> replies  very insightful. I've been programming in Go at work 
> for about a year or so now, so I have some opinions on Go that 
> I believe are reasonably informed, while I am still a D novice 
> but hope to continue learning.
>
> First, let me say that it is obvious that, by design, D is a 
> more powerful language than Go. Go's simplicity will either be 
> an advantage or a deal-breaker based on who you ask.
>
> On my vps instance last night I tried to create an initial D 
> programming environment, with the following tools:
>
> - dmd
> - dub
> - vibe.d
> - ldc (not strictly necessary but I've heard so many good 
> things about it)
>
> 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. Now I was able to 
> build dub, although it was strange to see two completely 
> different build mechanisms for dmd and dub - dmd using a 
> makefile and dub using a sh script wrapper. vibe.d was easier 
> to install once dub worked. Over an hour just to get basic 
> tools installed, although I feel HTTP serving is so common that 
> it should be one of the accepted "batteries included" by 
> default.

So when you say you would install Go using the default build,
did you mean as a binary, or do you mean some sort of default
build configuration (from source) for your platform?
If as binary then this comparison is a bit unfair here.

For me (OpenSuse) all I need to do is:
sudo zypper in dmd

I've used the pre-built binaries on various Windows & Linux
OSs with no troubles.

If you want to build from source you might want to have a look at 
DVM:

https://bitbucket.org/doob/dvm/wiki/Home

(I don't have any experience with it personally, so I can't say 
how trouble free your experience would be).

>
> If this were Go, I would have installed the default build for 
> my platform and had an http server in my standard sdk and 
> everything else available by "go get", which has never failed 
> to work flawlessly for me in a year of dealing with code from 
> the web. This is one reason why there are already so many 
> libraries for Go - it is trivial to expose your code to other 
> developers via the supported toolchain.
>
> This might not be a fair assessment given my shallow experience 
> with D, but it seems much less polished relative to Go for 
> setting up a development environment and working with code from 
> the web.
Well D is a volunteer effort while Go is being backed by the 
worlds biggest web company!  That sort of accounts for that I 
suppose. There has been recognition in the community that this 
needs to improve, but progress is only so fast with the limited 
resources.

>
> Go's tools can be criticized as precluding operating system 
> package managers, if people feel that criticism is valid, maybe 
> a solution is something like the Haskell Platform, which was a 
> reasonable response to the same criticism with haskell in years 
> back - that setting up a development environment with basic 
> consistent libraries was very painful. Haskell Platform does 
> not seek to preclude operating system package managers.
>
> Anyway, I hope this didn't seem too harsh. I still am playing 
> with D and hopefully at some point in the future, package 
> managers will address some of these needs.
>
> brad

Hope you enjoy your experience with D.


More information about the Digitalmars-d mailing list