Difference between revisions of "Vision/2017H2"
(16 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
== Meta == | == Meta == | ||
− | This document discusses the high-level vision for D with semestrial granularity. It is released in January and July of each year. | + | 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. |
− | + | == H1 2017 Review == | |
+ | |||
+ | ;The D Language Foundation | ||
+ | |||
+ | :DConf 2017 organized with help from Sociomantic was a success. The number of attendees (over 100) was flat compared to DConf 2016. | ||
+ | |||
+ | :Expenses for H1 2017 have averaged at $5600 per month. These include recurring expenses (scholarships, contract payments) as well as one-time items (legal, accounting, travel reimbursements for DConf 2017). | ||
+ | |||
+ | :The conference registration proceeds, training engagements, and donations have maintained our financial health. | ||
+ | |||
+ | :The scholarship recipients have created [https://github.com/search?utf8=%E2%9C%93&q=user%3Adlang+author%3ARazvanN7+author%3Aedi33416+author%3ADarredevil+author%3Asomzzz+created%3A2017-01-01..2017-06-30&type=Issues 57 pull requests]. Each delivered a status report on their respective projects at DConf 2017. | ||
+ | |||
+ | :One scholarship student dropped out, leaving the STL integration project opened. | ||
+ | |||
+ | ;Organization | ||
+ | |||
+ | :Operation has been smooth with the help of Martin Nowak, Vladimir Panteleev, and Sebastian Wilzbach. | ||
+ | |||
+ | :Mike Parker accepted increasing formal responsibilities in public relations and DIP management. | ||
+ | |||
+ | ;Participation | ||
+ | |||
+ | :H1 2017 has been flat in total pull requests compared to to H1 2016: [https://github.com/pulls?utf8=%E2%9C%93&q=is%3Apr+user%3Adlang+created%3A2017-01-01..2017-06-30+ 1698] vs. [https://github.com/pulls?utf8=%E2%9C%93&q=is%3Apr+user%3Adlang+created%3A2016-01-01..2016-06-30 1702]. Of these, 178 are open indicating that reviews are a bottleneck of increasing the PR traffic. | ||
+ | |||
+ | :We have added merge rights to three contributors and are looking for more. | ||
+ | |||
+ | :The new DIP process is enjoying good success so far with two accepted, one postponed, and two rejected. | ||
+ | |||
+ | :Peak [http://erdani.com/d/downloads.daily.png 28-day moving average] of dmd downloads from the main site has been 1793.14 downloads/day on 2017-04-19. This is lower than our absolute record (2197.39 on 2016-11-18 attributed to Andrei's visit in China) but it is the second all-time best and a 17% increase over the best in H1 2016 (1527.07 2016-05-01). | ||
+ | |||
+ | ;Safety and Memory Management | ||
− | + | :Work on safe containers has made significant progress and has prompted improvements to allocators that are still ongoing. | |
− | + | :There has been progress but not sufficient to deem the matter addressed. | |
== H2 2017 Priorities == | == H2 2017 Priorities == | ||
Line 13: | Line 43: | ||
=== Technical === | === Technical === | ||
− | + | The three main goals of the remainder of 2017 are: | |
+ | |||
+ | 1. '''<tt>@safe</tt>ty:''' we aim to enable large-scale uses of D with safety guarantees. | ||
+ | |||
+ | 2. '''<tt>@nogc</tt>:''' 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. | ||
+ | |||
+ | 3. '''Improve interoperability with other languages:''' Finishing <tt>-betterC</tt> should improve incremental migration of C and C++. | ||
+ | |||
+ | Of these, the first two are the same as in the first half. | ||
+ | |||
+ | The major D contributors plan to work on a variety of projects related to various degrees to the three high-level goals above: | ||
+ | |||
+ | * Static introspection remains an important strategic advantage of D and we should continue to improve both compiler support and library support. The <tt>static foreach</tt> DIP by Timon Gehr is a major development in the area. | ||
+ | * Dub fixes+improvements | ||
+ | * Add core.aa (https://github.com/dlang/druntime/pull/1282) | ||
+ | * Safe RC/Unique/WeakRef implementations (core.rc) | ||
+ | * <tt>@safe</tt> <tt>@nogc</tt> exceptions, general class objects | ||
+ | * Better error messages | ||
+ | * Partial and parallel recompilation (fix issues with scalable build methods, e.g. template instance emission) | ||
+ | * More lazy semantics | ||
+ | * Improve Phobos documentation (there are now the <code>properly_documented_public_functions</code> and <code>has_public_example</code> DScanner module blacklists - trimming them down module by module can be done by everyone) | ||
+ | * Infrastructure | ||
+ | ** Transition website docs to dpl-docs/ddox | ||
+ | ** Transition DPaste to https://run.dlang.io | ||
+ | ** Improve DTour (DUB support, templates, more translations) | ||
+ | ** Improve CI infrastructure (prevent random build failures, increase availability of the dub registry) | ||
+ | ** Setup benchmarking CI | ||
=== Non-Technical === | === Non-Technical === | ||
* Make it easier for people to contribute (aka remove entry barriers) | * Make it easier for people to contribute (aka remove entry barriers) | ||
− | ** | + | ** add more tooling to help with initial problems (e.g. [https://github.com/dlang-bot DLang-Bot]) |
− | ** | + | ** improve contributor documentation and getting started (should be done by people who haven't seen the DMD/Phobos setup & codebase) |
− | ** | + | ** encourage the "a fix is only a PR away" mentality (e.g. by means of blog post(s)) |
− | ** | + | ** reduce barrier of entry for potential contributors (e.g. bugzilla/forums registration) |
+ | |||
+ | * Increase motivation of existing contributors | ||
+ | ** avoid PRs being stalled in the review queue | ||
+ | ** increase interaction/communication between contributors. NG, mailing list, IRC, Slack | ||
+ | ** make it easy for contributors to adopt a small-scale project (e.g. approved functions to Phobos, ...) | ||
+ | ** clean up outdated Bugzilla entries, to make actionable issues easier to find | ||
+ | ** promote the beginner/bootcamp Bugzilla tags (they are currently hard to find) | ||
+ | ** publish blog post(s) about a "success story" such as [http://dlang.org/blog/2016/06/16/find-was-too-damn-slow-so-we-fixed-it this one] | ||
+ | ** foster a positive, constructive, and professional environment | ||
− | + | [[Category:Vision Statements]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 20:33, 2 June 2018
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.
H1 2017 Review
- The D Language Foundation
- DConf 2017 organized with help from Sociomantic was a success. The number of attendees (over 100) was flat compared to DConf 2016.
- Expenses for H1 2017 have averaged at $5600 per month. These include recurring expenses (scholarships, contract payments) as well as one-time items (legal, accounting, travel reimbursements for DConf 2017).
- The conference registration proceeds, training engagements, and donations have maintained our financial health.
- The scholarship recipients have created 57 pull requests. Each delivered a status report on their respective projects at DConf 2017.
- One scholarship student dropped out, leaving the STL integration project opened.
- Organization
- Operation has been smooth with the help of Martin Nowak, Vladimir Panteleev, and Sebastian Wilzbach.
- Mike Parker accepted increasing formal responsibilities in public relations and DIP management.
- Participation
- H1 2017 has been flat in total pull requests compared to to H1 2016: 1698 vs. 1702. Of these, 178 are open indicating that reviews are a bottleneck of increasing the PR traffic.
- We have added merge rights to three contributors and are looking for more.
- The new DIP process is enjoying good success so far with two accepted, one postponed, and two rejected.
- Peak 28-day moving average of dmd downloads from the main site has been 1793.14 downloads/day on 2017-04-19. This is lower than our absolute record (2197.39 on 2016-11-18 attributed to Andrei's visit in China) but it is the second all-time best and a 17% increase over the best in H1 2016 (1527.07 2016-05-01).
- Safety and Memory Management
- Work on safe containers has made significant progress and has prompted improvements to allocators that are still ongoing.
- There has been progress but not sufficient to deem the matter addressed.
H2 2017 Priorities
Technical
The three main goals of the remainder of 2017 are:
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.
3. Improve interoperability with other languages: Finishing -betterC should improve incremental migration of C and C++.
Of these, the first two are the same as in the first half.
The major D contributors plan to work on a variety of projects related to various degrees to the three high-level goals above:
- Static introspection remains an important strategic advantage of D and we should continue to improve both compiler support and library support. The static foreach DIP by Timon Gehr is a major development in the area.
- Dub fixes+improvements
- Add core.aa (https://github.com/dlang/druntime/pull/1282)
- Safe RC/Unique/WeakRef implementations (core.rc)
- @safe @nogc exceptions, general class objects
- Better error messages
- Partial and parallel recompilation (fix issues with scalable build methods, e.g. template instance emission)
- More lazy semantics
- Improve Phobos documentation (there are now the
properly_documented_public_functions
andhas_public_example
DScanner module blacklists - trimming them down module by module can be done by everyone) - Infrastructure
- Transition website docs to dpl-docs/ddox
- Transition DPaste to https://run.dlang.io
- Improve DTour (DUB support, templates, more translations)
- Improve CI infrastructure (prevent random build failures, increase availability of the dub registry)
- Setup benchmarking CI
Non-Technical
- Make it easier for people to contribute (aka remove entry barriers)
- add more tooling to help with initial problems (e.g. DLang-Bot)
- improve contributor documentation and getting started (should be done by people who haven't seen the DMD/Phobos setup & codebase)
- encourage the "a fix is only a PR away" mentality (e.g. by means of blog post(s))
- reduce barrier of entry for potential contributors (e.g. bugzilla/forums registration)
- Increase motivation of existing contributors
- avoid PRs being stalled in the review queue
- increase interaction/communication between contributors. NG, mailing list, IRC, Slack
- make it easy for contributors to adopt a small-scale project (e.g. approved functions to Phobos, ...)
- clean up outdated Bugzilla entries, to make actionable issues easier to find
- promote the beginner/bootcamp Bugzilla tags (they are currently hard to find)
- publish blog post(s) about a "success story" such as this one
- foster a positive, constructive, and professional environment