<div>I'm a casual follower of development on D.  In my opinion, it's the cleanest, most complete multi-paradigm language currently out there -- from what I can see, I would describe the language as *done*.  However, I, like many others, am not switching to it.  Why?  Because a perfect language does not a perfect development environment make: everything *surrounding* the language is a complete mess.  Here's my non-comprehensive laundry list in the hope it's useful to someone.</div>
<div><br></div><div><br></div><div><b># Package management</b></div><div><br></div><div>This one's *really* important.  The front page of <a href="http://digitalmars.org/d/">digitalmars.org/d/</a> describes it as having "... the programmer productivity of modern languages like Ruby and Python".  The language, maybe, but this statement is absolutely not true while there is no associated package manager.</div>
<div><br></div><div>I've followed the "two standard libraries" debacle with some confusion (I'm still not clear what's being done about it).  But this isn't actually that important, and D needs to learn from other languages/platforms (Python pip, Ruby gems, NodeJS npm, Go goinstall, Haskell cabal, etc.) that a massive "batteries included" standard library is no substitute for a world-class package manager.  IMO the big-standard-library is a slightly outdated concept in an age where we're always able to pull stuff from the net in an instant.  A big stdlib means a big platform installation, no matter the size of the task, and yet no stdlib can be so big as to satisfy all needs.</div>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><div><br></div><div>The productivity gain that comes from being able to execute "dinstall <somepackage>", and then having it magically available, is *immense*.  When I need to get a job done, I'll often choose an inferior manager-installable library over a superior one where I have to hunt it out, download the tar.gz, read the README, make, make install, realise dependencies are missing, install them too, then fix everything that's broken.  Having a package manager is also crucial to getting people to bother sharing their code with others.</div>
<div><br></div><div>The closest thing to a central repository seems to be <a href="http://www.dsource.org/">http://www.dsource.org/</a>.  But this is all wrong.  People don't want to use a language-specific site to host their project under SVN.  They want to use GitHub/Bitbucket/Google code/etc.  Dsource.org should just maintain a list of packages for an installer -- say, like <a href="http://search.npmjs.org/">http://search.npmjs.org/</a>.  That D projects are hosted on a D-exclusive site tells me that D has a closed community.</div>
<div><br></div><div>Yet D has a working module and package system, so a working package manager should be a small task!</div><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>
<br></div><div><br></div><div><b># Community fragmentation</b></div><div><br></div><div>Where is the D community?  I see:</div><div><br></div><div><a href="http://www.digitalmars.com/d/">http://www.digitalmars.com/d/</a> -- seems to be official</div>
<div><a href="http://www.d-programming-language.org/">http://www.d-programming-language.org/</a> -- also seems to be official!</div><div><br></div><div>I would guess that <a href="http://d-programming-language.org">d-programming-language.org</a> is meant to deprecate the digitalmars page, but there's no statement to that effect on either site.</div>
<div><br></div><div>There's a whole host of other sites that seem to have spawned, I guess because whatever *is* the official center is unsatisfactory:</div><div><br></div><div><a href="http://www.dprogramming.com/">http://www.dprogramming.com/</a></div>
<div><a href="http://www.dsource.org/">http://www.dsource.org/</a></div><div>etc.</div><div><br></div><div>Some real effort has to go into rounding up the herd.  (The move to git and GitHub is an excellent one in this regard.)</div>
<div><br></div><div><br></div><div><b># It's unsearchable!</b></div><div><br></div><div>This one is really trivial.  There's an important reason that other languages have squiffy names: searchability.  Googling for "d <query>" is useless, and "d language <query>" is still awful.  Other languages that suffer from the same affliction have the convention of appending "lang" as a suffix -- "golang", for example -- and this works well.  It seems that "dlang" has not caught on.  I see there's a site at <a href="http://dlang.org/">http://dlang.org/</a> (yes, yet another one!).  Whois says it's owned by <a href="http://oscarbrynolf.com/">http://oscarbrynolf.com/</a>.  The (seemingly recent?) move to GitHub and new website would have been a chance to get this right.  Prepending "d programming language" to every search I make is still absolutely horrible.</div>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><div><br></div><div><br></div><div><b># No marketing or brand awareness</b></div><div><br></div><div>OK, I can live with this.  But make no mistake: it *does* seriously cut down on the people migrating to it.  Take a look at the "free images" offered at <a href="http://digitalmars.com/d/dlinks.html">http://digitalmars.com/d/dlinks.html</a> -- this is a marketers nightmare!  That list *literally* makes me shudder.  I'm not saying that D requires another generic Web 2.0 HTML5 look with gradients and rounded corners that one sees on the latest fashionable projects.  I *am* saying that it needs something consistent and clean, and currently it, seemingly willfully, has neither.  (BTW, I've done some web design work before, e.g. <a href="http://hsk.org.uk/">http://hsk.org.uk/</a> -- I'd be willing to help out.)</div>
<div><br></div><div>For comparative illustration:</div><div><br></div><div><a href="http://python.org/">http://python.org/</a> -- clean, no showiness.</div><div><a href="http://www.ruby-lang.org/en/">http://www.ruby-lang.org/en/</a> -- a bit busy, but consistent.</div>
<div><a href="http://golang.org/">http://golang.org/</a> -- very clean, well organized.</div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="http://haskell.org/haskellwiki/Haskell">http://haskell.org/</a></div>
<div><br></div><div><br></div><div>The point I want to get across here is: the problem with the D programming language *is not that there are problems with the D programming language.*  The language and compiler (from what I know) have been world-class for some time.  I've seen a few conversations where people using D get quite indignant that people are interested in Go, Rust, etc.  D is not getting new users because it doesn't look like it *wants* new users: it dresses sloppily, it doesn't make itself findable easily, and it doesn't have infrastructure for new users to share and benefit from sharing.</div>
<div><br></div><div><br></div><div>James Fisher</div>