A few notes on choosing between Go and D for a quick project

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Thu Mar 12 17:20:38 PDT 2015


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


More information about the Digitalmars-d mailing list