A few notes on choosing between Go and D for a quick project
yawniek via Digitalmars-d
digitalmars-d at puremagic.com
Sat Mar 14 07:06:20 PDT 2015
On Friday, 13 March 2015 at 13:18:03 UTC, Dicebot wrote:
> In my opinion it is better to focus on tempting users with D
> strong bits than oversell it by trying it compete in topics it
> has inherent disadvantage. There is not point in try to compete
> with Go on topic of simplicity - they have crippled the
> language tremendeously to get that simplicity. Simple D has no
> value - I would simply prefer Go instead of it as it has head
> start advantage in toolchain.
> Instead it is better to focus on explaining users that they
> don't want what they think they want, akin to that Bjarne
> quote. And don't be afraid to admit to certain users that D is
> not a best choice for them. It doesn't mean that such valuable
> feedback should be ignore - there is indeed a lot that can be
> improved in the learning curve. But trying to fight for user
> who makes choice with "trendy" and "simplicity" in mind is a
> battle lost from the very beginning.
imo D's feature set is awesome and still it is reasonably easy to
get a start with just a simple subset
one thing Go did really well was focusing on getting a complete
set of basic libraries.
a foundation with support of most protocols.
i did two small projects for work within the last month, one in D
(a multithreaded crawler that hammered a json API) and a uploader
that can upload to S3 or Openstack Swift in Go.
So here goes my personal list:
+ the language itself and its features. i love how you can write
pretty dense code with
UFCS, lambdas and ranges.
- stdlib. lots of missing pieces (e.g. email parsing, native http
- iv'e also spent a lot of time fighting with external libraries,
reading their code (especially vibe-d as i used its http client
and concurrency features). sometimes it was the missing
documentation, sometimes just the complexity.
- debugging and tracing (osx/linux, and to be fair, i haven't
tried with Go)
+ libraries, yes the hipster factor also produces a lot of crap.
but still, i needed to get stuff done yesterday.
documentation/apis are often straight forward, i rarely had to
look into the sources.
+ support: documentation, build tools, formatting. "it just
works" (just today i discovered the awesome dfmt. this should
come with dmd...).
there is also sites that just explain a couple of concepts, e.g.
http://www.golangpatterns.info . very helpful
- the language itself. the code just looks ugly and shoehorned
around their simple concepts
- error handling...
something that would have helped me would be a nice guide on how
to setup a whole development chain:
- list of utilities needed (e.g. dmd, vim, DCD, dfmt...) and
- build tools (dub),
- debugging, tracing
- code organization best practices.
in general the current "D crowd" seems mostly game and language
Distributed systems, databases and high performance web services
is something i
think D would really shine. Not sure on how to better serve this
More information about the Digitalmars-d