View mode: basic / threaded / horizontal-split · Log in · Help
February 12, 2008
Re: Standard Library Concerns (Phobos / Tango)
Walter Bright Wrote:

> What I see as the goal for Phobos/Tango is for there to be a compatible 
> core, so that users can mix/match what they need from either library.

To be frank, I don't see the problem in having two standard libraries. However, their purpose can be quite different.

The Phobos library to me appears to be minimalist and ideal for those who need a small runtime library, such as example drivers, embedded systems, thin clients, etc.

The Tango library on the other hand appears to be much more of a library for bigger applications, and provides a lot of practical functionality which todays applications need, such as webservers, database I/O, etc.

This is a logical outcome, because D although being a system language, can be used in places where VM'd languages are used at the moment but also can be used for those C applications we need to have the machine going in the first place.

Regards,
Sjoerd
February 12, 2008
Re: Standard Library Concerns (Phobos / Tango)
Sjoerd van Leent wrote:
> To be frank, I don't see the problem in having two standard libraries. However, their purpose can be quite different.

To be frank, I don't see how the purpose is different. :)

> The Phobos library to me appears to be minimalist and ideal for those who need a small runtime library, such as example drivers, embedded systems, thin clients, etc.

This is not entirely true. The Tango core is very well decoupled from 
the rest of the library, rendering it very useful for exactly those things.

> The Tango library on the other hand appears to be much more of a library for bigger applications, and provides a lot of practical functionality which todays applications need, such as webservers, database I/O, etc.

