2011-06-28 19:37:37 UTC
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.
*# Package management*
This one's *really* important. The front page of
digitalmars.org/d/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.
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.
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.
The closest thing to a central repository seems to be
http://www.dsource.org/. 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 http://search.npmjs.org/. That D
projects are hosted on a D-exclusive site tells me that D has a closed
Yet D has a working module and package system, so a working package manager
should be a small task!
*# Community fragmentation*
Where is the D community? I see:
http://www.digitalmars.com/d/ -- seems to be official
http://www.d-programming-language.org/ -- also seems to be official!
I would guess that d-programming-language.org is meant to deprecate the
digitalmars page, but there's no statement to that effect on either site.
There's a whole host of other sites that seem to have spawned, I guess
because whatever *is* the official center is unsatisfactory:
Some real effort has to go into rounding up the herd. (The move to git and
GitHub is an excellent one in this regard.)
*# It's unsearchable!*
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 http://dlang.org/ (yes,
yet another one!). Whois says it's owned by http://oscarbrynolf.com/. 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.
*# No marketing or brand awareness*
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
http://digitalmars.com/d/dlinks.html -- 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. http://hsk.org.uk/ -- I'd
be willing to help out.)
For comparative illustration:
http://python.org/ -- clean, no showiness.
http://www.ruby-lang.org/en/ -- a bit busy, but consistent.
http://golang.org/ -- very clean, well organized.
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.
-------------- next part --------------
An HTML attachment was scrubbed...