Is D right for me?

Jonathan M Davis jmdavisProg at gmx.com
Sun Oct 10 21:54:03 PDT 2010


On Sunday 10 October 2010 21:26:28 Andrei Alexandrescu wrote:
> > 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.
> 
> I think it's a bit hasty to speak on behalf of all of Phobos'
> participants. Phobos 2 is indeed different from Phobos 1 but
> backward-incompatible changes to Phobos 2 are increasingly rare.

Sorry if I overstepped my bounds on that. It's just that from what I've seen, 
the Phobos devs have been quite willing to make backwards incompatible changes 
if they thought that they were an improvement, though they aren't done all that 
frequently. Backwards compatability is considered, but improvements to the API 
seem to override it.

Regardless, the result is that if you wrote your code for dmd 2.040 or something 
similar and ended up trying to update it to 2.050, you'd likely have a number of 
changes to make, though porting from Phobos 1 would be far worse. If Phobos were 
completely stable or at least never made backwards-compatability breaking 
changes, that wouldn't be the case. I fully expect that as Phobos matures, such 
breaking changes will become quite rare if not outright nonexistent, but they do 
still happen. Actually deprecating and replacing the modules that are intended 
to be deprecated and replace will help a lot with that, but that obviously takes 
time.

- Jonathan M Davis


More information about the Digitalmars-d mailing list