July 15, 2015
On Wednesday, 15 July 2015 at 11:50:43 UTC, Andrei Alexandrescu wrote:
> On 7/15/15 4:29 AM, Mike wrote:
>> On Wednesday, 15 July 2015 at 07:50:46 UTC, Dicebot wrote:
>>> Good to see another bad name merged in master ^_^
>>
>> Was there a good name suggested that wasn't vetoed by Walter or Andrei?
>
> s/good name/name that I like/

What makes a good name good?

Some people thought 'splat' sounded ridiculous, i.e., they didn't like it, but its use in PHP, Ruby, and other scripting operators, where it's really quite similar to its use in D, make it a 'good' candidate IMO. It doesn't have numerous alternative meanings in CS, like List/Tuple/Sequence, and its coinage is relatively recent, so recent that the Wiki entry https://en.wikipedia.org/wiki/Splat doesn't refer to its use as a term in programming yet. It's also short.

I liked 'Seq', because it is a bit ambiguous, unlike 'Tuple', which has the same meaning in many popular languages, but by most criteria 'Splat' is better.


July 15, 2015
On 15-Jul-2015 16:32, Deadalnix wrote:
> On Wednesday, 15 July 2015 at 11:49:46 UTC, Andrei Alexandrescu wrote:
>> On 7/15/15 3:50 AM, Dicebot wrote:
>>> Good to see another bad name merged in master ^_^
>>
>> So now we're at AliasTuple? -- Andrei
>
> Please go for splat. It turns out it is used by functional guy, in
> various scripting languages and in the compiler backend communities.
>
> The thing we are trying to name is a splat.

Seems like the best option w.r.t. naming things what they are.
Silly or not silly it's established and not confusing.


-- 
Dmitry Olshansky
July 15, 2015
On 7/15/15 9:54 AM, rsw0x wrote:
> On Wednesday, 15 July 2015 at 13:47:21 UTC, Steven Schveighoffer wrote:
>> On 7/15/15 9:28 AM, Deadalnix wrote:
>>> On Wednesday, 15 July 2015 at 08:29:40 UTC, Jonathan M Davis wrote:
>>>> [...]
>>>
>>> Tuple is the only name where we have actual, factual feedback. Hanging
>>> in the d irc chan for years, it is apparent that calling this tuple
>>> confuse people. That is a fact.
>>
>> It doesn't confuse me. We have type tuples and expression tuples
>> defined in the spec. An alias tuple can have both expressions and
>> types. It's not that confusing. What was confusing is that a TypeTuple
>> was not a type tuple as defined in the spec.
>>
>> All those tuples are already not the same as tuples as defined from
>> other languages. So all three explanations are going to confuse some
>> people. I don't think we can come up with a name that doesn't confuse
>> some set of people.
>>
>> This issue of naming this one thing is so long in the tooth, we need
>> to just move on IMO.
>>
>
> To repeat what I already said, the issue is not the name but the
> documentation.
>
> How many here have read the page on tuples?
> http://dlang.org/tuple.html
>
> Give it a read through and tell me you aren't confused as hell.

That document needs to be rewritten. I don't consider it part of the spec per-se, but it's definitely out of date.

-Steve
July 15, 2015
On Wednesday, 15 July 2015 at 15:15:13 UTC, Steven Schveighoffer wrote:
> That document needs to be rewritten. I don't consider it part of the spec per-se, but it's definitely out of date.

I had PR that did but it has a weird fate. Originally written with MetaList in mind, later update to Arguments, forgotten and abandoned and surprise-merged month later (when it was AliasSeq in Phobos already), taken care of by Mike now in a desperate attempt to keep it in sync with rename changes that keep being merged into Phobos.

Hint : this is exactly what is wrong with this whole thread.
July 15, 2015
On 7/15/15 9:32 AM, Deadalnix wrote:
> On Wednesday, 15 July 2015 at 11:49:46 UTC, Andrei Alexandrescu wrote:
>> On 7/15/15 3:50 AM, Dicebot wrote:
>>> Good to see another bad name merged in master ^_^
>>
>> So now we're at AliasTuple? -- Andrei
>
> Please go for splat. It turns out it is used by functional guy, in
> various scripting languages and in the compiler backend communities.
>
> The thing we are trying to name is a splat.

