D2 port of Tango

Jonathan M Davis jmdavisProg at gmx.com
Tue Oct 18 11:09:29 PDT 2011


On Tuesday, October 18, 2011 10:27 Denis Shelomovskij wrote:
> 18.10.2011 8:00, Caligo пишет:
> > On Mon, Oct 17, 2011 at 11:52 PM, SiegeLord <none at none.com
> > 
> > <mailto:none at none.com>> wrote:
> > I just wanted to get the word out about a little project me and a
> > few other people been working on for the few past months, in case
> > anyone feels like helping out (or just as an FYI). This project is
> > the D2 port of the Tango framework library. You can read about it
> > here:
> > 
> > https://github.com/haskelSiegeLord/Tango-D2
> > <https://github.com/SiegeLord/Tango-D2>
> > 
> > We are currently a little more than half way done in terms of
> > modules fiddled with. Currently there are 181 modules ported out of
> > approximately 343 (give or take 20). Currently only the dmd compiler
> > and Linux platform are supported... but obviously we want to get all
> > the other platforms/compilers as time goes on. I'm guessing at the
> > current rate of porting we'll be done in about half a year.
> > 
> > Now, the project is actually two projects in one.
> > 
> > The first project is a D2 port proper that tries to keep API
> > semantics the same as the D1 original. I preside over this aspect,
> > and you can see the rough porting guidelines in the repository. This
> > is the 'd2port' branch in my repository.
> > 
> > The second project is a more ambitious effort to rewrite some
> > aspects of Tango without preserving semantics or anything. mtachrono
> > presides over this aspect, so you can talk to him about the
> > motivations behind it. This is the 'master' branch in my repository.
> > 
> > That's all. Cheers.
> > 
> > -SiegeLord
> > 
> > Why? What's the point? Why not work on Phobos instead?
> 
> +1 to Caligo. I agree that Tango is a good library (and was the best one
> for D1) but, IMHO, porting it to D2 is a bad idea.
> I'm the one who has a big D1+Tango project and I'd better rewrite it
> with D2+Phobos, because:
> 
> 0. I don't want to have a "two standard libraries problem" with D2
> (which one to select?).
> 
> 1. Phobos has a better design (Tango is too complicated in some
> places, has a lot of things I (and a regular programmer IMHO) don't use,
> and has bad design decisions sometimes - both internal and user API)
> 
> 2. Phobos has less _critical bugs_ because of better code control
> (e.g. Tango has memory corruption bug for a very long time in Vector
> container (#2064)).
> 
> 3. There is no Andrei Alexandrescu clone to generate that perfect
> ideas for Tango.

While I would much rather see effort being put into improving Phobos than 
Tango, I think that it's a bit rude to claim that the Tango folks should just 
throw away all of their Tango work and move all of their projects over to 
Phobos. Wanting to be able to easily port D1 programs to D2 is a completely 
valid thing to want to do, and while I think that new projects should use 
Phobos since it's the standard library, there's nothing wrong with using a 
different library if you want to. If SiegeLord and others want to spend time 
porting Tango to D2, it's their right to be able to do so. Ostracizing Tango 
and its users is just going to make the D2 community poorer. And thanks to
druntime, it's now perfectly possible to mix Phobos and Tango code if you
want to (though the differences in design will likely make that not always
work as well as might be nice), so the situation is not the same as it was
for D1 when Phobos sucked, and it and Tango didn't work together.

- Jonathan M Davis


More information about the Digitalmars-d-announce mailing list