www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: At a crossroad

reply Kagamin <spam here.lot> writes:
Sjoerd van Leent Wrote:

 All of these environments have a stable language, and on top of that, ONE
single main library. With C++ this is STL/IOStream, with .NET and Java it's
their respective libraries. Similar for Python and Ruby. With D however, there
are at least 2 main libraries (Phobos and Tango), whereof Tango doesn't support
D2. It is unacceptable for the target audience to find this situation. Tools
can't interoperate, libraries can't interoperate, etc.

You can think of Phobos as one single main library for D, Tango is 3rd-party. 3rd-party libraries exist for .net and java, because their standard libs are no silver bullet of course, and there are so many general-purpose libs for C++, that you have not enough fingers to count them, STL is still alive only due to support from die-hard c-plus-plusers. As to the languages, C# evolves, C++ evolves, Java doesn't for the very reason it will wreak the same troubles for backward compatibility D2 has now.
Jul 01 2009
parent reply Sjoerd van Leent <svanleent gmail.com> writes:
Kagamin Wrote:

 Sjoerd van Leent Wrote:
 
 All of these environments have a stable language, and on top of that, ONE
single main library. With C++ this is STL/IOStream, with .NET and Java it's
their respective libraries. Similar for Python and Ruby. With D however, there
are at least 2 main libraries (Phobos and Tango), whereof Tango doesn't support
D2. It is unacceptable for the target audience to find this situation. Tools
can't interoperate, libraries can't interoperate, etc.

You can think of Phobos as one single main library for D, Tango is 3rd-party. 3rd-party libraries exist for .net and java, because their standard libs are no silver bullet of course, and there are so many general-purpose libs for C++, that you have not enough fingers to count them, STL is still alive only due to support from die-hard c-plus-plusers. As to the languages, C# evolves, C++ evolves, Java doesn't for the very reason it will wreak the same troubles for backward compatibility D2 has now.

Yes, however, the runtime of C++ isn't dictated by STL, ATL, WTL, boost, and whatever else. So it is still possible to link the stuff together. Although naming conventions become a first class horror. However, Tango and Phobos (D1) are simply incompatible. It's rather impossible to link both of them together. What I want to say is that with the emergence of D2, and hopefully with the emergence of a singular runtime (druntime), this problem will be over with. If library A is based on Tango and library B on Phobos, currently, it will not be possible to let them work together. I would still like that we all focus on D2 development.
Jul 01 2009
next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Sjoerd van Leent" <svanleent gmail.com> wrote in message 
news:h2fs94$1q37$1 digitalmars.com...
 However, Tango and Phobos (D1) are simply incompatible. It's rather 
 impossible to link both of them together.

 If library A is based on Tango and library B on Phobos, currently, it will 
 not be possible to let them work together.

Yea, but isn't this less of a problem in practice (even in the interim before a stable D2) than it's often made out to be? Of coruse, I can see how, on paper, it could be a horrible situation. But IMO the current reality is that, and no offence to Walter, but Phobos1 just kind of sucks. And because of that, the vast majority of D1 libs I've seen (at least the still-active ones) are either Tango or dual-version (using conditional compilation).
Jul 01 2009
parent Sjoerd van Leent <svanleent gmail.com> writes:
Nick Sabalausky Wrote:

 "Sjoerd van Leent" <svanleent gmail.com> wrote in message 
 news:h2fs94$1q37$1 digitalmars.com...
 However, Tango and Phobos (D1) are simply incompatible. It's rather 
 impossible to link both of them together.

 If library A is based on Tango and library B on Phobos, currently, it will 
 not be possible to let them work together.

Yea, but isn't this less of a problem in practice (even in the interim before a stable D2) than it's often made out to be? Of coruse, I can see how, on paper, it could be a horrible situation. But IMO the current reality is that, and no offence to Walter, but Phobos1 just kind of sucks. And because of that, the vast majority of D1 libs I've seen (at least the still-active ones) are either Tango or dual-version (using conditional compilation).

I agree that Phobos1 is not what we're looking for. But it makes things confusing to new developers. With serious problems in the long end. I'm just giving a warning that we shouldn't have a similar situation with D2. I think druntime is a good start at getting this solved. As Phobos2 is a lot better anyway, it wouldn't have the problems that currently exist. Basically I've got two hopes: - No confusing library situation for D2 - D2 is final for a longer time, in such a way that software tooling gets a chance I still believe it would help development and bringing D2 to the public.
Jul 02 2009
prev sibling parent Kagamin <spam here.lot> writes:
Sjoerd van Leent Wrote:

 I would still like that we all focus on D2 development.
 

Jul 02 2009