October 20, 2011
I think that having tango for D2 could be useful, but I would be quite disappointed if Tango would still not get along with phobos.
I understand that druntime might be quite connected to phobos releases, still there should be less reasons this time to fork also the runtime this time.
That was always a pita IMHO, and I am a happy D1/tango user.

Fawzi
On Oct 19, 2011, at 11:12 PM, Andrej Mitrovic wrote:

> On 10/19/11, Nick Sabalausky <a@a.a> wrote:
>> "zsxxsz" <zsxxsz@63.net> wrote in message news:j7mmkr$1fm0$1@digitalmars.com...
>>> I love Tango, because it's like using JAVA to program with Tango, and using
>>> 
>>> C++
>>> to program with Phobos. Java is much more easy to program.
>> 
>> Heh. The Java-ness of it is actually the one thing about Tango that I don't really like. 'Course, I'm a big Java-hater anyway, YMMV...
>> 
> 
> Oh what, you don't like getterAbstractFactoriesBuilderFactorySingletonObjectListener?

October 21, 2011
Jacob Carlborg Wrote:

> 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.

Hmm... does phobos offer something over Tango?
October 21, 2011
On 2011-10-21 07:00, Kagamin wrote:
> Jacob Carlborg Wrote:
>
>> 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.
>
> Hmm... does phobos offer something over Tango?

No, not really. Well, ZIP support that doesn't depend on external libraries and some array operations, e.g. map, filter, reduce and so on. Although I see that Tango just got map and filter.

-- 
/Jacob Carlborg
October 21, 2011
On 2011-10-20 20:16, SiegeLord wrote:
> Eric Poggel (JoeCoder) Wrote:
>
>>>
>>> That's what I do now with Tango 1.
>>>
>>> But if every library I used required separate installation steps
>>> (instead of just pitting it in the repository), there would be about a
>>> dozen to install. I want to keep things as simple as possible for my users.
>>>
>>> My goal is to make it as easy as:
>>>
>>> 1. Install dmd
>>> 2. Checkout Yage from Hg
>>> 3. Run the build script
>>
>> Sorry, I don't mean to sound so demanding.  I greatly appreciate your
>> work in porting tango to D2.
>
> No offense taken. What you're suggesting seems to me a little outside of the scope of Tango specifically. You'd have the same issue with any other 3rd party library in D and in many other languages (e.g. C and C++). This sort of thing is probably best solved by some cpan/ruby gem type of thing that was discussed earlier on the mailing lists (I don't follow them anymore so I've no idea how that turned out).

I'm working on that.

https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D
https://github.com/jacob-carlborg/orbit


-- 
/Jacob Carlborg
October 21, 2011
On 10/20/2011 10:00 PM, Kagamin wrote:
> Jacob Carlborg Wrote:
>
>> 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.
>
> Hmm... does Phobos offer something over Tango?
Even *IF* Phobos didn't offer anything else over Tango, it comes standardly installed with D.  Unless Tango offers the EXACT same interface, that's enough to cause me to prefer Phobos over Tango.  And being feature compatible is quite difficult even when that's your goal.

So it would be extremely preferable if Tango could be installed along side of Phobos without interfering with it.  If it can't be, it will divide the development community.  Again.  With foreseeable effects in an already small community.

October 26, 2011
the reason I love tango is it's design. tango's approach is very c++ like and since I'm a Qt-Fan, I would flavour a d2 version like this:

        tango.io.Device
               +
               +--------------------+--------+--+
               v                    v        |  |
        tango.net.Socket       tango.io.File |  |
               +                    +        |  |
               |                    |        |  v
        +-----------+--------+      | tango.io.ThreadPipe
        v           |        v      |        |
tango.net.TcpSocket | tango.net.UdpSocket    |
        +           |               |        |
        |           v               |        v
        |   tango.net.LocalSocket   | tango.io.BitBucket
        v                           |
tango.net.SslSocket                 v
                             tango.io.Console



tango should use druntime and work with phobos side by side. this one works fine.


