October 18, 2011
18.10.2011 8:00, Caligo пишет:
>
>
> On Mon, Oct 17, 2011 at 11:52 PM, SiegeLord <none@none.com
> <mailto:none@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.
October 18, 2011
On 10/18/2011 6:24 AM, Trass3r wrote:
>> Why? What's the point? Why not work on Phobos instead?
>
> Well D1 projects could be ported to D2 much more easily, e.g. Yage.

True, but I had hoped to port Yage to phobos2 anyway.  Lack of xml support in phobos is the biggest reason I haven't started doing this already.  Time being another reason.

If Tango was a library of add-in modules of which I could include only what I need, I would be very likely to keep using it.  I think tango could become quite popular again with an approach like this.  But it may need to depend on some phobos modules and conventions for good integration.
October 18, 2011
On 10/18/2011 12:52 AM, SiegeLord 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/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

I already mentioned this deeper down in the thread, but what are the chances of being able to use tango as an add-on for phobos2?  Something from which I could pull in only the tango modules I need and use phobos for the rest?
October 18, 2011
> I already mentioned this deeper down in the thread, but what are the chances of being able to use tango as an add-on for phobos2?  Something from which I could pull in only the tango modules I need and use phobos for the rest?

He already answered that:

SiegeLord Wrote:
>> Does this use druntime?
> Yes, although a Tango specific runtime (compatible with druntime) will probably be an option some day too. Still, right now you can safely use (modulo my imperfect testing) Phobos and Tango modules together in a single program.
October 18, 2011
On 10/18/2011 12:45 PM, Trass3r wrote:
>> I already mentioned this deeper down in the thread, but what are the
>> chances of being able to use tango as an add-on for phobos2? Something
>> from which I could pull in only the tango modules I need and use
>> phobos for the rest?
>
> He already answered that:
>
> SiegeLord Wrote:
>>> Does this use druntime?
>> Yes, although a Tango specific runtime (compatible with druntime) will
>> probably be an option some day too. Still, right now you can safely
>> use (modulo my imperfect testing) Phobos and Tango modules together in
>> a single program.

Not quite.  I was wondering if it can be done with ONLY bringing in what I need, as apposed to most or all of tango.
October 18, 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@none.com
> > 
> > <mailto:none@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
October 18, 2011
Denis Shelomovskij Wrote:
> +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.

0. Phobos is still the standard library for D2. Tango becomes a 3rd party library you can use alongside Phobos. Think using libGTK along side glibc.

1, 3. Subjective. I think the opposite and more importantly I believe in choice.

2. Fixed 3 months ago.

-SiegeLord
October 18, 2011
Eric Poggel (JoeCoder) Wrote:

> Not quite.  I was wondering if it can be done with ONLY bringing in what I need, as apposed to most or all of tango.

One of Tango's philosophies was to minimize intermodule dependencies, something that makes this porting effort a lot easier... still, those dependencies do exist, meaning that you usually can't use individual modules in isolation. I don't really get your question however. TangoD2 is just another 3rd party library... to use it you'd install the whole thing somewhere on your computer. Then, you can compile the whole thing into a library OR use a tool like xfbuild (maybe rdmd too, never had luck with that one) to compile only the modules that your program imports.

-SiegeLord
October 18, 2011
On 10/18/2011 09:15 AM, SiegeLord wrote:
> Caligo Wrote:
>> Why?  What's the point?  Why not work on Phobos instead?
>
> Aside from the obvious philosophical differences, which I am NOT going to get into, porting D1 projects is an important reason.
>
> -SiegeLord

While I can see the desirability of porting good D1 projects, from my point of view when Tango became popular the usability of D1 plummeted. Too many tools would only work either with or without Tango installed. And I kept having installation problems.

So I'm *not* looking forwards to seeing Tango in D2.  If this could be done without requiring phobos to be disabled, and without mangling it, then I would have many fewer problems with it, but as it is...Tango for D1 left a VERY bad taste in my mouth.  Very.  In fact it was one of the major reasons I switched to D2 while it was still quite flakey.


October 19, 2011
On 2011-10-18 20:09, Jonathan M Davis wrote:
> 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@none.com
>>>
>>> <mailto:none@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

Even if one would use Phobos, Tango still have things to offer over Phobos. For example, support for OpenSSL, cryptographic, a net library that doesn't depend on external libraries and a better XML library.

-- 
/Jacob Carlborg