Vision/2016H2

From D Wiki
Revision as of 17:08, 8 July 2016 by AndreiAlexandrescu (talk | contribs) (H2 2016 Priorities)
Jump to: navigation, search

Meta

This document discusses the high-level vision for D. It is revised every six months (January and July).

Note: This document focuses on goals the D leadership will personally enable or make happen, or strongly believes are important for the success of the D language. Other contributions are always welcome and do not need to be necessarily aligned with this document.

H1 2016 Review

The D Language Foundation
We failed to apply for nonprofit status before the end of H1. Currently the application has been drafted and is under review by a CPA and an attorney.
Raising participation
Participation during 2016H1 has been steady but has been below expectations. Of the 2000 PRs planned for H1 we achieved 1711.
Foster brand awareness
We have had good results in this area. DConf 2016 has been a success with over 140 participants, a solid program, and an enthusiastic atmosphere. D has been featured in talks at ACCU and NDC Oslo. A number of local meetups (Bay Area, Boston, Berlin etc) took place.
The official D Blog has been created under the care of Michael Parker and already has good content.
A formalization of the DIP process has been initiated by Dicebot.
Tooling

DUB will be deployed with dmd starting with the next release.

Other

Other topics from H1 underwent only little development and will be copied as ongoing topics for H2: safety, memory management, tooling, improve language stability and specification, C++ and Objective C integration, library additions, smartphone support.

H2 2016 Priorities

The D Language Foundation
The plan is to file for non-profit status before September 1, 2016.
The Foundation has initiated collaboration with Tech Lounge, an organization that helps finishing students and fresh graduates accumulate industrial experience working on high-impact projects.
The Foundation has in working a number of speaking engagements that will add funds to its coffers.
Initiate and advertise sponsorship and membership programs.
Pursue academic collaborations.
Create online swag store.
Improve organization
More stable release model, better integration of fixes, maintaining LTS releases for professional users. Regressions should be paid utmost attention.
Better management of language and phobos development, consensus on strategies, basic project management for bigger features, better administration of DIPs and module review queue.
Raising participation
More automation: bot for pinging reviewers (mention-both, highfive), automatic linting of pull requests, dfmt, automatically build dub packages to assess regression impact.
We continue to actively look for "promoting" contributors into top, heavy-hitting ranks: owners of important projects and responsibilities, code reviewers, designers, technical leaders.
Foster newcomer experience: installation (first five minutes), documentation, articles, error messages (e.g. DIP83), debugging.
Safety and Memory Management
Safety and making the GC optional remain important concerns through the end of this year. We are putting them together because the GC alternatives we endorse must address safety.
Fix all errors in language design and implementation that allow unsafe behavior in @safe code.
Usable/useful escape reference analysis (finished DIP25, scope methods to avoid escaping of this, in = const scope, D variadic arguments) to enable more efficient resource management (see example)
Improve the GC.
Eliminate Phobos dependency on GC (in other words, make GC opt out a viable and simple option).
Flesh out and solidify std.experimental.allocator
Improve compiler support so ref counting can be done @safely.
Interoperability
Improve C++ inter-operability: struct mangling, Windows exceptions. Improve Objective-C interoperability.
Quality
Improve CTFE
Fix problems with excessively long mangled names
Improve internal memory management of compiler
Continue improving DMD front end internals