incompatible types!

Jonathan M Davis jmdavisProg at gmx.com
Tue Apr 5 19:02:23 PDT 2011


> On Tue, 05 Apr 2011 19:37:15 -0400, Caligo <iteronvexor at gmail.com> wrote:
> > It's just frustrating, that's all.  Writing thousands of lines of code
> > and having everything stop because of a compiler bug is just
> > frustrating.
> 
> I completely understand.  It's why I have to periodically stop using D.
> Dcollections sat idle for over a year while I waited for a compiler bug to
> be fixed.
> 
> > I know progress is being made, and all that is appreciated.  But, I
> > don't remember ever hearing anything about D2 being in beta.  If
> > anything, I remember months ago where D2 was recommended for new
> > projects.  So, now I'm not sure what I'm supposed to do.  Start all
> > over again from scratch?  I really like my design, so I guess I'll
> > have to wait till it gets fixed.
> 
> Sorry you got that impression.  The fact is, as long as you are using the
> non-broken features, D2 is pretty useful, even downright awesome :)  The
> issue is, if you hit one of those broken ones.  Unfortunately, the release
> of TDPL didn't make all those features magically appear fully
> implemented.  So since TDPL is promoted as the offical language spec, D2
> suddenly jumped way back in the release cycle, since many of its
> unimplemented/not-fully-implemented features became "official".
> 
> I'd highly recommend *NOT* to use D2 for new projects unless you are
> willing to redesign your code to work around those issues, or wait for
> them to be fixed.  I truly wish this wasn't the case, but I don't see how
> anyone can confidently recommend D2 for professional or non-toy projects.
> This may sound like an anti-endorsement, but I assure you it is not.  I
> think D2 is going to be absolutely killer when it's finished.  I just
> would not use it for professional development *right now*, where deadlines
> and budgets are under consideration.  If you can afford to put it down
> when it breaks and wait for a fix, then I think it will be worth the wait.

IIRC, Adam Ruppe uses D2 for professional development, and he discusses it 
from time to time on the main d newsgroup, but he specifically avoids some of 
the newer features. He rarely runs into problems with compiler.

On the other hand, folks who consistently try and use the newer features in 
their code - especially when they try and mix them - run into problems all too 
frequently. I ran into a number of major issues while creating std.datetime. A 
number of them have been fixed now. Others remain unfixed and still affect 
affect std.datetime to some degree (e.g. it's impossible to create an 
immutable SysTime). But std.datetime uses some of the newer features quite 
heavily (though alias this isn't one of them).

So, if you restrict what you do with D2 to an older subset of the language, 
you're likely to be fine. But if you try and use a lot of the newer features, 
you _will_ run into bugs. And alias this is definitely one of the areas with 
problems.

Personally, I only use D2 for my personal stuff, but as much as I'd like to 
use it at work, I wouldn't even attempt to yet. The language is stabilizing, 
and the compiler and libraries are definitely improving, but if you expect 
rock-solid stability, you're going to be dissapointed. We're getting there, 
but we're not there yet.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list