Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Library Strategy

Interviews with two of the Tango leads were recently published. A segment of those interviews are pertinent to the direction and strategy of Tango, and are thus reproduced here:

Tango, as it stands, is a fairly comprehensive library. Where do you see it heading in the future? What is the ultimate goal?

Tango will remain a medium-weight library; it’s not intended to be a Java-style runtime, with everything bundled. The core goals are to offer the kind of services we find useful, and to enable those in an efficient manner.

We decided early on that Tango would take the route of “library extensions”, instead of tossing the proverbial kitchen-sink into the core. The intent behind that is to provide “enough” useful facilities in the core to spur development elsewhere, but not to the point where it stifles innovation.

For example, there are a few network-oriented clients in Tango, but no servers ~ there are many ways to skin the server cat, so we omit those to provide space for both innovation and alternatives. Clients are much duller, so we include them as a means to jump-start development.

Tango has come quite a long way in a rather short time and is still evolving. Are there any features currently missing from Tango that you would like to add? What can we expect to see in future versions?

As D is a new language, the D programming community contains a large number of library developers and other “pioneers” compared to some of the more entrenched programming communities.

Also, recent exposure to Ruby Gems and similar projects have provided useful insight into some ways a completely modular library might be realized. With Tango, we are attempting to unify these ideas by providing a framework for cohesive development as much as we are a robust, user-level library.

It is my hope that this will encourage the D community to continue amazing us with their work rather than stifling development because Tango “already does that.” Once Tango reaches 1.0, I suspect much of our library development work will shift into separate projects designed to integrate with or to extend Tango, but they will not be bundled with Tango releases. This places our work on non-essential features on the same footing as that of the community as a whole, and will encourage us to make the distribution and maintenance of external packages as easy as possible.

  • Interview with Sean
  • Interview with Kris