D growing pains (was Re: The Demise of Dynamic Arrays?!)

Bane branimir.milosavljevic at gmail.com
Fri Dec 18 03:59:32 PST 2009


Lars T. Kyllingstad Wrote:

> Kevin Bealer wrote:
> > Walter Bright Wrote:
> > 
> >> Kevin Bealer wrote:
> >>> To smooth this out, it would help to have the best practices for
> >>> doing common things in D (e.g. serialization, logging) somewhat
> >>> documented for the consumption of non-experts.  I wonder what a good
> >>> way of doing this is?
> >> It's really impossible to predict what the best practices would be. Only 
> >> time and usage will tell. The "best practices" for both C and C++ have 
> >> evolved significantly over time.
> > 
> > I think D2 is so different from D (and in some important ways, from everything out there) that a new usage style would have needed to be created even if D was already the lingua franca.
> > 
> > The question that I find myself thinking is -- is chaos better or is it better to try to establish a particular style of programming (however simply or poorly) in the original books and resources that a programmer will find upon discovering D?
> > 
> > Chaos has its appeal of course, but others would say that any initial style that will stick is better than no style.  In other words, that you cannot evolve until you cohere.  It's hard to choose...  On the other hand I suppose Phobos is consistent enough with itself that if people follow that they will have a launch point.
> 
> If naming guidelines are a part of the "coding style" you mention, then 
> Phobos isn't very consistent. I think this needs to be fixed before TDPL 
> comes out, even though the renaming will cause major breakage. This is 
> the last chance to get it right.
> 
> Some examples:
> 
>   - function naming:
>         std.file.isfile()
>         std.math.isFinite()
>         std.thread.thread_suspendAll()
> 
>   - enum naming
>         std.file.SpanMode { shallow, depth, ... }
>         std.getopt.config { caseSensitive, caseInsensitive, ... }
>         std.json.JSON_TYPE { STRING, INTEGER, ... }
>         std.thread.State { HOLD, EXEC, ... }
> 
> -Lars

I find 
 alias std.file.SpanMode std.file.spanMode;
 alias std.file.SpanMode std.file.span_mode;
 etc.
usefull in some situations.



More information about the Digitalmars-d mailing list