January 26, 2008
Leandro Lucarella wrote:
> Robert Fraser, el 25 de enero a las 17:31 me escribiste:
>> Lars Ivar Igesund wrote:
>>> I know there are a few places in Tango where an additional line may be
>>> needed (and many where you'll need quite a few less), but without exact
>>> examples of what people think is a problem, it is hard to make qualified
>>> decisions on where to make improvements.
>> Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
> 
> I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET.
> I think it would be great to have 2 "compatible" standard libraries. One
> minimalist for embeded and such (phobos) and one for "big" (or not that
> big) desktop applications (tango). Of course both should be compatible and
> it had more sense if the "big" library were a super-set of the "small"
> one.

However, when it comes to the low-level parts of the library (gc, threading, etc), I don't really see anyone arguing.  Tango's seems to be better.  It seems like those improvements should just be rolled back into Phobos.  Then Tango could go back to being a regular library that doesn't require you to "get religion" first.

--bb
January 26, 2008
Jason House wrote:

> Lars Ivar Igesund Wrote:
> 
>> Jesse Phillips wrote:
>> > It is not related to the size or speed of the code, as Sean was questioning, but in the use. The best comparison I can think of is that it is like going from C to Java. (I'm not saying Tango is like java) The phobos library is very procedural, you you import your module and call your functions. Tango is Object based, import, create object/call object to do something for you. There is a sense of simplicity when you don't use objects. That is frankly one of the reasons I have not moved to Tango yet.
>> 
>> I know there are a few places in Tango where an additional line may be needed (and many where you'll need quite a few less), but without exact examples of what people think is a problem, it is hard to make qualified decisions on where to make improvements.
> 
> Maybe I'm misusing the library, but I know I've had to create formatting
> objects (print!(char)?), even for common cases.

There is a global Layout instance in tango.text.convert.Format that defaults to char -

Format.layout ("{0}", "first arg");

or if you already has imported Stdout

Stdout.layout (...);

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
January 26, 2008
Bill Baxter wrote:

> Leandro Lucarella wrote:
>> Robert Fraser, el 25 de enero a las 17:31 me escribiste:
>>> Lars Ivar Igesund wrote:
>>>> I know there are a few places in Tango where an additional line may be needed (and many where you'll need quite a few less), but without exact examples of what people think is a problem, it is hard to make qualified decisions on where to make improvements.
>>> Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
>> 
>> I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET.
>> I think it would be great to have 2 "compatible" standard libraries. One
>> minimalist for embeded and such (phobos) and one for "big" (or not that
>> big) desktop applications (tango). Of course both should be compatible
>> and it had more sense if the "big" library were a super-set of the
>> "small" one.
> 
> However, when it comes to the low-level parts of the library (gc, threading, etc), I don't really see anyone arguing.  Tango's seems to be better.  It seems like those improvements should just be rolled back into Phobos.  Then Tango could go back to being a regular library that doesn't require you to "get religion" first.

Tango require you to "get religion" ? Also, Tango has never been a "regular" library, if that means a library without its own runtime.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
January 26, 2008
"Bill Baxter" <dnewsgroup@billbaxter.com> wrote in message news:fng5c1$un8$1@digitalmars.com...
>> I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET.
>> I think it would be great to have 2 "compatible" standard libraries. One
>> minimalist for embeded and such (phobos) and one for "big" (or not that
>> big) desktop applications (tango). Of course both should be compatible
>> and
>> it had more sense if the "big" library were a super-set of the "small"
>> one.

That is exactly what Tango is about. It is a modular library, written carefully and explicitly to reduce interdependencies within the library itself. You might think of Tango as being composed of several onion layers, each of which depends upon its interior only. Tango is built to address the "small" and "large" library notions mentioned (and a few in between as necessary).


> However, when it comes to the low-level parts of the library (gc, threading, etc), I don't really see anyone arguing.  Tango's seems to be better.  It seems like those improvements should just be rolled back into Phobos.  Then Tango could go back to being a regular library

A "regular library"? Feels quite 'regular' to lots of people, so perhaps you could indicate what that means to you? Do you perhaps mean, it's not just a clone of phobos?


> doesn't require you to "get religion" first.

Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?


January 26, 2008
Kris wrote:
> "Bill Baxter" <dnewsgroup@billbaxter.com> wrote in message news:fng5c1$un8$1@digitalmars.com...
>>> I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET.
>>> I think it would be great to have 2 "compatible" standard libraries. One
>>> minimalist for embeded and such (phobos) and one for "big" (or not that
>>> big) desktop applications (tango). Of course both should be compatible and
>>> it had more sense if the "big" library were a super-set of the "small"
>>> one.
> 
> That is exactly what Tango is about. It is a modular library, written carefully and explicitly to reduce interdependencies within the library itself. You might think of Tango as being composed of several onion layers, each of which depends upon its interior only. Tango is built to address the "small" and "large" library notions mentioned (and a few in between as necessary).
> 
> 
>> However, when it comes to the low-level parts of the library (gc, threading, etc), I don't really see anyone arguing.  Tango's seems to be better.  It seems like those improvements should just be rolled back into Phobos.  Then Tango could go back to being a regular library
> 
> A "regular library"? Feels quite 'regular' to lots of people, so perhaps you could indicate what that means to you? Do you perhaps mean, it's not just a clone of phobos?
> 
> 
>> doesn't require you to "get religion" first.
> 
> Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?

Heh heh.  By "get religion" I just mean you have to make a significant non-default choice that will affect and influence your subsequent actions.  And once you "believe in Tango" it's difficult to share your code with other "non-believers" without first getting them to convert first.

--bb
January 26, 2008
"Bill Baxter" <dnewsgroup@billbaxter.com> wrote in message news:fngcb5$1eee$1@digitalmars.com...
>>> doesn't require you to "get religion" first.
>>
>> Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
>
> Heh heh.  By "get religion" I just mean you have to make a significant non-default choice that will affect and influence your subsequent actions. And once you "believe in Tango" it's difficult to share your code with other "non-believers" without first getting them to convert first.


Ah, right :)

I was concerned some folks might get the wrong idea there, so thanks for the clarification. But again, I suspect there's something a tad misguiding? For example:

- Tangobos exposes the phobos API atop the Tango runtime. Thus, we already have exactly what you described earlier, but with the roles reversed. e.g. phobos is running within Tango, rather than the other way around. That makes a lot of sense to many folks. There was a notable call (in this NG) to combine the API from both, and that has been available for the last couple of releases. We did it this way because the first approach wound up going nowhere of note, and many people complained about a lack of progress.

- some consider this aspect: http://dsource.org/projects/tango/wiki/TangoUsers

- You note that Tango is a "significant non-default choice". For those who download bundles from DSource, that is not the case. Tango is the default choice there, with an option to embed the phobos API as an extension.

- I know of several significant libraries in the works, which target Tango alone. There are a variety of reasons for that, but one often cited is the raw-efficiency of the I/O model (it runs rings around the C lib, for example).

The point you appear to make is one that's been held aloft in the past. However, there are solid resolutions readily available, and the implication that targeting Tango is somehow going to afflict the longevity or compatibility of one's code really could not be further from the truth. In fact, your assertion over this aspect would likely make much more sense if it were inverted ;)

Cheers




January 27, 2008
Kris wrote:
> "Bill Baxter" <dnewsgroup@billbaxter.com> wrote in message news:fngcb5$1eee$1@digitalmars.com...
>>>> doesn't require you to "get religion" first.
>>> Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
>> Heh heh.  By "get religion" I just mean you have to make a significant non-default choice that will affect and influence your subsequent actions. And once you "believe in Tango" it's difficult to share your code with other "non-believers" without first getting them to convert first.
> 
> 
> Ah, right :)
> 
> I was concerned some folks might get the wrong idea there, so thanks for the clarification. But again, I suspect there's something a tad misguiding? For example:
> 
> - Tangobos exposes the phobos API atop the Tango runtime. Thus, we already have exactly what you described earlier, but with the roles reversed. e.g. phobos is running within Tango, rather than the other way around. That makes a lot of sense to many folks. There was a notable call (in this NG) to combine the API from both, and that has been available for the last couple of releases. We did it this way because the first approach wound up going nowhere of note, and many people complained about a lack of progress.
> 
> - some consider this aspect: http://dsource.org/projects/tango/wiki/TangoUsers
> 
> - You note that Tango is a "significant non-default choice". For those who download bundles from DSource, that is not the case. Tango is the default choice there, with an option to embed the phobos API as an extension.
> 
> - I know of several significant libraries in the works, which target Tango alone. There are a variety of reasons for that, but one often cited is the raw-efficiency of the I/O model (it runs rings around the C lib, for example).
> 
> The point you appear to make is one that's been held aloft in the past. 

Yes, the gap is narrowing.  Which is great.

> However, there are solid resolutions readily available, and the implication that targeting Tango is somehow going to afflict the longevity or compatibility of one's code really could not be further from the truth. 
> In
> fact, your assertion over this aspect would likely make much more sense if
> it were inverted ;)

