Difference between revisions of "Vision/2016H2"
(Category:Vision Statements) |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 35: | Line 35: | ||
;The D Language Foundation | ;The D Language Foundation | ||
− | :The plan is to file for non-profit status before September 1, 2016 | + | :The plan is to file for non-profit status before September 1, 2016 |
− | :The Foundation has initiated collaboration with [http://tech-lounge.ro Tech Lounge], an organization that helps finishing students and fresh graduates accumulate industrial experience working on high-impact projects | + | :The Foundation has initiated collaboration with [http://tech-lounge.ro 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 | + | :The Foundation has in working a number of speaking engagements that will add funds to its coffers |
− | :Initiate and advertise sponsorship and membership programs | + | :Initiate and advertise sponsorship and membership programs |
− | :Pursue academic collaborations | + | :Pursue academic collaborations |
− | :Create online swag store | + | :Create online swag store |
+ | |||
+ | :Foster articles, books, talks on D | ||
;Improve organization | ;Improve organization | ||
Line 78: | Line 80: | ||
:Improve C++ inter-operability: struct mangling, Windows exceptions. Improve Objective-C interoperability. | :Improve C++ inter-operability: struct mangling, Windows exceptions. Improve Objective-C interoperability. | ||
+ | |||
+ | ;Tooling | ||
+ | |||
+ | :Improve integration of dub, take advantage of its presence in the standard distribution | ||
+ | |||
+ | :Continue work on modularizing compiler-front-end as a library, which will enable many other tools | ||
+ | |||
+ | :Keep an eye for collaboration on large tooling projects: IDEs, debuggers, editors, etc. | ||
;Quality | ;Quality | ||
Line 89: | Line 99: | ||
:Eliminate Phobos dependency on GC (in other words, make GC opt out a viable and simple option). | :Eliminate Phobos dependency on GC (in other words, make GC opt out a viable and simple option). | ||
− | + | :Review all Phobos modules for compatibility with ranges - std.zip, for example, was done before ranges and does not work with them | |
:Replace modules that are lacking in quality: json, xml | :Replace modules that are lacking in quality: json, xml | ||
+ | :Strengthen definition of ranges, possibly improve API | ||
+ | :New modules such as: containers, SI units, rational numbers, fixed-point numbers, big decimals, unit testing framework, benchmarking, linear algebra. | ||
+ | :Use -cov to improve code coverage of Phobos modules | ||
+ | :Make sure every function in Phobos has an example | ||
+ | :Make sure every function in Phobos has Params: and Returns: sections http://www.digitalmars.com/d/archives/digitalmars/D/Phobos_Documentation_-_call_to_action_258777.html | ||
+ | :Take inspiration from popular modules in other languages for adding modules to Phobos | ||
+ | :Improve green threads/fiber support | ||
+ | :Create a module that enables code to be run on GPUs | ||
+ | :Create the interface code to the C++ STL | ||
+ | :Review all of Phobos for @safe compatibility | ||
+ | :Remove dependency on autodecode from Phobos | ||
+ | : | ||
− | |||
− | : | + | [[Category:Vision Statements]] |
Latest revision as of 05:42, 18 May 2018
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
- Foster articles, books, talks on D
- 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.
- 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.
- Tooling
- Improve integration of dub, take advantage of its presence in the standard distribution
- Continue work on modularizing compiler-front-end as a library, which will enable many other tools
- Keep an eye for collaboration on large tooling projects: IDEs, debuggers, editors, etc.
- Quality
- Improve CTFE
- Fix problems with excessively long mangled names
- Improve internal memory management of compiler
- Continue improving DMD front end internals
- Standard Library
- Eliminate Phobos dependency on GC (in other words, make GC opt out a viable and simple option).
- Review all Phobos modules for compatibility with ranges - std.zip, for example, was done before ranges and does not work with them
- Replace modules that are lacking in quality: json, xml
- Strengthen definition of ranges, possibly improve API
- New modules such as: containers, SI units, rational numbers, fixed-point numbers, big decimals, unit testing framework, benchmarking, linear algebra.
- Use -cov to improve code coverage of Phobos modules
- Make sure every function in Phobos has an example
- Make sure every function in Phobos has Params: and Returns: sections http://www.digitalmars.com/d/archives/digitalmars/D/Phobos_Documentation_-_call_to_action_258777.html
- Take inspiration from popular modules in other languages for adding modules to Phobos
- Improve green threads/fiber support
- Create a module that enables code to be run on GPUs
- Create the interface code to the C++ STL
- Review all of Phobos for @safe compatibility
- Remove dependency on autodecode from Phobos