Is D right for me?
Simen kjaeraas
simen.kjaras at gmail.com
Tue Oct 5 03:52:22 PDT 2010
Gour D. <gour at atmarama.net> wrote:
> D, from the other side, is younger language, community is not so
> big, language is, afaict, evolving very rapidly and it's not easy to
> tell which compiler to use, which libs etc.
This is a big problem for D at this point. The language is no longer
evolving (much), and we're at a point in time where libraries and
toolchain parts need to be written.
> Moreover, I'm a bit worried on the state of GUI libs available for D,
> especially about QtD.
>
> Moreover, 64-bit is not ready (yet), although I'm told it should come
> soon.
It will. Latest news (2 days ago) say it's now getting as far as
main(), which is good.
> What about ARM if we want to target MeeGo in the future?
I believe GDC supports ARM.
> I also did not research what is the state of database support...Now
> we're thinking to use sqlite3 as back-end.
There's a list here:
http://www.wikiservice.at/d/wiki.cgi?DatabaseBindings
However, most of those are for D1, and a large percentage seem to be
abandoned.
SQLite seems to be well supported, with 7 projects claiming support.
> I also have experience that some potential developers did not join our
> team since Haskell was to hard to grok for them (coming from C++), so
> D might be an easier path with less steep learning curve, but I also
> wonder about myself whether I could pick D quickly enough (I'll buy
> book, of course) after long exposure to Haskell and FP.
I'm sure you can. D also supports programming styles closer to those
of FP, making such a transition easier (I hope :p)
> So, can you offer some advice, what could be better choice between
> Haskell & D for our planned project with the following features:
>
> a) maintainable code
This is likely a bit subjective, and much more dependent upon the
programmers themselves than the language used.
That said, D supports a variety of features that boost
maintainability:
- Contract programming in the form of pre and post contracts for
functions[1].
- Class invariants[2].
- Built in unit testing[3].
- Documentation comments[4].
Of course, other features of D may increase maintainability, but
those are the ones most directly associated with it.
> b) decent performance
D is generally as fast as C, though some abstractions of course cost
more than others.
> c) higher-level programming and suitable for general programming tasks
My impression (not having used Haskell), D wins hands down on the
latter, and is a bit weaker on the former.
> d) good library support (database stuff, data structures, Qt GUI...)
Likely Haskell is better here (as noted above, D has some problems in
this regard).
> e) vibrant community and active development so that there is some
> guarantee that the language won't fall in oblivion if some devs leave
> the project, iow. 'bus-factor > 2' ?
The bus-factor of D is sadly close to 1. If Walter should choose to
leave, we have a problem. On the other hand, I don't think a mere bus
would keep him from continuing the project.
> (It would be nice if someone familiar with both languages can share...)
Here I can't help. I don't know Haskell.
In closing,
[1]: http://digitalmars.com/d/2.0/dbc.html
[2]: http://digitalmars.com/d/2.0/class.html#invariants
[3]: http://digitalmars.com/d/2.0/unittest.html
[4]: http://digitalmars.com/d/2.0/ddoc.html
--
Simen
More information about the Digitalmars-d
mailing list