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 */ } )