Vision/2018H1
Meta
This document discusses the high-level vision for D with semestrial granularity. It is released in January and July of each year. Note that the goals presented are those the D leadership works on, explicitly fosters, 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 2017 Review
- The D Language Foundation
- Expenses for H1 2017 have averaged at $1605 per month. These include mostly recurring expenses (scholarships, contract payments).
- The Foundation has funds for over three years assuming no changes in expenses and no money inflow. We, however, expect both donations and expenses to increase.
- The scholarship recipients have created 154 pull requests.
- Organization
- The core team (Walter Bright, Andrei Alexandrescu, Ali Cehreli, Martin Nowak, Vladimir Panteleev, Sebastian Wilzbach, Mike Parker) kept operations working. There are new potential core collaborators.
- Participation
- H2 2017 has marked a 28.5% increase in total pull requests compared to to H2 2016: 1812 vs. 1410. Of these, 124 are open.
- We have continued to grant merge rights to strong contributors and fostered an increase in contribution quality and esprit de corps.
- Downloads of dmd have increased substantially, but we assume the data collection is imperfect because it does not account for repeated downloads from the same URL. So bots, repeated unsuccessful attempts, or manipulation can influence the statistics. We are working on a better tool.
- Safety and Memory Management
- Work on safe containers has slowed down but is still ongoing.
- Of new note is Alexandru Jercaianu's work on a new allocator that offers a safe free primitive. That opens new avenues for approaching memory management.
H1 2018 Priorities
Technical
We are doubling down on work on the following essential directions:
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 Unique/Weak references) for reclamation of resources. This task is made challenging by the safety requirement. We believe we have an attack in the upcoming allocators/collections combos.
3. Improve interoperability with other languages: Finishing -betterC should improve incremental migration of C and C++.
4. Improve introspection abilities: Make D the most powerful and easiest to use language for advanced introspection, code generation, and flexible designs. The approach must be two pronged - language improvements and libraries that use them gainfully.
5. Tooling: Define and allow others to define tools that help the use of the D language by everyone.
Virtually all efforts we drive should be assessed and benchmarked relative to these goals.