These google searches returned no meaningful results:

splat
splat data structure
splat type
splat computer science

I did find a few relevant results with:

splat functional languages
splat scripting languages

Let's not inflate each new name idea to alleged popularity it doesn't really enjoy.

> Also, I don't have any veto, but if I had one, tuple would get it. I've
> been hanging around for a while and seen so many being confused by d
> tuples that persisting in that direction would be a religious decision.

For this coming release we've opened the naming to a somewhat democratic process. Walter and my plan was to let everyone discuss, then approve the consensus. We jokingly/worriedly remarked that all the cries "but we have consensus on a different name!" when there existed a perception of names being imposed will instantly go away. And so it did.

We won't be able to make progress if ten folks have eleven ideas about what's needed. People, choose AliasSeq, AliasTuple, or whatever the heck most of us agree upon, but let's just choose once and for good. There will be no turning back.


Andrei

July 15, 2015
On 7/15/15 9:47 AM, Steven Schveighoffer wrote:
> On 7/15/15 9:28 AM, Deadalnix wrote:
>> On Wednesday, 15 July 2015 at 08:29:40 UTC, Jonathan M Davis wrote:
>>> On Wednesday, 15 July 2015 at 08:13:20 UTC, Paolo Invernizzi wrote:
>>>> On Wednesday, 15 July 2015 at 07:50:46 UTC, Dicebot wrote:
>>>>> Good to see another bad name merged in master ^_^
>>>>
>>>> Yep, same feeling here....
>>>
>>> At this point, I think that it's simply a question of which bad name
>>> we go with. None of them are particularly good, and there's a lot of
>>> disagreement about almost all of them - and if there's a lot of
>>> agreement, it's about how bad the name is, not how good it is.
>>>
>>> I'd be very surprised to ever get real agreement on this. There simply
>>> isn't a good name for it. And if Walter and Andrei like AliasTuple,
>>> it's probably going to stick (and Andrei does seem to like it; no idea
>>> about Walter).
>>>
>>> - Jonathan M Davis
>>
>> Tuple is the only name where we have actual, factual feedback. Hanging
>> in the d irc chan for years, it is apparent that calling this tuple
>> confuse people. That is a fact.
>
> It doesn't confuse me. We have type tuples and expression tuples defined
> in the spec. An alias tuple can have both expressions and types. It's
> not that confusing. What was confusing is that a TypeTuple was not a
> type tuple as defined in the spec.

I agree.

Andrei


July 15, 2015
On 7/15/15 10:10 AM, Brian Rogoff wrote:
> On Wednesday, 15 July 2015 at 11:50:43 UTC, Andrei Alexandrescu wrote:
>> On 7/15/15 4:29 AM, Mike wrote:
>>> On Wednesday, 15 July 2015 at 07:50:46 UTC, Dicebot wrote:
>>>> Good to see another bad name merged in master ^_^
>>>
>>> Was there a good name suggested that wasn't vetoed by Walter or Andrei?
>>
>> s/good name/name that I like/
>
> What makes a good name good?

One litmus test I have is there's no need to explain the word with another word. For a brief time we had in D "invariant" for "immutable". We made the change when we figured we needed all too often to explain "invariant data means immutable data" to people.

Probably this won't be very useful here because the abstraction we describe is rather complex. I'd be happy with something that a dozen of folks around here agree isn't bad.

> Some people thought 'splat' sounded ridiculous, i.e., they didn't like
> it, but its use in PHP, Ruby, and other scripting operators, where it's
> really quite similar to its use in D, make it a 'good' candidate IMO. It
> doesn't have numerous alternative meanings in CS, like
> List/Tuple/Sequence, and its coinage is relatively recent, so recent
> that the Wiki entry https://en.wikipedia.org/wiki/Splat doesn't refer to
> its use as a term in programming yet. It's also short.
>
> I liked 'Seq', because it is a bit ambiguous, unlike 'Tuple', which has
> the same meaning in many popular languages, but by most criteria 'Splat'
> is better.

