[phobos] We desperately need... a clear development process.

spir denis.spir at gmail.com
Wed Nov 17 03:13:41 PST 2010


On Wed, 17 Nov 2010 03:45:10 +0100
Don Clugston <dclugston at googlemail.com> wrote:

> I suggest that in the ddoc at the top of each module, we add a section
> named something like "Stability:" or "Development Status:"
> This section can state anything from "Highly experimental, subject to
> change without notice" to "stable, non-breaking changes only"
> to "scheduled for deprecation, will be marked as deprecated in
> DMD2.060 and removed in DMD 2.070. Use std.newstuff instead.".
> If we do this, we can discourage users from relying too much on
> unstable parts of Phobos.
> (Ie, if somebody uses something marked as highly unstable, and their
> code breaks, it's their problem. If it was marked as stable and it
> breaks, it's our problem).
> 
> The current, rather ridiculous situation, is that we have users
> assuming that everything is equally stable (stifling Phobos
> development) or assuming that everything is equally unstable (making
> serious use of D2 impossible).


It seems necessary from a newcomer POV.

What about learning from other languages' stdlib implementation & evolution? More generally, about language development process? Python is an example in this domain (clear set of builtin features(*), 1 need <--> 1 tool(*), transition phases, deprecation warnings, PEPs...); maybe the evolution process (PEPs & 2 mailing lists) is just a bit too complicated.

For an outsider subscribed to D mailing lists, the development of D2 _seems_ a mess. It don't mean it is, actually have no idea, but to me it looks like beeing so. The development of Phobos even more.

But the biggest obstacle to D's adoption (at least D2, haven't tried D1) may be documentation. Possibly I should switch to D1 just to see if it makes a difference? TDPL is partly a great help, esp thank to explaining rationales, but:
* It addresses only the core language (not the libs).
* It introduces differences with the actual language.
* It frozes the language.
(The last point risks to be very bad in a while, imo. A language's life is a moving target, like for anything designed and highly complex. Rather let down TDPL as a dev. reference as soon as it's clear it's no more the goal, and prepare a new edition.)


Denis

(*) I mean one gets enough from the core language for most (general-purpose) programming tasks. If one has a special need (domain-specific), then there is _one_ dedicated package in the stdlib. If this tool does not fit one's expectation, then it's time to look for non-standard libs.
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com



More information about the phobos mailing list