Difference between revisions of "Vision/2015H1"

From D Wiki
Jump to: navigation, search
(Created page with "== Meta == This document discusses high-level vision for D. It is revised every six months (January and July of every year). This (2015H1) is the first instance of the vision...")
 
(H1 2015 Priorities: internal link format for wiki links)
 
(16 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
== Meta ==
 
== Meta ==
  
This document discusses high-level vision for D. It is revised every six months (January and July of every year). This (2015H1) is the first instance of the vision document.
+
This document discusses the high-level vision for D. It is revised every six months (January and July of every year). This (2015H1) is the first instance of the vision document.
 +
 
 +
Note: This document focuses on goals the D leadership will personally enable or make happen. Other contributions that don't require their help are always welcome.
  
 
== Progress in H2 2014 ==
 
== Progress in H2 2014 ==
Line 7: Line 9:
 
* We've improved the core language and standard library, with a focus on quality.
 
* We've improved the core language and standard library, with a focus on quality.
  
* [http://goo.gl/mM4Ofj 1539 pull requests] created (1472 closed, 67 still open). Compare with [http://goo.gl/DyqH8v 1546 in H1] (1516+30 respectively). Closing rate: [http://goo.gl/CLr7a0 1565 in H2] vs. [http://goo.gl/PB88VD 1547 in H1]. The halves have been roughly equal in terms of github participation.
+
* [https://github.com/pulls?q=is%3Apr+user%3AD-Programming-Language+created%3A2014-07-01..2014-12-31 1539 pull requests] were created in the second half of 2014 (1472 closed, 67 still open). Compare with [https://github.com/pulls?q=is%3Apr+user%3AD-Programming-Language+created%3A2014-01-01..2014-06-30 1546 in H1 2014] (1516+30 respectively). The halves have been roughly equal in terms of github participation.
  
* Adoption has continued to increase through H2. Daily 28-days moving average downloads: 524.393 on 2013/12/31, 700.54 on 2014/06/30, and 1226.64 on 2014/12/31. [http://goo.gl/Pm1Syl See chart].
+
* Adoption has continued to increase through H2. Daily 28-days moving average downloads: 524.393 on 2013/12/31, 700.54 on 2014/06/30, and 1226.64 on 2014/12/31. [http://erdani.com/d/downloads.daily.png See chart].
  
* DConf 2014 has been a success.
+
* DConf 2014 was a success.
  
 
== H1 2015 Priorities ==
 
== H1 2015 Priorities ==
  
* Improving our brand
+
; Improve the brand
 +
 
 +
:We aim to improve the brand of the D programming language. Part of that is raising the quality of all D-related materials: website, documentation, tutorials, reference, wiki, forums, etc. "This Week in D" is a related new initiative we plan to continue promoting. DConf 2015 is the premier event of the community. Regional meetups are also important for branding: [http://www.meetup.com/London-D-Programmers/ London], [http://www.meetup.com/Berlin-D-Programmers/ Berlin], [http://www.meetup.com/D-Lang-Sillicon-Valley Silicon Valley].
 +
 
 +
; Raise participation
 +
 
 +
:Closely related to brand improvement, we plan to foster broader participation in the use and improvement of D. Our aim is to top 2000 pull requests by June 30, 2015.
 +
 
 +
; Create a D Language Foundation
 +
 
 +
:We aim to create a foundation that promotes understanding and adoption of the D programming language.
 +
 
 +
; Improve language stability
 +
 
 +
:Nail down fuzzily-defined areas of the language (e.g. <tt>shared</tt> semantics, <tt>@property</tt>). Foster library additions over language changes, and raise the bar on language changes.
 +
 
 +
; Switch to self-hosting (<code>ddmd</code>)
 +
 
 +
: Self-hosting has many advantages, among which opportunities to better engineer the compiler by using D's superior features.
 +
 
 +
; Emphasize [http://vibed.org vibe.d]
 +
 
 +
:vibe.d is a comprehensive approach to web development that is approaching maturity. We aim to raise its importance and relevance to D development: offer bundled installation with dmd, release in lockstep, make working with vibe.d an acceptance criterion for dmd releases.
 +
 
 +
; Memory Management
  
We aim to improve the brand of the D programming language. Part of that is raising the quality of all D-related materials: website, documentation, tutorials, reference, wiki, forums, etc. "This Week in D" is a related new initiative we plan to continue promoting. DConf 2015 is the premier event of the community. Regional meetups are also important for branding: [http://www.meetup.com/London-D-Programmers/ London], [http://www.meetup.com/Berlin-D-Programmers/ Berlin], [http://www.meetup.com/D-Lang-Sillicon-Valley Silicon Valley].
+
:We aim to improve D's handling of memory. That includes improving the garbage collector itself and also making D eminently usable with limited or no use of tracing garbage collection. We aim to make the standard library usable in its entirety without a garbage collector. Safe code should not require the presence of a garbage collector.
  
* Improving participation
+
; Safety
  
Closing related to brand improvement, we plan to foster broader participation to the use and improvement of D.
+
:We believe safety is an important aspect of language design, and we plan to continue building on the @safe/@trusted/@system troika.
  
* Create the D Language Foundation
+
; C++ integration
  
We aim to create a foundation that promotes understanding and adoption of the D programming language.
+
:Smooth integration with C and C++ is an essential competitive advantage of D. We aim to support significant C++ standard library interoperability by mid-2015 and full interoperability on at least one platform by the end of 2015.
  
* Improve language stability
+
; Quality
  
Define appropriately fuzzily-defined areas of the language (e.g. <tt>shared</tt> semantics, <tt>@property</tt>). Foster library additions over language changes, and raise the bar on language changes.
+
:Quality of implementation (language, standard library, and ecosystem) remains an overall goal.
  
* Emphasize vibe.d
+
; Foster additions to the standard library and third-party libraries
  
vibe.d is a comprehensive approach to Web development written in D that is approaching maturity. We aim to raise its importance and relevance to D development: offer bundled installation with dmd, release in lockstep, make working with vibe.d an acceptance criterion for dmd release. Essentially we aim at making vibe.d a major story of D and the leading sample application distributed with dmd.
+
:We prefer adding new components to the standard library over refactorings and reorganizations of those that work (barring bug fixes). Our vision is to foster a large standard library complemented by a strong battery of third-party libraries. Aspects like networking, concurrent/parallel/distributed programming, and database connectivity are of interest to place in the standard library.
  
* Memory Management
+
; Alternative compilers
  
We aim to improve D's handling of memory. That includes improving the garbage collector itself and also making D eminently usable with limited or no use of tracing garbage collection. We aim to make the standard library usable in its entirety without a garbage collector. Safe code should not require the presence of a garbage collector. Our aim is to top 2000 pull requests by June 30, 2015.
+
: [[GDC|gdc]] and [[LDC|ldc]] play an important role in the D ecosystem. They should continue to improve over this period.
  
* Safety
+
== In Search of Champions ==
  
We believe safety is an important aspect of language design, and we plan to continue building on the @safe/@trusted/@system troika.
+
A few domains/niches are desirable, but we lack expertise so we cannot help directly. We are in search of champions for these areas:
  
* C++ integration
+
; Smartphones (iPhone/Android)
  
Seamless integration with C and C++ is an essential competitive advantage of D. We aim to support significant C++ standard library interoperability by mid-2015 and full interoperability on at least one platform by end of 2015.
+
:Some enthusiasts have started intermittently working on Android and iOS support. We would like to see this fleshed out and mobile platform support brought to the same level as the current top-tier platforms.
  
* Quality
+
; Embedded systems
  
Quality of implementation (both language, standard library, and ecosystem) remains an overall goal.
+
:Some community members have expressed interest in using stripped-down versions of D on embedded systems.  Work will need to be done to modularize the compilers and runtime to enable such use in tightly constrained systems.
  
* Foster additions to the standard library and third-party libraries
 
  
We prefer adding new components to the standard library over refactorings and reorganizations of those that work (barring bug fixes). Our vision is to foster a large standard library complemented by a strong battery of third-party libraries. Aspects like Networking, concurrent/parallel/distributed programming, and database connectivity are of interest to placing in the standard library.
+
[[Category:Vision Statements]]

Latest revision as of 10:14, 17 May 2018

Meta

This document discusses the high-level vision for D. It is revised every six months (January and July of every year). This (2015H1) is the first instance of the vision document.

Note: This document focuses on goals the D leadership will personally enable or make happen. Other contributions that don't require their help are always welcome.

Progress in H2 2014

  • We've improved the core language and standard library, with a focus on quality.
  • 1539 pull requests were created in the second half of 2014 (1472 closed, 67 still open). Compare with 1546 in H1 2014 (1516+30 respectively). The halves have been roughly equal in terms of github participation.
  • Adoption has continued to increase through H2. Daily 28-days moving average downloads: 524.393 on 2013/12/31, 700.54 on 2014/06/30, and 1226.64 on 2014/12/31. See chart.
  • DConf 2014 was a success.

H1 2015 Priorities

Improve the brand
We aim to improve the brand of the D programming language. Part of that is raising the quality of all D-related materials: website, documentation, tutorials, reference, wiki, forums, etc. "This Week in D" is a related new initiative we plan to continue promoting. DConf 2015 is the premier event of the community. Regional meetups are also important for branding: London, Berlin, Silicon Valley.
Raise participation
Closely related to brand improvement, we plan to foster broader participation in the use and improvement of D. Our aim is to top 2000 pull requests by June 30, 2015.
Create a D Language Foundation
We aim to create a foundation that promotes understanding and adoption of the D programming language.
Improve language stability
Nail down fuzzily-defined areas of the language (e.g. shared semantics, @property). Foster library additions over language changes, and raise the bar on language changes.
Switch to self-hosting (ddmd)
Self-hosting has many advantages, among which opportunities to better engineer the compiler by using D's superior features.
Emphasize vibe.d
vibe.d is a comprehensive approach to web development that is approaching maturity. We aim to raise its importance and relevance to D development: offer bundled installation with dmd, release in lockstep, make working with vibe.d an acceptance criterion for dmd releases.
Memory Management
We aim to improve D's handling of memory. That includes improving the garbage collector itself and also making D eminently usable with limited or no use of tracing garbage collection. We aim to make the standard library usable in its entirety without a garbage collector. Safe code should not require the presence of a garbage collector.
Safety
We believe safety is an important aspect of language design, and we plan to continue building on the @safe/@trusted/@system troika.
C++ integration
Smooth integration with C and C++ is an essential competitive advantage of D. We aim to support significant C++ standard library interoperability by mid-2015 and full interoperability on at least one platform by the end of 2015.
Quality
Quality of implementation (language, standard library, and ecosystem) remains an overall goal.
Foster additions to the standard library and third-party libraries
We prefer adding new components to the standard library over refactorings and reorganizations of those that work (barring bug fixes). Our vision is to foster a large standard library complemented by a strong battery of third-party libraries. Aspects like networking, concurrent/parallel/distributed programming, and database connectivity are of interest to place in the standard library.
Alternative compilers
gdc and ldc play an important role in the D ecosystem. They should continue to improve over this period.

In Search of Champions

A few domains/niches are desirable, but we lack expertise so we cannot help directly. We are in search of champions for these areas:

Smartphones (iPhone/Android)
Some enthusiasts have started intermittently working on Android and iOS support. We would like to see this fleshed out and mobile platform support brought to the same level as the current top-tier platforms.
Embedded systems
Some community members have expressed interest in using stripped-down versions of D on embedded systems. Work will need to be done to modularize the compilers and runtime to enable such use in tightly constrained systems.