From D Wiki
Revision as of 01:07, 1 February 2015 by AndreiAlexandrescu (talk | contribs) (H1 2015 Priorities)
Jump to: navigation, search


This document discusses high-level vision for D. It is revised every six months (January and July of every year). This (2015H1) is the first instance of the vision document.

Progress in H2 2014

  • We've improved the core language and standard library, with a focus on quality.
  • 1539 pull requests created (1472 closed, 67 still open). Compare with 1546 in H1 (1516+30 respectively). The halves have been roughly equal in terms of github participation.
  • Adoption has continued to increase through H2. Daily 28-days moving average downloads: 524.393 on 2013/12/31, 700.54 on 2014/06/30, and 1226.64 on 2014/12/31. See chart.
  • DConf 2014 has been a success.

H1 2015 Priorities

  • Improving our brand

We aim to improve the brand of the D programming language. Part of that is raising the quality of all D-related materials: website, documentation, tutorials, reference, wiki, forums, etc. "This Week in D" is a related new initiative we plan to continue promoting. DConf 2015 is the premier event of the community. Regional meetups are also important for branding: London, Berlin, Silicon Valley.

  • Improving participation

Closing related to brand improvement, we plan to foster broader participation in the use and improvement of D. Our aim is to top 2000 pull requests by June 30, 2015.

  • Create the D Language Foundation

We aim to create a foundation that promotes understanding and adoption of the D programming language.

  • Improve language stability

Define appropriately fuzzily-defined areas of the language (e.g. shared semantics, @property). Foster library additions over language changes, and raise the bar on language changes.

vibe.d is a comprehensive approach to Web development written in D that is approaching maturity. We aim to raise its importance and relevance to D development: offer bundled installation with dmd, release in lockstep, make working with vibe.d an acceptance criterion for dmd release.

  • Memory Management

We aim to improve D's handling of memory. That includes improving the garbage collector itself and also making D eminently usable with limited or no use of tracing garbage collection. We aim to make the standard library usable in its entirety without a garbage collector. Safe code should not require the presence of a garbage collector.

  • Safety

We believe safety is an important aspect of language design, and we plan to continue building on the @safe/@trusted/@system troika.

  • C++ integration

Seamless integration with C and C++ is an essential competitive advantage of D. We aim to support significant C++ standard library interoperability by mid-2015 and full interoperability on at least one platform by end of 2015.

  • Quality

Quality of implementation (both language, standard library, and ecosystem) remains an overall goal.

  • Foster additions to the standard library and third-party libraries

We prefer adding new components to the standard library over refactorings and reorganizations of those that work (barring bug fixes). Our vision is to foster a large standard library complemented by a strong battery of third-party libraries. Aspects like Networking, concurrent/parallel/distributed programming, and database connectivity are of interest to placing in the standard library.