Hello Steven,
"Piotrek" wrote
Hello!
It's just an idea. After reading about issues on disallowing DWT to
stay in standardization area (Anomaly on Wiki4D GuiLibraries page)
some question appeared in my mind. For propaganda sake isn't it
better to not make such a big division between phobos and tango in
the module naming? Logically:
phobos -> std
tango -> stdex (not tango -> tango)
Let's not forget the licensing issues. Tango is incompatible with
some developers license wise, as you must include attribution for
Tango in any derivative works (i.e. compiled binaries). Phobos has a
less restrictive opt-in policy. I think Walter intends to keep it
that way, at least for DMD. Note that other compilers are free to use
Tango or their own standard library, the D spec is pretty free from
library references.
With regards to Tango for D2. It is going to happen. It may not be
tomorrow, but it will probably be done this year. To answer some
questions throughout this discussion, it will look similar to
Tango/D1, but will utilize many of the features of D2, as well as obey
the requirements. For example, it's not simply going to cast away
const to keep the implementation closer to D1. So it will look
different than Tango/D1 and most likely, will not be one code base.
Which means, people will have to maintain both, which is no small
feat. But it can (and will) be done. I like D2 too much to not do it
:)
The Tango D2 branch currently in SVN compiles and runs on Linux DMD
2.019. We have basic functionality for many of the examples, but not
all unit tests pass. However, it should be usable to test simple
code. So far, we have ported completely tango.core and
tango.util.log. We have yet to incorporate druntime, as I didn't want
to tackle issues that might be in druntime as well as porting issues.
I think I will try to upgrade to 2.023, as it seems druntime/compiler
interaction is getting a lot more stable, and then continue porting.
I don't see Tango and Phobos becoming more like one or the other, but
as others have said, there are definite sections of code that can be
used from both without interference. I/O is not one of them, and I
don't see that changing. But due to the open source nature, you can
port or re-implement features of one library into the other, so while
you may be choosing between two different styles, you shouldn't have
to choose one or the other for functionality.
I also don't think this is a bad thing. One of two things will
happen. Either one library totally dominates the other, and eventually
everyone starts using the more popular one (the Beta/VHS route), or
both libraries flourish, and due to the common runtime, can be used
concurrently in projects (the KDE/GNOME route). Either way, I don't
see the current rift between Tango/Phobos being a major detriment to
D. It will be short-lived IMO.
-Steve
A fair analysis, but I think incomplete. Once again, the problem has more
to do with the perception of new users and outsiders. I believe those of
is in here, those of us who have frustrated and agonized over D over the
last few years are going to be in a much better position of accepting the
situation as it develops: we've grown with it, so our sympathies are well
rooted -- we may very much enjoy having the option of using either of or
both of two great libraries. I can easily agree that your analysis has some
sense to it because of that.
But, as I said before, the hardest part remains in finding a method to promote
it as a "good thing" to everyone else who has no real emotional attatchment
to the language, those who see learning a language as a synonymous with learning
one "standard" library (because that seems to be the general history of programming
languages). Maybe I'm wrong about this one (I hope I am wrong, and you are
right), but I don't think it's wise to completely discredit the possibility
of a problem in having two popular libraries at the core of D 2.0. If the
libraries do go the Beta/VHS route... well that's just a mercy for D.
Still trying to think positively, of course. :)
-JJR