If there's consensus for splat, I'm fine allowing it. I'm personally not very convinced because I'd never heard of the term before and (as I described) I was unable to discover with google what it means.


Andrei


July 15, 2015
On 7/15/15 11:19 AM, Dicebot wrote:
> On Wednesday, 15 July 2015 at 15:15:13 UTC, Steven Schveighoffer wrote:
>> That document needs to be rewritten. I don't consider it part of the
>> spec per-se, but it's definitely out of date.
>
> I had PR that did but it has a weird fate. Originally written with
> MetaList in mind, later update to Arguments, forgotten and abandoned and
> surprise-merged month later (when it was AliasSeq in Phobos already),
> taken care of by Mike now in a desperate attempt to keep it in sync with
> rename changes that keep being merged into Phobos.
>
> Hint : this is exactly what is wrong with this whole thread.

Yeah, I'm pretty much done arguing AT ALL about this. This is a whole lot of discussion for something that literally can be typed in 2 seconds if you need a new name for it:

alias MyFunkyName(T...) = T;

-Steve
July 15, 2015
On Wednesday, 15 July 2015 at 15:29:25 UTC, Andrei Alexandrescu wrote:
>> It doesn't confuse me. We have type tuples and expression tuples defined
>> in the spec. An alias tuple can have both expressions and types. It's
>> not that confusing. What was confusing is that a TypeTuple was not a
>> type tuple as defined in the spec.
>
> I agree.
>
> Andrei

I want to point out that statement "an alias tuple can have both expressions and types" is somewhat between imprecise and just wrong with current compiler implementation. `X!(42, int, foo)` doesn't hold aliases to value, type and symbol (assuming X(T...)) - it does hold actual value and type, with only symbol being aliased. Actual alias tuple would be defined as `X(alias a, alias b, alias c)` and is somewhat different thing.

You may want to ignore that difference for simplicity sake but it needs to be explicitly acknowledged.
July 15, 2015
On Wednesday, 15 July 2015 at 15:29:25 UTC, Andrei Alexandrescu wrote:
> On 7/15/15 9:47 AM, Steven Schveighoffer wrote:
>> On 7/15/15 9:28 AM, Deadalnix wrote:
>>> On Wednesday, 15 July 2015 at 08:29:40 UTC, Jonathan M Davis wrote:
>>>> On Wednesday, 15 July 2015 at 08:13:20 UTC, Paolo Invernizzi wrote:
>>>>> On Wednesday, 15 July 2015 at 07:50:46 UTC, Dicebot wrote:
>>>>>> Good to see another bad name merged in master ^_^
>>>>>
>>>>> Yep, same feeling here....
>>>>
>>>> At this point, I think that it's simply a question of which bad name
>>>> we go with. None of them are particularly good, and there's a lot of
>>>> disagreement about almost all of them - and if there's a lot of
>>>> agreement, it's about how bad the name is, not how good it is.
>>>>
>>>> I'd be very surprised to ever get real agreement on this. There simply
>>>> isn't a good name for it. And if Walter and Andrei like AliasTuple,
>>>> it's probably going to stick (and Andrei does seem to like it; no idea
>>>> about Walter).
>>>>
>>>> - Jonathan M Davis
>>>
>>> Tuple is the only name where we have actual, factual feedback. Hanging
>>> in the d irc chan for years, it is apparent that calling this tuple
>>> confuse people. That is a fact.
>>
>> It doesn't confuse me. We have type tuples and expression tuples defined
>> in the spec. An alias tuple can have both expressions and types. It's
>> not that confusing. What was confusing is that a TypeTuple was not a
>> type tuple as defined in the spec.
>
> I agree.
>
> Andrei

It is not about you guys. Yes this as defined in the spec, for the most part. Still people weere confused about it. That is a hard fact.

At this point, the specalso say what typetuple is, and, once you've gone through it, you understand what it is. Yet, we decided to change it because everyone was confused.

There are expectation that come with names.