questions on PhanTango 'merger' (was Merging Tangobos into Tango) - long-term vision

Kris foo at bar.com
Wed Oct 10 19:56:35 PDT 2007


"Marcin Kuszczak" <aarti_nospam at please_interia.pl> wrote in message 
news:fejdk1$pvv$1 at digitalmars.com...
> Kris wrote:
>
>
>> And that's where the misconception comes in. The benefits in the high
>> level of Tango are often based upon the capabilities in the "lower"
>> levels. Which is why the earlier question had been posed about Tango I/O.
>> You don't get Tango without the I/O package, because that is one of the
>> definitive differences between the two libraries. In short, there's
>> nothing in Phobos that Tango would benefit from. When it comes to I/O, 
>> for
>> example, Tango seriously outperforms every other library we've bothered 
>> to
>> test. When it comes to string processing, the same is true. This is due 
>> to
>> the design of Tango.
>>
>
> I don't want to drop Tango IO. :-)
>
> Probably I express myself not enough clear with my idea. It would be great
> if you could comment on my replay to Larsivi:
>
> http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=59960
>
> Thanks!


Sure; the quick and easy answer it this: Tango is also a better /low-level/ 
library than Phobos. Really, it is :)   If you want to get a thin library up 
and running on a cell phone or whatever, Tango would totally be the right 
choice. Why? Because the team went to great effort to make the library (a) 
decoupled and (b) layered.  Not only is the so-called Runtime isolated and 
is even packaged separately, but the middle and upper layers have limited 
interdependencies amongst them.

It's not Utopia, since there are always tradeoffs to make. For example, the 
Tango logging package was previously distinct from the string formatting 
package, so you didn't pay the price of the dependency unless *you* wanted 
it. Well, recently, that changed because the benefit of coupling the two 
outweighed the isolation benefit. That's a fair example of a trade-off that 
was somewhat on the fence to begin with, and finally decided which side it 
wanted to be on :)

Elsewhere we use a small set of interfaces to decouple the implementation of 
modules, such that (a) implementation can be plugged in and (b) the 
implementation modules themselves do not import each other; and are fully 
decoupled. Altogether, this makes Tango a very good choice as a 
mobile/modular library to target any kind of environment ... it was 
/designed/ as such from the beginning, and enjoyed a reasonably long 
gestation period to explore the various tradeoffs. What's missing from 
Tango, I understand, is something that's more familiar for those who prefer 
a free-function model? If so, then I think those folks will find incremental 
changes in Tango that are moving in that direction. In addition, I promised 
some folk at the D conference that model would be exposed somehow ... so it 
is, and will continue to happen :)

This is what prompted the earlier question: "what pieces of phobos would 
folks really like to see in Tango?". Or rephrased, What is it /about/ parts 
of phobos that some people prefer? I'm getting a good indication that 
certainly some people prefer the free-function aspect? I'd really like to 
hear more about that, particularly some specifics :)

I'm asking these questions because nobody has answered the questions posed 
in the origin of this thread. So instead, this is an exploration of a 
potentially different approach to a merge.

What sayeth thou? 





More information about the Digitalmars-d mailing list