Is D right for me?

Jonathan M Davis jmdavisProg at gmx.com
Sun Oct 10 18:59:51 PDT 2010


On Sunday 10 October 2010 17:27:55 Daniel Gibson wrote:
> bioinfornatics schrieb:
> > LDC support 64 bit ;)
> 
> as well as GDC.
> 
> But both currently lack an up-to-date D2 compiler (but the GDC guys are
> at least working on it, seems like they're currently at 2.029 - which is
> great - about 3 months ago they were still at 2.018 and in between was
> the big 2.020 update that introduced druntime).
> 
> I agree with walter that 64bit support in DMD is very important,
> especially for D2: I started a project a few months ago that might have
> benefited from D2s features (especially ranges), but I decided to use D1
> because no 64bit compiler for D2 was in sight.
> 
> I am btw a bit worried about "upgrading" code from D1 to D2 some day
> because of the heavy (still ongoing) changes, especially in phobos.
> I read that for example std.stream is going to be deprecated and
> replaced by either something with ranges or something like std.stdio
> (whoever was right about that, maybe even both?). This means that all my
> (file/network) IO-Code would have to be rewritten sooner or later..
> But, currently lacking an alternative to std.stream/std.socketstream for
> networking, I would have had the same problems even if I had started the
> project with D2...

A stream solution is in the works (it's discussed periodically on the Phobos 
list), but they haven't sorted out quite what they want to do with it yet. The 
Phobos API in general is in flux, though pieces of it are likely to stay more or 
less unchanged from what they currently are. But there's far from any kind of 
guarantee that much of anything from the D1 Phobos is going to survive in the D2 
Phobos. They're looking to make Phobos as good as they can, and they aren't yet 
worried about keeping its API stable (though they don't make changes unless they 
think that it's actually benificial, so things don't change willy-nilly). I'm 
sure that the time will come, however, when Phobos' API will stabilize, and 
projects will be able to rely on it staying the same.

I think that the reality of the matter is that porting D1 code to D2 code is 
going to be just like, if not exactly like, porting code from one library to 
another rather than an upgrade like you'd get between Qt3 and Qt4 (which had 
plenty of changes). I'm sure that the split between D1 and D2 is going to cause 
a lot of problems for people looking to port code from one to the other, but it 
will be better for newly written code, so it's a definite tradeoff. I wouldn't 
look forward to porting a project from D1 to D2 though.

- Jonathan M Davis


More information about the Digitalmars-d mailing list