import std.stdio;
import tango.io.Stdout;

void main()
{
     writeln("hello phobos!");
     Stdout("hello tango!").newline;
}



November 02, 2011
Yesterday I managed to compile all ported modules on Windows.
So it looks like Tango for D2 should work on Linux and Windows right now.

Lots of people are missing the point of whole project.

Tango for D2 uses Druntime so it is quite normal to use Phobos and Tango together :)

Giving users a choice is great thing in my opinion. Not everyone likes the Phobos philosophy or its design decisions.

Somebody said that Tango hasn't got Andrei on board...
Well, with all respect to Andrei as he is great developer but he is not
the only one who knows how the things should be done. The whole tango.net
module is example of great Design :)
Lets say that Phobos has Andrei on board, and Tango has got Kris on
board ;)

So, resuming, you can use Tango(D2) with Phobos, you do not have to sacrifice neither library.

Lots of people sticks with D1 because of Tango... This maybe great step for those folks to go with flow, and D2 ;)
November 02, 2011
On Tue, 18 Oct 2011 20:27:40 +0300, 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?).
> 
You don't have to. You can use Tango and Phobos together.
You can also use some selected modules :) For example in one of my
projects I use cipher and digest modules from Tango and rest is Phobos.

>      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)
> 

I totally disagree :) Show me example of such bad decision.

>      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)).
> 

Tickets and Patches are always welcome :)

>      3. There is no Andrei Alexandrescu clone to generate that perfect
> ideas for Tango.

This one made me rotfl in real :D Haha. Tango had some best developers in D community including h3r3tic, Kris, Fawzi, Sean and so on, so on :)
November 02, 2011
> Yesterday I managed to compile all ported modules on Windows.
> So it looks like Tango for D2 should work on Linux and Windows right now.

SiegeLord has created a master branch. I've deleted tango.stdc and parts
of tango.sys in my fork. At first, a thousands of errors arose but I
could fix them by using druntime instead. We need to do similar for windows.

> Lots of people are missing the point of whole project.
> 
> Tango for D2 uses Druntime so it is quite normal to use Phobos and Tango together :)

Yes, Tango for D2 should make use of druntime and deimos. I understand
people are afraid that developing tango will split the community like it
already happend in the past. But since tango and phobos use the same
core, furthur tango developers will even contribute to druntime and deimos.

> Giving users a choice is great thing in my opinion. Not everyone likes the Phobos philosophy or its design decisions.

Yes, though there is some lack of tangos design. It's too complex. IConduit, Conduit, Device, InputStream, OutputStream, InputFilter, OutputFilter... I don't understand why they haven't merged Conduit and Device?!?

> Somebody said that Tango hasn't got Andrei on board...
> Well, with all respect to Andrei as he is great developer but he is not
> the only one who knows how the things should be done. The whole tango.net
> module is example of great Design :)
> Lets say that Phobos has Andrei on board, and Tango has got Kris on
> board ;)

Andrei on board means Andrei!<T> on board ;-).

> 
> So, resuming, you can use Tango(D2) with Phobos, you do not have to sacrifice neither library.
> 
> Lots of people sticks with D1 because of Tango... This maybe great step for those folks to go with flow, and D2 ;)

November 03, 2011
03.11.2011 1:29, Damian Ziemba пишет:
>> >        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)
>> >
> I totally disagree:)  Show me example of such bad decision.
>

Tango often asks you a buffer (e.g. at tango.text.Unicode, tango.text.convert.Utf) that is not needed in a language with GC. But it isn't a main problem. Let's consider the cases:
* if you don't provide a buffer it will manually allocate an array instead of using an Appender and than reallocate it etc.
* the worst case, if you provide a large enough buffer, you are (I was) completely sure Tango will use it (you whant to do a manual memory management by some reason), *but* it will reallocate a new one from GC if it just don't like yours (if yourBuffer.length - minimalNeededLength < tangoSacredAdditionLength, and addition length it often nonzero, so Tango will not like your exactly enough buffer).