Vision/2015H1
Meta
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.
- 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.
- Emphasize vibe.d
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. Our aim is to top 2000 pull requests by June 30, 2015.
- 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.