I said nothing about longevity.  I don't see that as a problem at all. Just compatibility.  And the fact is Tango code remains incompatible with the default install of dmd digitalmars.com.  Which is what the majority of casual users are likely to end up with.  Why? Because if you google trying to find out about D you're going to end up at digitalmars.com.

I think it would be great if links to the Tango distro were listed right alongside the Phobos packages on DigitalMars.com.  Then my argument would go away because first-timers would all see it and think, "ah ok this is just as official ... and more featureful. I'll go for that." But right now they aren't and most people checking out D are just going to get the default and be happy enough with that.

--bb
January 27, 2008
"Bill Baxter" <dnewsgroup@billbaxter.com> wrote..
[snip]
> I think it would be great if links to the Tango distro were listed right alongside the Phobos packages on DigitalMars.com.  Then my argument would go away because first-timers would all see it and think, "ah ok this is just as official ... and more featureful. I'll go for that."


Good idea, Bill.  I'm sure that would be appreciated by many


January 27, 2008
Kris wrote:

> 
>> doesn't require you to "get religion" first.
> 
> Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
> 
> 


I think part of the "religious" aspect reflected from Tango is also related to the photo in the "rogues gallery":

http://www.dsource.org/projects/tango/wiki/Contributors

It promotes the burlesque image of a cult following.  I've always disliked it.  While perhaps intended to be amusing, I think it puts across too playful an image for a library that should begin to take itself seriously as a maturing product.

