Vision/2017H1

From D Wiki
Revision as of 23:19, 3 January 2017 by AndreiAlexandrescu (talk | contribs) (H1 2017 Priorities)
Jump to: navigation, search

Meta

This document discusses the high-level vision for D with semestrial granularity. It is released in 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.

H2 2016 Review

The D Language Foundation
Since 2016 we are a 501(c) public charity organization.
Since November the Foundation has granted 4 scholarships to MSc students at University "Politehnica" Bucharest.
The Foundation has a positive balance sheet from DConf 2016 and a number of speaking and training engagements. We have two years of autonomy with the current balance and expense structure.
Organization
Martin Nowak has improved the release model and integration of fixes.
Raising participation
Sebastian Wilzbach, Martin Nowak, and Vladimir Panteleev have improved automation in the process of creating, reviewing, and integrating contributions.
Scholarship recipients started contributing to the codebase
Contributions on github have declined compared to last year, as shown in this table:
Year Pull Requests Created
2011 1134
2012 1846
2013 2891
2014 2954
2015 3246
2016 3074


Safety and Memory Management
We are on track for pulling DIP1000 by the end of the year
PR4878 is the first safe reference counted buffer of bytes. It is not general enough because it does not offer reference to its elements.
Walter Bright has fixed many bugs that allow unsafe behavior in @safe code.

H1 2017 Priorities

We have decided to focus on three overarching goals in the first six months of 2017:

1. @safety: we aim to enable large-scale uses of D with safety guarantees.

2. @nogc: Use of D without a garbage collector, most likely by using reference counting and related methods for reclamation of resources. This task is made challenging by the safety requirement.

3. Static introspection: We believe this is an important strategic advantage of D and we should continue to improve both compiler support and library support.

All other goals are secondary or adjunct to the above. Such include:

  • Better support for C-style libraries with light or no runtime
  • Improved support for vector instructions in the front- and back-end
  • Redoing compiler code into lowerings and __traits-based introspection that leverage client code, thus moving compiler smarts into simpler library facilities
  • Make life easier for alternative backends (gdc, ldc) and library designers