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.
this.
imo D's feature set is awesome and still it is reasonably easy to
get a start with just a simple subset
of D.
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:
D:
+ speed
+ 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
client)
- 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)
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
their configuration
- build tools (dub),
- debugging, tracing
- code organization best practices.
in general the current "D crowd" seems mostly game and language
people.
Distributed systems, databases and high performance web services
is something i
think D would really shine. Not sure on how to better serve this
market though.