DIP54 : revamp of Phobos tuple types

JR zorael at gmail.com
Mon Dec 23 05:58:11 PST 2013


Disclaimer: I am a newbie and I have *almost* understood the 
difference between built-in tuples, Tuple and TypeTuple. Almost. 
I'll have to get back to you on that. I also have some bad 
history with auto-expansion from my work with bash scripts, but 
that's for me and my therapist.

On Monday, 23 December 2013 at 11:08:26 UTC, Andrej Mitrovic 
wrote:
> We always seem to forget that all newbies will eventually become
> experienced current users. Current (experienced) users need a 
> little
> respect as well, not everything has to be tailored to the next 
> batch
> of newbies by breaking existing users' code. Documentation and
> tutorials are the solutions here.

This assumes that said newbies stick with the language instead of 
moving on to something with a better-paved learning curve. 
Hyperbole analogy: I'd love to be able to play the violin, but to 
my hands the threshold is nigh insurmountable, despite textbooks 
showing me how.

Excuse the argument from authority, but I seem to recall that 
Andrei and/or Walter suggesting that D's focus should now be on 
stability and avoiding breaking changes -- except where such make 
code *right*. To my naïve eyes, it seems like we could be 
preserving entropy where we're currently not, but then I don't 
fully grasp to what extent it would break existing code.

(As an aside, I'd love for built-in tuples not to implicitly 
expand either. Maybe this is one of those things I can achieve 
using functionality surrounding said other tuples I don't 
understand yet, as an inverse to an .expand property. void 
foo(alias fun, Args...)(Args args) { fun(args.raw); /* or 
unexpanded or other UFCS call */ } )


More information about the Digitalmars-d mailing list