I know it's meant as a sort self-deprecating humour... but perhaps Tango has grown out of that now?

Ironically, the fundamental differences between the Phobos and Tango design philosophies seem to be demonstrated through the above: Phobos tends to exude an aura that is lean, austere, and self-serious;  while Tango tends to exemplify free, swanky, and hip with the cult-following undertones demonstrated in the contrib photo. I like Tango, though, for many reasons unrelated to it's personality, which I kind of wish it would lose.

-JJR
January 27, 2008
"John Reimer" <terminal.node@gmail.com> wrote in message news:fngk4i$1tdu$1@digitalmars.com...
> Kris wrote:
>
>>
>>> doesn't require you to "get religion" first.
>>
>> Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
>>
>>
>
>
> I think part of the "religious" aspect reflected from Tango is also related to the photo in the "rogues gallery":
>
> http://www.dsource.org/projects/tango/wiki/Contributors
>
> It promotes the burlesque image of a cult following.  I've always disliked it.  While perhaps intended to be amusing, I think it puts across too playful an image for a library that should begin to take itself seriously as a maturing product.
>
> I know it's meant as a sort self-deprecating humour... but perhaps Tango has grown out of that now?
>
> Ironically, the fundamental differences between the Phobos and Tango design philosophies seem to be demonstrated through the above: Phobos tends to exude an aura that is lean, austere, and self-serious;  while Tango tends to exemplify free, swanky, and hip with the cult-following undertones demonstrated in the contrib photo. I like Tango, though, for many reasons unrelated to it's personality, which I kind of wish it would lose.
>
> -JJR


It never fails to amaze just how much can be extracted from merely one element on a website :)

You're right about the picture, though - it was intended purely as a bit of fun at the time (as I recall), and should probably go. Certainly it would be a misconception to paint Tango with a "flighty" brush ... you would have to look very hard indeed to find a more "serious" D language investment anywhere.

On a more personal note (for me) - no significant effort should have to go all true-blue neo-conservative to be considered "serious" about anything in this world, and a bit of self-deprecating humour is hardly out of place in any walk of life (there perhaps ought to be more of that around here sometimes?). It is interesting though, that you picked up on the 'cult' aspect of that picture - IIRC it was chosen at random because it looked /truly/ dorky, not because of anything else. Perhaps people will inevitably see whatever they want to? Ah well, it was comic relief for a period.

Please suggest a replacement? Perhaps we should run a little competition?