Tango only provides the tools to create such applications. It does not, 
however, include a web server or database bindings/mappers. That's a 
seperate project called DDBI on DSource (http://dsource.org/projects/ddbi/).
February 12, 2008
Re: Standard Library Concerns (Phobos / Tango)
Sjoerd van Leent wrote:
> Walter Bright Wrote:
> 
>> What I see as the goal for Phobos/Tango is for there to be a compatible 
>> core, so that users can mix/match what they need from either library.
> 
> To be frank, I don't see the problem in having two standard libraries. However, their purpose can be quite different.
> 
> The Phobos library to me appears to be minimalist and ideal for those who need a small runtime library, such as example drivers, embedded systems, thin clients, etc.
> 
> The Tango library on the other hand appears to be much more of a library for bigger applications, and provides a lot of practical functionality which todays applications need, such as webservers, database I/O, etc.
> 
> This is a logical outcome, because D although being a system language, can be used in places where VM'd languages are used at the moment but also can be used for those C applications we need to have the machine going in the first place.
> 
> Regards,
> Sjoerd

People seem to forget that C++ really has multiple "standard" libraries 
too: the one inherited from C, the C++ native one (STL/iostreams), and 
then Boost.  Then on top of that just about every single GUI toolkit has 
its own set of utility classes because first off templates were 
extremely unreliably when most of the GUI projects were started, and 
second the official standard libraries try so damned hard to be 
platform-neutral that they are often not that useful for getting real 
work done.

So I agree.  There's absolutely no problem with multiple "standard" 
libraries.  People will use what suits them, and the chances of one 
library pleasing everyone are slim in a multi-paradigm language like D.

The main difference in the D situation is that all those various C++ 
libraries can be linked together and used in the same app without 
requiring modification of your compiler's installation.

--bb
February 12, 2008
Re: Standard Library Concerns (Phobos / Tango)
On Wed, 13 Feb 2008 00:44:56 +0900, Bill Baxter wrote:

> Sjoerd van Leent wrote:
>> Walter Bright Wrote:
>> 
>>> What I see as the goal for Phobos/Tango is for there to be a
>>> compatible core, so that users can mix/match what they need from
>>> either library.

I absolutely agree. I see this as a very high priority.

>> 
>> To be frank, I don't see the problem in having two standard libraries.
>> However, their purpose can be quite different.
>> 
>> The Phobos library to me appears to be minimalist and ideal for those
>> who need a small runtime library, such as example drivers, embedded
>> systems, thin clients, etc.
>> 
>> The Tango library on the other hand appears to be much more of a
>> library for bigger applications, and provides a lot of practical
>> functionality which todays applications need, such as webservers,
>> database I/O, etc.
>> 
>> This is a logical outcome, because D although being a system language,
>> can be used in places where VM'd languages are used at the moment but
>> also can be used for those C applications we need to have the machine
>> going in the first place.
>> 
>> Regards,
>> Sjoerd
> 
> People seem to forget that C++ really has multiple "standard" libraries
> too: the one inherited from C, the C++ native one (STL/iostreams), and
> then Boost.  Then on top of that just about every single GUI toolkit has
> its own set of utility classes because first off templates were
> extremely unreliably when most of the GUI projects were started, and
> second the official standard libraries try so damned hard to be
> platform-neutral that they are often not that useful for getting real
> work done.
> 
> So I agree.  There's absolutely no problem with multiple "standard"
> libraries.  People will use what suits them, and the chances of one
> library pleasing everyone are slim in a multi-paradigm language like D.
> 
> The main difference in the D situation is that all those various C++
> libraries can be linked together and used in the same app without
> requiring modification of your compiler's installation.

That is indeed the problem, and it needs to be fixed urgently.

> 
> --bb
February 14, 2008
Re: Standard Library Concerns (Phobos / Tango)
Alexander Panek Wrote:

> Sjoerd van Leent wrote:
> > To be frank, I don't see the problem in having two standard libraries. However, their purpose can be quite different.
> 
> To be frank, I don't see how the purpose is different. :)
> 
> > The Phobos library to me appears to be minimalist and ideal for those who need a small runtime library, such as example drivers, embedded systems, thin clients, etc.
> 
> This is not entirely true. The Tango core is very well decoupled from 
> the rest of the library, rendering it very useful for exactly those things.
> 
> > The Tango library on the other hand appears to be much more of a library for bigger applications, and provides a lot of practical functionality which todays applications need, such as webservers, database I/O, etc.
> 
> Tango only provides the tools to create such applications. It does not, 
> however, include a web server or database bindings/mappers. That's a 
> seperate project called DDBI on DSource (http://dsource.org/projects/ddbi/).


aye ... and those webserver packages (along with various other server-related services) reside in the Mango project on dsource. They're built upon Tango, but not shipped as part of it.
February 15, 2008
Re: Standard Library Concerns (Phobos / Tango)
On Wed, 13 Feb 2008 00:44:56 +0900, Bill Baxter wrote:

> People seem to forget that C++ really has multiple "standard" libraries
> too: the one inherited from C, the C++ native one (STL/iostreams), and
> then Boost.  Then on top of that just about every single GUI toolkit has
> its own set of utility classes because first off templates were
> extremely unreliably when most of the GUI projects were started, and
> second the official standard libraries try so damned hard to be
> platform-neutral that they are often not that useful for getting real
> work done.
> 
> So I agree.  There's absolutely no problem with multiple "standard"
> libraries.  People will use what suits them, and the chances of one
> library pleasing everyone are slim in a multi-paradigm language like D.
> 
> The main difference in the D situation is that all those various C++
> libraries can be linked together and used in the same app without
> requiring modification of your compiler's installation.
> 
> --bb

You are correct that C++ has multiple standard libraries, but you neglect 
the key point: They all work together, and for the most part they offer 
complimentary rather than competitive functions (ignoring of course the C 
and C++ standard libs which clearly do clash but for a valid reason)
Furthermore, the overall compilation result of C++ code -does- depend on 
a single specific 'standard' runtime library for entry point/exit 
handling and several other things like signal/exception handling and what 
have you.
Boost also does not replace nor prevent the use of the STL/std, and does 
not offer a lot of functionality provided by the stock standard libraries 
(I'm pretty sure boost does not provide POSIX or system API). I would 
call boost more of a heavily packed utility library.

On the other hand, in the case of Tango and Phobos you have to replace 
one of them to use the other, and their API compete with one another to 
the point of complete redundancy. This is a big difference compared to 
the C++ situation.
Top | Discussion index | About this forum | D home