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 
wrote:
> 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 
> once
> ## 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 
> feedback.
>
>
> Andrei

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 
distributed computing.


--
Paulo


More information about the Digitalmars-d mailing list