Difference between revisions of "Vision/2017H2"

From D Wiki
Jump to: navigation, search
(Non-Technical)
 
(15 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.
  
Note: This document focuses on goals 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
  
== H1 2017 Review ==
+
:Work on safe containers has made significant progress and has prompted improvements to allocators that are still ongoing.
  
TODO
+
:There has been progress but not sufficient to deem the matter addressed.
  
 
== H2 2017 Priorities ==
 
== H2 2017 Priorities ==
Line 13: Line 43:
 
=== Technical ===
 
=== Technical ===
  
TODO
+
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 (there are a few of ideas in the [https://github.com/dlang-bot DLang-Bot] queue, which should get deployed in the near future)
+
** 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)
 
** 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))
 
** encourage the "a fix is only a PR away" mentality (e.g. by means of blog post(s))
Line 27: Line 83:
 
** increase interaction/communication between contributors. NG, mailing list, IRC, Slack
 
** 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, ...)
 
** 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)
 
** 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]
 
** 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]
** create a positive, constructive, and professional environment
+
** 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 and has_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