A few notes on choosing between Go and D for a quick project
Paulo Pinto via Digitalmars-d
digitalmars-d at puremagic.com
Fri Mar 13 02:41:29 PDT 2015
On Friday, 13 March 2015 at 00:20:40 UTC, Andrei Alexandrescu
> A friend of mine needed to complete a small project and thought
> of using a language he didn't know for it. He already knew I
> work on D so he considered it alongside Go. He ended up
> choosing the latter, and documented his decision making process
> in a few notes that he subsequently shared with me. I'll paste
> below a sort of transcript of his handwritten notes.
> I think this is valuable information from a relatively unbiased
> potential user, and good ideas and action items on how we can
> improve our curb appeal. Even mistaken perceptions are good
> signal - it means our materials weren't explicit enough to
> dispel them.
> * Golang: simple!
> + very small language, very concise & simple
> + playground/tutorial
> + easy to start using it, no-nonsense
> + vast libraries
> + no inheritance
> + one binary to distribute
> + good for servers
> + feels like a better C (mostly)
> - can't write generic code involving arrays/slices
> - no good IDE
> + Google!
> + clear feeling it's here to stay
> + visible, many projects
> + enforced style (indentation, exports)
> * Dlang: big!
> # big language
> # IDE?
> # small subset?
> # libraries?
> # will it be around?
> # Perception matters
> ## how stable is it?
> ## not great for servers or UIs; what then?
> ## new house in unpopulated neighborhood; there's an "Enter,
> it's open" sign but sits emtpy; by comparison Go -> condo in
> hip, trendy area
> * Ideas for D
> # what C++ should be but cannot
> ## too late for C++, but not for D
> ## some or all of @safe, immutable, pure should be the default
> # libraries, projects should be prominently listed and nurtured
> # single-idea advantage; D seems to embody too many ideas at
> ## concurrency?
> ## networking?
> ## generics?
> ## interoperability with C and C++?
> ## focus on one!
> # must attract/hook casual users
> # unclear what's a good IDE - JetBrains? is there Vim support?
> # what's D's equivalent to frameworks such as react.js?
> # language designers think of features, users think of purpose
> ## react, go, rust, java -> purpose
> ## D, C++ -> "Ivy league candidates" having a response for
> every programming language design challenge there is, but less
> focused on purpose (Andrei's note: I assume D more at fault
> than C++ on this)
> General feeling: "I don't feel smart enough for D and am
> looking for a quick way to accomplish a goal. I've read the
> Wikipedia article on D and didn't understand a few things. The
> examples seem to show off the language but that made them
> confusing. I wanted to get more into it, but by that time Go
> had already won - I looked at the tutorials, changed the sample
> code a bit right in the browser to see how it'd work for me, it
> was easy, I was in already. Some of my comments therefore
> illustrate my shortcomings than the language's, but that's true
> one way or another for all programmers (that's why technical
> superiority of a language doesn't guarantee its success)."
> I'd love us to derive a few action items from this and other
A kind of D killer project is also needed.
Thanks to a few successful startups like Docker, and consequent
adoption of Docker by Amazon, Google and Microsoft on their
infrastructure, Go is now a "nice to have" skill for anyone doing
More information about the Digitalmars-d