Developing a plan for D2.0: Getting everything on the table

Benji Smith dlanguage at benjismith.net
Sun Jul 26 20:36:06 PDT 2009


Andrei Alexandrescu wrote:
> Benji Smith wrote:
> Maybe if Andrei put together a list of 
>> missing Phobos functionality, we could get people from the community 
>> to flesh out the libs.
> 
> I think we'd need at a minimum:

<snip>

> That would be great. In general, it would be awesome to gather more 
> contributions from the community. There's a thirst to contribute and 
> we'll be glad to involve this group into some serious design e.g. for 
> concurrency support, as well as accept code for functionality that 
> belongs to the standard library.
> 
> In the bulleted list above there are many mini-projects that are 
> confined enough to be done by one willing individual in a relatively 
> short time.

Are there contributor guidelines somewhere?

For example, should the author of a container library prefer classes or 
structs? Should other (non-container) modules accept container classes 
as arguments? Or only container interfaces (if there are any such 
things) or just ranges?

Is it appropriate to use an empty struct purely as a namespace for the 
introduction of free functions? Or should free functions be placed at 
the module level?

Is it appropriate to define multiple classes, structs, templates, etc 
within a single module? What considerations should inform the decision 
regarding the placement of module boundaries?

What constitutes appropriate/inappropriate usage of opCall?

Anyhoo...

Point being, Phobos_1 was a hodgepodge of different conventions and 
styles. Tango_1 was considerably better, in terms of stylistic 
uniformity. But it used a very different set of idioms than Phobos_1 
(lots of predicate functions, "sink" delegates, etc). Probably any 
author contributing code to Phobos_2 should spend a little time getting 
up to speed with the preferred idioms before writing code.

I suspect that my humble little JSON parser uses styles and idioms that 
would clash with the majority of Phobos_2 (since my programming pedigree 
comes from Java, C#, JavaScript, and Perl much moreso than C or C++).

--benji



More information about the Digitalmars-d mailing list