Any chance to call Tango as Extended Standard Library
John Reimer
terminal.node at gmail.com
Sat Jan 17 19:23:15 PST 2009
Hello Daniel,
> Piotrek wrote:
>
>> Lars Ivar Igesund wrote:
>>
>>> Tango will stay Tango (and tango.*). The above naming assumes that
>>> Tango will depend on Phobos, and it will not.
>>>
>> I see.
>>
>> Cheers
>>
> (Note: speaking as merely an infrequent contributor to Tango; my
> opinion is my own and does not reflect on those of the Master Dancers,
> or the ruling council of glittery-shoed programmers.)
>
> (Warning: semi-rant ahead.)
>
> The problem is that Phobos and Tango are diametrically opposed in
> almost every conceivable way. Bringing them together would be like
> trying to bring matter and anti-matter together; you're just going to
> blow yourself up.
>
> It's best if you think of Phobos as being Python and Tango as being
> Java. Phobos implements a relatively flat (if messy) hierarchy of
> simple, fat classes. For example, IO is done using the Stream
> interfaces, each one implements all the methods you'd probably need to
> work with streams.
>
> Tango, on the other hand, implements a very deep (if confusing)
> hierarchy of simple, component interfaces that get plugged together.
> Unlike Phobos, IO in Tango has many layers and components, each of
> which is very narrowly defined, allowing you to plug them together
> however you like.
>
> The problem is that neither of these approaches is WRONG. They're
> both valid and arguably better in certain circumstances. What's more,
> the continued existence of both shows that there are people who
> believe in each of them (not necessarily at the same time, but there
> you go.)
>
> So let's say we combined them into std.* and stdex.*. Why is Tango
> stdex? Why isn't Tango std.* and Phobos stdsimple?
>
> Ok, ignoring egos, the problem is that they wouldn't work together
> anyway. An old favourite of mine is (again, sorry about this) IO.
>
> Phobos strives to be compatible with the C IO library; so you can
> interleave Phobos and C IO calls and it's all gravy.
>
> Tango takes C out the back and shoots it before burying it upside-down
> at a crossroads with a steak through the heart and salting the earth.
> You CAN mix Tango and C IO calls, but you really have no idea what
> order the output's going to arrive in.
>
> I remember Andrei getting antsy about this a while back; why break
> compatibility?! Because Tango's IO was faster this way. Neither one
> of them was 'right' because they both had legitimate points of view.
>
> Really, it all boils down to this: there *is no* one right way. Yes,
> it's more confusing. But it's a problem with programming in general;
> programming is all about looking at your options and making a decision
> on the matter.
>
> -- Daniel
>
That's a very good description of the situation, I think. Thanks.
-JJR
More information about the Digitalmars-d
mailing list