A few notes on choosing between Go and D for a quick project
Xavier Bigand via Digitalmars-d
digitalmars-d at puremagic.com
Sat Mar 14 17:49:51 PDT 2015
Le 13/03/2015 01:20, Andrei Alexandrescu a écrit :
> 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.
IMO D seems more complicated than it really is. Mostly cause of
presentation of documentation, lack of examples, tutorials,...
Even there is some great changes can appear between versions, it's not a
big issue, cause it will not impact small projects.
I think that the main issue is the first impression the user can have of
the D ecosystem. Newbies want to be taken by hand during their first
steps with a new language.
And the First page a the web site need to show what can be/is achieved
with D, talk about main features, market benefits,...
Documentation is only interesting for someone already use D, so it can
be in a dedicated domain name.
Take a look to the new Qt web site :
I also want encourage everybody, cause the D website made some really
good changes during last months.
More information about the Digitalmars-d