Standard Lib /
Suggested Resolutions
Note that a solution has been chosen for D2.
1 Plug and Play Standard Libraries
dmd uses a file called dmd.conf which tells it where to find its standard library. Why not expand this file to allow for any number of library choices that can be selected with a compiler switch? Tango should ship with D2 and Phobos can come as a download extension. Other libraries could be thrown in: std2, tangobos.
1.1 What is Unresolved
- It is true that this does not solve the D has 2 standard libraries.
- Library developers, such as SWT, will feel pressure to support 2 standard libraries.
- New users will be confused by the split.
1.2 What is Resolved
What I have seen, there will not be ONE standard. Phobos and Tango will be competing for a long time if not through D's entire life.
- Program developers don't have to support 2 libraries. If I decide to code in Tango, why should I have to request Gregor to port DSSS to Tango when the compiled version already works with compiling Tango code. With this solution I just tell dmd to compile with Phobos and I'm all ready to install it.
- The majority of users will get Tango and not have to deal with installing it.
- Phobos users still have fast access to Phobos.
- It will give a chance to see which library really will make a hit. Programs can be developed with either base and very little concern can be placed on what your users will prefer. (no more Tango is not the Standard Lib)
- If something even better comes along, there is no need to change anything. The power is given to the user to decide based on the community backing.
1.3 Final Thoughts
Tango and/or Phobos could flourish or flop. D is still young and I think it would be good to allow choice and see where things go. The D community is already split and it may always be. This topic should probably be revisited with every new release of D (read initial major version release).
2 Tango Takeover
Tango is given the position as The standard library. Phobos is placed on the sidelines and used by those that want to.
2.1 What is Unresolved
- Library developers may have pressure to develop on both.
- Still leaves new users confused.
2.2 What is Resolved
- One standard library with an alternate base library.
- Fewer people will have to switch their library.
- Community gets more say over the Standard Library.
2.3 Final Thoughts
This will probably reduce the discussion about the standard library in the newsgroup. But since people still use Phobos there will still be conflicting motion.
3 Phobos Released
Leave Phobos where it is, open it up to a handful of the community to manage. Tango can stay around as a base library.
3.1 What is Unresolved
- Tango still has a good hold on programs/libraries.
- Library developers will still have pressure to develop for both.
- New users will still get to deal with choices.
3.2 What is Resolved
- Only one standard library.
- Phobos will not be seen as stale.
- Community gets more say over the Standard Library.
3.3 Final Thoughts
Phobos could become hard to maintain when the compile introduces breaking features. Walter might have to maintain his own branch for testing of changes quickly.