Re: Wait, what? What is AliasSeq?
So AliasSeq = Tuples?
Re: Wait, what? What is AliasSeq?
On Tuesday, 7 July 2015 at 22:22:02 UTC, Walter Bright wrote: On 7/7/2015 2:20 PM, David Nadlinger wrote: On Tuesday, 7 July 2015 at 21:15:40 UTC, Andrei Alexandrescu wrote: So I thought we were supposed to replace bad names with good names. Template arguments are indexable, so "sequence" doesn't quite apply. Apparently Walter was opposed to using List, as that would somehow imply "linked list". I opposed it because lists are not indexable, and tuples are. huh? A List is an ordered sequence. Both are indexable. https://en.wikipedia.org/wiki/Enumeration Wiki: A list is any enumeration of a set of items. List or lists may also refer to: and Some sets can be enumerated by means of a natural ordering (such as 1, 2, 3, 4, ... for the set of positive integers), but in other cases it may be necessary to impose a (perhaps arbitrary) ordering. Why you use that logic to choose a word is a kinda strange. A List doesn't imply much except what people want it to. You are choosing a single interpretation to not use it, when there are many. A List is what someone creates with a pen and paper. It has an ordering(the first one and last one). A linked list or "unordered list" are just versions of a list. A list is a list is a list! Regardless, it's probably not the best term to use TArgList or TArgSeq would be more descriptive.
Re: Wait, what? What is AliasSeq?
On 07/23/2015 10:42 AM, deadalnix wrote: On Wednesday, 22 July 2015 at 04:44:48 UTC, Timon Gehr wrote: On 07/22/2015 12:53 AM, deadalnix wrote: On Tuesday, 21 July 2015 at 21:26:24 UTC, Daniel N wrote: On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: Because, among other things, it auto-expands. T 1) .tupleof auto-expands and changing it at this point would cause epic breakage.(I also see no reason to.) This is actually a very good point. First of, tupleof does not return a TypeTuple, but they have something similar in nature. What's the difference? There shouldn't be any. You can't put runtime values into the first one, you can into the second one. It should be just a bunch of aliases to the field members, which have runtime values. Anyway, I figured out the difference: alias Seq(T...)=T; void main(){ struct S{ int x,y,z; } S s; alias a=s.tupleof; // error alias b=Seq!(s.x,s.y,s.z); // ok alias c=Seq!(s.tupleof); // ok typeof(s.tupleof) x; alias d=x; // ok } Wtf.
Re: Wait, what? What is AliasSeq?
On Thursday, 23 July 2015 at 15:03:24 UTC, Timon Gehr wrote: On 07/23/2015 10:42 AM, deadalnix wrote: On Wednesday, 22 July 2015 at 04:44:48 UTC, Timon Gehr wrote: On 07/22/2015 12:53 AM, deadalnix wrote: On Tuesday, 21 July 2015 at 21:26:24 UTC, Daniel N wrote: On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: Because, among other things, it auto-expands. T 1) .tupleof auto-expands and changing it at this point would cause epic breakage.(I also see no reason to.) This is actually a very good point. First of, tupleof does not return a TypeTuple, but they have something similar in nature. What's the difference? There shouldn't be any. You can't put runtime values into the first one, you can into the second one. It should be just a bunch of aliases to the field members, which have runtime values. Anyway, I figured out the difference: alias Seq(T...)=T; void main(){ struct S{ int x,y,z; } S s; alias a=s.tupleof; // error alias b=Seq!(s.x,s.y,s.z); // ok alias c=Seq!(s.tupleof); // ok typeof(s.tupleof) x; alias d=x; // ok } Wtf. That definitely makes it seem like they _should_ be the same, though they clearly aren't. That may just be part of the issues related to alias not being consistent that David was bringing up before though. Regardless, I'm inclined to agree that what tupleof gives you should just be a TypeTuple/AliasSeq/whatever, though it would be nice to rename it once we actually settle on a name for the library construct. - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 23:27:03 UTC, Tofu Ninja wrote: On Tuesday, 21 July 2015 at 23:06:51 UTC, deadalnix wrote: Facts are not oppinions. Deal with it. It is fact that some people found the name TypeTuple confusing, nothing else. You have the opinion that tuple should disqualify the name AliasTuple, some clearly dont agree with that. Why is this getting so toxic, it's just a name... That is a very good question. The answer is because many are ready to waste everybody's time with uneducated opinion because it is just a name.
Re: Wait, what? What is AliasSeq?
On Wednesday, 22 July 2015 at 04:44:48 UTC, Timon Gehr wrote: On 07/22/2015 12:53 AM, deadalnix wrote: On Tuesday, 21 July 2015 at 21:26:24 UTC, Daniel N wrote: On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: Because, among other things, it auto-expands. T 1) .tupleof auto-expands and changing it at this point would cause epic breakage.(I also see no reason to.) This is actually a very good point. First of, tupleof does not return a TypeTuple, but they have something similar in nature. What's the difference? There shouldn't be any. You can't put runtime values into the first one, you can into the second one.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: Some of the proposals do not even make any sense. Come on, all people that got into this know how newcomer react to the Tuple name noticed the same reaction. Yet, there is a large crow of idiots (sorry if you are in that crowd, on that one you ARE an idiot) that will send that proposal in again and again. Anyone that proposed that name at this point should only be laughed at, as it is clearly the manifestation of someone that have not deal first hand with the problems of the historical name and is serving as a living example of Dunning Kruger. i get that TypeTuple is confusing as it is not _limited_ to types, but why is it not a tuple?
Re: Wait, what? What is AliasSeq?
On 07/22/2015 12:53 AM, deadalnix wrote: On Tuesday, 21 July 2015 at 21:26:24 UTC, Daniel N wrote: On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: Because, among other things, it auto-expands. T 1) .tupleof auto-expands and changing it at this point would cause epic breakage.(I also see no reason to.) This is actually a very good point. First of, tupleof does not return a TypeTuple, but they have something similar in nature. What's the difference? There shouldn't be any.
Re: Wait, what? What is AliasSeq?
On Tue, Jul 21, 2015 at 04:06:11PM +, Zoadian via Digitalmars-d wrote: On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: Some of the proposals do not even make any sense. Come on, all people that got into this know how newcomer react to the Tuple name noticed the same reaction. Yet, there is a large crow of idiots (sorry if you are in that crowd, on that one you ARE an idiot) that will send that proposal in again and again. Anyone that proposed that name at this point should only be laughed at, as it is clearly the manifestation of someone that have not deal first hand with the problems of the historical name and is serving as a living example of Dunning Kruger. i get that TypeTuple is confusing as it is not _limited_ to types, but why is it not a tuple? Because, among other things, it auto-expands. T -- PNP = Plug 'N' Pray
Re: Wait, what? What is AliasSeq?
On Tue, Jul 21, 2015 at 05:55:41PM +, Zoadian via Digitalmars-d wrote: On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: On Tue, Jul 21, 2015 at 04:06:11PM +, Zoadian via Digitalmars-d wrote: [...] i get that TypeTuple is confusing as it is not _limited_ to types, but why is it not a tuple? Because, among other things, it auto-expands. T I agree that auto-expansion is a bit unexpected (documentation does not even mention it...). But by that logic it's not a 'Sequence', 'List' or 'Pack' either. Can't we just call it Unpack!() then? [...] This, and other similar proposals, have been already all been considered in the past. The conclusion was, and still is, that *none* of these names are perfectly satisfactory. Prolonging this thread with new proposals (that are actually just rehashes of long-dead proposals) isn't getting us anywhere. This is all missing the point, though, which is that we're wasting time arguing over a miserable little identifier, when there are far more important things we need to be working on right now. I wish we would just call it Zxkuqyb and let it rest already. T -- For every argument for something, there is always an equal and opposite argument against it. Debates don't give answers, only wounded or inflated egos.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: On Tue, Jul 21, 2015 at 04:06:11PM +, Zoadian via Digitalmars-d wrote: On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: Some of the proposals do not even make any sense. Come on, all people that got into this know how newcomer react to the Tuple name noticed the same reaction. Yet, there is a large crow of idiots (sorry if you are in that crowd, on that one you ARE an idiot) that will send that proposal in again and again. Anyone that proposed that name at this point should only be laughed at, as it is clearly the manifestation of someone that have not deal first hand with the problems of the historical name and is serving as a living example of Dunning Kruger. i get that TypeTuple is confusing as it is not _limited_ to types, but why is it not a tuple? Because, among other things, it auto-expands. T I agree that auto-expansion is a bit unexpected (documentation does not even mention it...). But by that logic it's not a 'Sequence', 'List' or 'Pack' either. Can't we just call it Unpack!() then?
Re: Wait, what? What is AliasSeq?
On Tue, Jul 21, 2015 at 06:23:25PM +, Jonathan M Davis via Digitalmars-d wrote: On Tuesday, 21 July 2015 at 18:15:08 UTC, H. S. Teoh wrote: I wish we would just call it Zxkuqyb and let it rest already. If we're going to do something like that, why not go for the geek cred and go for XYZZY? ;) Have you googled Zxkuqyb? ;-) For every argument for something, there is always an equal and opposite argument against it. Debates don't give answers, only wounded or inflated egos. This one doesn't seem as random as most of your quotes... Methinks that you rigged this one. :) [...] Haha, actually, I didn't rig this one. My Perl script can sometimes be surprisingly on-topic. But I think it's just a coincidence, since usually when it's not on-topic nobody notices. T -- What doesn't kill me makes me stranger.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 07:13:08 UTC, Tofu Ninja wrote: On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: I expect others here to grow up a bit Yet, there is a large crow of idiots (sorry if you are in that crowd, on that one you ARE an idiot) You trolling right now? I don't think that I'd say that he's trolling, but his anger clearly got the better of him. I agree with the gist of what he said, though I certainly would not have said it the way that he did. - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 18:32:26 UTC, H. S. Teoh wrote: On Tue, Jul 21, 2015 at 06:23:25PM +, Jonathan M Davis via Digitalmars-d wrote: On Tuesday, 21 July 2015 at 18:15:08 UTC, H. S. Teoh wrote: I wish we would just call it Zxkuqyb and let it rest already. If we're going to do something like that, why not go for the geek cred and go for XYZZY? ;) Have you googled Zxkuqyb? ;-) Nope. That one does look pretty geeky too. Sadly, I've never played an Ultima game, which would be why I didn't catch the reference. Good stuff though. - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 18:15:08 UTC, H. S. Teoh wrote: I wish we would just call it Zxkuqyb and let it rest already. If we're going to do something like that, why not go for the geek cred and go for XYZZY? ;) For every argument for something, there is always an equal and opposite argument against it. Debates don't give answers, only wounded or inflated egos. This one doesn't seem as random as most of your quotes... Methinks that you rigged this one. :) - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: Because, among other things, it auto-expands. T 1) .tupleof auto-expands and changing it at this point would cause epic breakage.(I also see no reason to.) 2) Even the tuple in std.typecons has a manual .expand property, i.e. it may not be auto-expanding but it reaffirms that expanding is a common operation on tuples.(the same is not true for arrays, lists, etc.) 3) At the risk of sounding like a broken record: Tuple is the poster-child of heterogeneous constructs.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 19:00:18 UTC, Jonathan M Davis wrote: On Tuesday, 21 July 2015 at 18:32:26 UTC, H. S. Teoh wrote: On Tue, Jul 21, 2015 at 06:23:25PM +, Jonathan M Davis via Digitalmars-d wrote: On Tuesday, 21 July 2015 at 18:15:08 UTC, H. S. Teoh wrote: I wish we would just call it Zxkuqyb and let it rest already. If we're going to do something like that, why not go for the geek cred and go for XYZZY? ;) Have you googled Zxkuqyb? ;-) Nope. That one does look pretty geeky too. Sadly, I've never played an Ultima game, which would be why I didn't catch the reference. Good stuff though. - Jonathan M Davis Lord British was by my side during all my electronic life... --- Paolo, GM Tamer, Ultima Online, since beta!
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 21:26:24 UTC, Daniel N wrote: On Tuesday, 21 July 2015 at 16:54:54 UTC, H. S. Teoh wrote: Because, among other things, it auto-expands. T 1) .tupleof auto-expands and changing it at this point would cause epic breakage.(I also see no reason to.) This is actually a very good point. First of, tupleof does not return a TypeTuple, but they have something similar in nature. This concept need a name, preferably a name that do not elicit confusion. Even if we dodge the problem now by going for Aliases, this concept would still require a name. Using tuple for that concept just confuses people. 2) Even the tuple in std.typecons has a manual .expand property, i.e. it may not be auto-expanding but it reaffirms that expanding is a common operation on tuples.(the same is not true for arrays, lists, etc.) If tuple have an .expand property, it is because the tuple and the expanded version of it are two different things. This is confusing to name that thing a tuple as well. I do think this would be a mistake to name this anything like array or list as, if close, they are not quite the same and I suspect these name would elicit the same result as tuple does. That being said, I can only speculate for these, while I can assert it for tuple. 3) At the risk of sounding like a broken record: Tuple is the poster-child of heterogeneous constructs. Yes, I know that strictly speaking, a tuple may well be auto expanding. But here you get into the Monad problem (ie: once you understand what a monad is, you loose all capacity to explain it to someone who don't). There is the strict definition of the word, and there is what people expect out of it. When going academic, you want the first one. But, because you go for the first one, you end up saying things like A monad is just a monoid in the category of endofunctors which is certainly true, but won't help much when you try to actually use it. It turns out that indeed, a tuple may well be auto expanding stricto sensu, but it is not what people expect of a tuple when they meet one.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 08:00:40 UTC, Daniel N wrote: On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: Come on, all people that got into this know how newcomer react to the Tuple name noticed the same reaction. No, that highly depends on the background of the newcomer, everyone I introduced D to , only found it confusing that it was named Type*. Type* = A construct that powerful it can contain Type:s as well? Whereas the intuitive meaning would be: Type* = A construct that is limited to Type:s only. Yes, that is very true. The Type part of the old name was confusing. Before this thread I didn't realize newcomers found the Tuple part confusing, I know that's the case now, but after viewing the poll, it seems to be a minority. But then again, how many newcomers would find Seq confusing, we will never know. Experience show that the tuple part of the old name was confusing as well. The poll was not answered by newcomers but by users of this forum. Most of them are experienced D users and already know what to expect from the construct.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 07:13:08 UTC, Tofu Ninja wrote: On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: I expect others here to grow up a bit Yet, there is a large crow of idiots (sorry if you are in that crowd, on that one you ARE an idiot) You trolling right now? I'm not. I would certainly have put this in a nicer manner given different circumstance, and certainly should have. But the point remains. There are facts. Fact is, several persons reported that actual, real life newcomer are confused by tuple. As the experiment is repeatable we are not dealing with in the anecdotal anymore. The fact the the poll show this result as a first one tells us that a good chunk of voters are either unaware of the evidence (there is nothing wrong with being ignorant, but don't try to influence results when you are or you'll be received as it should, with ridicule) or willfully choose to ignore ignore them which is worse. This CANNOT be taken seriously.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 22:25:22 UTC, deadalnix wrote: I'm not. I would certainly have put this in a nicer manner given different circumstance, and certainly should have. But the point remains. There are facts. Fact is, several persons reported that actual, real life newcomer are confused by tuple. As the experiment is repeatable we are not dealing with in the anecdotal anymore. The fact the the poll show this result as a first one tells us that a good chunk of voters are either unaware of the evidence (there is nothing wrong with being ignorant, but don't try to influence results when you are or you'll be received as it should, with ridicule) or willfully choose to ignore ignore them which is worse. This CANNOT be taken seriously. All the poll shows is what people like(or hate the least), Walter and Andrei can interpret that how ever they wish. I am not arguing for or against any of the names(they all suck). We get it, you think tuple is a bad name, you keep coming back and repeating the same arguments. Everyone gets it. But if people don't share in your opinion or don't think it is as bad as you make it out to be then they have that right, that does not make them ignorant or an idiot. Your ad hominem attacks are really not needed. Personally I don't like tuple that much either, I would prefer AliasList, but I like it better than AliasSeq and far better than Aliases.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 22:58:27 UTC, Tofu Ninja wrote: All the poll shows is what people like(or hate the least), Walter and Andrei can interpret that how ever they wish. I am not arguing for or against any of the names(they all suck). We get it, you think tuple is a bad name, you keep coming back and repeating the same arguments. Everyone gets it. But if people don't share in your opinion or don't think it is as bad as you make it out to be then they have that right, that does not make them ignorant or an idiot. Your ad hominem attacks are really not needed. Facts are not oppinions. Deal with it.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 23:06:51 UTC, deadalnix wrote: Facts are not oppinions. Deal with it. It is fact that some people found the name TypeTuple confusing, nothing else. You have the opinion that tuple should disqualify the name AliasTuple, some clearly dont agree with that. Why is this getting so toxic, it's just a name...
Re: Wait, what? What is AliasSeq?
On Tue, Jul 21, 2015 at 11:27:01PM +, Tofu Ninja via Digitalmars-d wrote: On Tuesday, 21 July 2015 at 23:06:51 UTC, deadalnix wrote: Facts are not oppinions. Deal with it. It is fact that some people found the name TypeTuple confusing, nothing else. You have the opinion that tuple should disqualify the name AliasTuple, some clearly dont agree with that. Why is this getting so toxic, it's just a name... Sounds like we need to invoke the bikeshedding equivalent of Godwin's Law, right about now. :-P T -- Acid falls with the rain; with love comes the pain.
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 14:58:34 UTC, Jonathan M Davis wrote: On Monday, 20 July 2015 at 08:18:46 UTC, Tofu Ninja wrote: On Saturday, 18 July 2015 at 01:05:20 UTC, Tofu Ninja wrote: Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho Small update, as of right now, there has been 45 responses to the survey, with AliasTuple in the lead. Top 3 average rankings: AliasTuple 3.16 Aliases 2.82 AliasList2.76 Whatever it means, the answers there don't seem to jive with the thread discussing it. In particular, AliasTuple probably has the strongest reaction against it out of any of the choices which have been seriously considered, based principly on all of the problems that we've had in explaining to people what on earth a TypeTuple is. The fact that Tuple is in the name has caused quite a few problems. So, seeing it on the top is a bit surprising. Though I wonder how many of the participants in the thread have responded to that, since many seem to just be sick of the discussion. More folks have responded to the survey though than have participated in the thread though. - Jonathan M Davis I suspect that many people, myself included, didn't have anything meaningful to add to the thread but still voted. Personally I didn't post because I didn't have a better idea for a name and I thought the proposed ones were all suboptimal. Atila
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 08:00:40 UTC, Daniel N wrote: On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: Come on, all people that got into this know how newcomer react to the Tuple name noticed the same reaction. No, that highly depends on the background of the newcomer, everyone I introduced D to , only found it confusing that it was named Type*. Type* = A construct that powerful it can contain Type:s as well? Whereas the intuitive meaning would be: Type* = A construct that is limited to Type:s only. Before this thread I didn't realize newcomers found the Tuple part confusing, I know that's the case now, but after viewing the poll, it seems to be a minority. But then again, how many newcomers would find Seq confusing, we will never know. PS Ask yourself, how many of the new proposals contains *Type* ? Anyone was free to add such a proposal. Even with our collective imagination, which spawned creative names such as OmniSplat?! Still exactly 0 of the new alternatives contained 'Type'. I ask again, which part of the name TypeTuple was bad?
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: Come on, all people that got into this know how newcomer react to the Tuple name noticed the same reaction. No, that highly depends on the background of the newcomer, everyone I introduced D to , only found it confusing that it was named Type*. Type* = A construct that powerful it can contain Type:s as well? Whereas the intuitive meaning would be: Type* = A construct that is limited to Type:s only. Before this thread I didn't realize newcomers found the Tuple part confusing, I know that's the case now, but after viewing the poll, it seems to be a minority. But then again, how many newcomers would find Seq confusing, we will never know.
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 16:54:55 UTC, Andrei Alexandrescu wrote: On 7/20/15 11:54 AM, H. S. Teoh via Digitalmars-d wrote: Andrei/Walter should just step in and make the final call on whatever lousy name they wish (let's admit it, none of the names are any good, and you ain't gonna please everybody no matter what), and let's just move on. That's what we did a few times in the past. It did help with limiting discussions and revisionist pull requests, but not as much as anyone would have liked. It seems to me that subjecting new names to some community scrutiny before freezing them forever is a sensible thing to do. The difficulties are finding good definitions for community and scrutiny. And some :o). From what I can tell: * For any name considered, there is at least one person who strongly believes is an epically bad choice and presents vivid anecdotes, similes, and parallels with other languages and domains to support that opinion. * For most names considered, there is at least one person who is a strong advocate and is convinced that's by far a better choice than all others. * Whatever choice we make, there's a sort of atmosphere that a radically better name is just around the corner and we'll all regret having freezing it. * There's a sort of Warhol effect in that naming discussions are massive, therefore they must be important, therefore they garner attention, therefore they get more massive. I had vague hopes some clarity would emerge from opening up the process. Sadly this is one of those welcome to the club results. What I do hope happens is more appreciation of all involved of the difficulty of making decisions and judgment calls in matters in which there's no telling right from wrong. Please, please, please cut Walter and me some slack in the future. I'll talk to him today in the hope we'll be able to put an end to this. Andrei Well, this time you did the exact reverse. Consensus is reached, Andrei step in, we got 20 pages of bikesched to end up to square one, at which stage, Walter step in and put more coin into the jukebox. Conclusion had been reached twice, and twice with the same name already. I feel like there is a kernel of people that just won't accept this, as the poll showed (I did not vote). At some point, one have to accept that his proposal is not the one that will get in. My preference would go for Pack, then Splat, then Seq, but at this point I have to admit that the community does not share my taste. I expect others here to grow up a bit and accept that YOUR proposal is not gold platted, in fact, it is kind of shitty like all other proposal here. Deal with it. Some of the proposals do not even make any sense. Come on, all people that got into this know how newcomer react to the Tuple name noticed the same reaction. Yet, there is a large crow of idiots (sorry if you are in that crowd, on that one you ARE an idiot) that will send that proposal in again and again. Anyone that proposed that name at this point should only be laughed at, as it is clearly the manifestation of someone that have not deal first hand with the problems of the historical name and is serving as a living example of Dunning Kruger. Unless there is something significantly better then Seq, and that there is consensus on that fact it should be changed. I don't think any proposal, even the one I would prefer over Seq, match that criteria, and I don't think anything else honest here would either. That is exhausting to come back here again and again just to argue the same point again and again. This must stop. Everybody else has better things to do.
Re: Wait, what? What is AliasSeq?
On Tuesday, 21 July 2015 at 06:49:10 UTC, deadalnix wrote: I expect others here to grow up a bit Yet, there is a large crow of idiots (sorry if you are in that crowd, on that one you ARE an idiot) You trolling right now?
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:05:20 UTC, Tofu Ninja wrote: Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho Small update, as of right now, there has been 45 responses to the survey, with AliasTuple in the lead. Top 3 average rankings: AliasTuple 3.16 Aliases 2.82 AliasList2.76
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 21:02:51 UTC, Walter Bright wrote: On 7/15/2015 1:13 AM, 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 Does this mean that complaining about the names I pick is going to die down? :-) I'm +1 for Aliases! -- Paolo
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 08:18:46 UTC, Tofu Ninja wrote: On Saturday, 18 July 2015 at 01:05:20 UTC, Tofu Ninja wrote: Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho Small update, as of right now, there has been 45 responses to the survey, with AliasTuple in the lead. Top 3 average rankings: AliasTuple 3.16 Aliases 2.82 AliasList2.76 This is an excellent approach to bike-shedding. Is it appropriate now to ask people who object to AliasTuple to put those objections forward (specific problems with AliasTuple rather than 'my name is better) and otherwise go forward with the term?
Re: Wait, what? What is AliasSeq?
On 7/20/15 4:18 AM, Tofu Ninja wrote: On Saturday, 18 July 2015 at 01:05:20 UTC, Tofu Ninja wrote: Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho Small update, as of right now, there has been 45 responses to the survey, with AliasTuple in the lead. Top 3 average rankings: AliasTuple 3.16 Aliases 2.82 AliasList2.76 Heh, interesting. (I didn't vote in order to avoid influencing things, not that 1/45.0 matters that much.) Where is AliasSeq? Andrei
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 13:09:06 UTC, Andrei Alexandrescu wrote: On 7/20/15 4:18 AM, Tofu Ninja wrote: On Saturday, 18 July 2015 at 01:05:20 UTC, Tofu Ninja wrote: Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho Small update, as of right now, there has been 45 responses to the survey, with AliasTuple in the lead. Top 3 average rankings: AliasTuple 3.16 Aliases 2.82 AliasList2.76 Heh, interesting. (I didn't vote in order to avoid influencing things, not that 1/45.0 matters that much.) Where is AliasSeq? Andrei It's currently in 5th place on 2.38. Full stats: https://docs.google.com/spreadsheets/d/1sFLQAYnI2Xx5CPrf9KXbuxUfdHPewyo67Y1Sb0Z8p5M/pubchart?oid=2030278607format=interactive
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 13:09:06 UTC, Andrei Alexandrescu wrote: On 7/20/15 4:18 AM, Tofu Ninja wrote: On Saturday, 18 July 2015 at 01:05:20 UTC, Tofu Ninja wrote: Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho Small update, as of right now, there has been 45 responses to the survey, with AliasTuple in the lead. Top 3 average rankings: AliasTuple 3.16 Aliases 2.82 AliasList2.76 Heh, interesting. (I didn't vote in order to avoid influencing things, not that 1/45.0 matters that much.) Where is AliasSeq? Andrei 2.38 You can see all the current results here, hover over a bar to see exact numbers https://docs.google.com/spreadsheets/d/1sFLQAYnI2Xx5CPrf9KXbuxUfdHPewyo67Y1Sb0Z8p5M/pubchart?oid=2030278607format=interactive
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 08:18:46 UTC, Tofu Ninja wrote: On Saturday, 18 July 2015 at 01:05:20 UTC, Tofu Ninja wrote: Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho Small update, as of right now, there has been 45 responses to the survey, with AliasTuple in the lead. Top 3 average rankings: AliasTuple 3.16 Aliases 2.82 AliasList2.76 Whatever it means, the answers there don't seem to jive with the thread discussing it. In particular, AliasTuple probably has the strongest reaction against it out of any of the choices which have been seriously considered, based principly on all of the problems that we've had in explaining to people what on earth a TypeTuple is. The fact that Tuple is in the name has caused quite a few problems. So, seeing it on the top is a bit surprising. Though I wonder how many of the participants in the thread have responded to that, since many seem to just be sick of the discussion. More folks have responded to the survey though than have participated in the thread though. - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 16:26:36 UTC, David Nadlinger wrote: On Monday, 20 July 2015 at 15:33:17 UTC, Tofu Ninja wrote: The ones against a name are vocal in the thread, the ones who don't mind it or like it tend to not be as vocal. The thread is not a good representation of what people like. Neither is a superficial popularity contest a suitable indicator for good language design. Didn't really claim that, just wanted to point out why the most popular names might not be obvious from the thread. I didn't mean to imply that the most popular = the best. For example, there are substantial concerns regarding the teachability of names ending in Tuple. While these are (by necessity) only bcked by anecdotal evidence, several people made these observations when helping beginners. It would be foolish to ignore the experience we gained from the past in favor of an impromptu straw poll. — David It's already been pointed out that there is no obvious good name, just less bad names. While the most popular name has problems, so do all the others. At least we know now what is the most popular and Walter and Andrei can take that into account, and hopefully make deciding the best name a bit easier. All arguments have been repeated... Just let Walter and Andrei decide and end this...
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 15:33:17 UTC, Tofu Ninja wrote: The ones against a name are vocal in the thread, the ones who don't mind it or like it tend to not be as vocal. The thread is not a good representation of what people like. Neither is a superficial popularity contest a suitable indicator for good language design. For example, there are substantial concerns regarding the teachability of names ending in Tuple. While these are (by necessity) only backed by anecdotal evidence, several people made these observations when helping beginners. It would be foolish to ignore the experience we gained from the past in favor of an impromptu straw poll. — David
Re: Wait, what? What is AliasSeq?
On 7/20/15 11:54 AM, H. S. Teoh via Digitalmars-d wrote: Andrei/Walter should just step in and make the final call on whatever lousy name they wish (let's admit it, none of the names are any good, and you ain't gonna please everybody no matter what), and let's just move on. That's what we did a few times in the past. It did help with limiting discussions and revisionist pull requests, but not as much as anyone would have liked. It seems to me that subjecting new names to some community scrutiny before freezing them forever is a sensible thing to do. The difficulties are finding good definitions for community and scrutiny. And some :o). From what I can tell: * For any name considered, there is at least one person who strongly believes is an epically bad choice and presents vivid anecdotes, similes, and parallels with other languages and domains to support that opinion. * For most names considered, there is at least one person who is a strong advocate and is convinced that's by far a better choice than all others. * Whatever choice we make, there's a sort of atmosphere that a radically better name is just around the corner and we'll all regret having freezing it. * There's a sort of Warhol effect in that naming discussions are massive, therefore they must be important, therefore they garner attention, therefore they get more massive. I had vague hopes some clarity would emerge from opening up the process. Sadly this is one of those welcome to the club results. What I do hope happens is more appreciation of all involved of the difficulty of making decisions and judgment calls in matters in which there's no telling right from wrong. Please, please, please cut Walter and me some slack in the future. I'll talk to him today in the hope we'll be able to put an end to this. Andrei
Re: Wait, what? What is AliasSeq?
On Mon, Jul 20, 2015 at 03:33:14PM +, Tofu Ninja via Digitalmars-d wrote: On Monday, 20 July 2015 at 14:58:34 UTC, Jonathan M Davis wrote: Whatever it means, the answers there don't seem to jive with the thread discussing it. In particular, AliasTuple probably has the strongest reaction against it out of any of the choices which have been seriously considered, based principly on all of the problems that we've had in explaining to people what on earth a TypeTuple is. The fact that Tuple is in the name has caused quite a few problems. So, seeing it on the top is a bit surprising. Though I wonder how many of the participants in the thread have responded to that, since many seem to just be sick of the discussion. More folks have responded to the survey though than have participated in the thread though. - Jonathan M Davis The ones against a name are vocal in the thread, the ones who don't mind it or like it tend to not be as vocal. The thread is not a good representation of what people like. And there's also people like me, who have grown so sick and tired of this endless bikeshedding (in spite of arriving at some sort of consensus multiple times, only to be interrupted by Yet More Proposals), that we simply don't even care to respond anymore, we just want this thread to please just stop. At this point, even if we were to name this thing AliasQwfdJskCmfpz, I would be OK with it, as long as I don't see any more posts on this tiresome topic. All of this energy could have been far more productively spent elsewhere -- like improving the docs, or fixing the flood of new bugs on Bugzilla where it has far more impact -- and yet here we are, prolonging this one with no end in sight. Andrei/Walter should just step in and make the final call on whatever lousy name they wish (let's admit it, none of the names are any good, and you ain't gonna please everybody no matter what), and let's just move on. T -- your inconsistency is the only consistent thing about you! -- kd
Re: Wait, what? What is AliasSeq?
On Monday, 20 July 2015 at 14:58:34 UTC, Jonathan M Davis wrote: Whatever it means, the answers there don't seem to jive with the thread discussing it. In particular, AliasTuple probably has the strongest reaction against it out of any of the choices which have been seriously considered, based principly on all of the problems that we've had in explaining to people what on earth a TypeTuple is. The fact that Tuple is in the name has caused quite a few problems. So, seeing it on the top is a bit surprising. Though I wonder how many of the participants in the thread have responded to that, since many seem to just be sick of the discussion. More folks have responded to the survey though than have participated in the thread though. - Jonathan M Davis The ones against a name are vocal in the thread, the ones who don't mind it or like it tend to not be as vocal. The thread is not a good representation of what people like.
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei +1
Re: Wait, what? What is AliasSeq?
On Fri, 17 Jul 2015 21:32:59 -0400, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei +1
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei +1
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei +1 The code would be just better to read and write with Aliases. To some extent I understand confusion point raised by others. However I not sure if it's overexaggerating. Piotrek
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei +1
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 02:07:42 UTC, Brad Anderson wrote: (I haven't read any of this thread because I'm exhausted with this topic so just ignore me if you guys have already rehashed and dismissed Seq. I don't care enough about the outcome anymore to fight for it.) It has been dismissed for semantic reasons... people just gloss over it. Seq is a term that is used in formal specification in CS that usually means sequence-of-values-with-type(X). Sequence-of-ints, sequence-of-chars… In general usage, sequence usually implies a series of values where distance/order is important for interpretation: DNA-sequence, Fibonacci-sequence, instruction-sequence, animation-sequence, sequences in music scores (time series in general), the output of generators (recurrence relations etc), etc.
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:44:27 UTC, Jonathan M Davis wrote: On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: [...] _Please_ no. It'll just make it extra confusing whether you're talking about what was TypeTuple or just aliases in general. That's why I've never liked the name Array for std.container. You always have to be extra careful when talking about it to make it clear what you mean, and if you're actually talking instead of writing, it's that much worse. And honestly, I wouldn't expect a type to have a name which was plural, and I'd expect the fact that it's plural would just increase the confusion. And TypeTuple, AliasSeq, whatever is already confusing enough as a concept without naming it something that adds confusion on its own. - Jonathan M Davis Yup.
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 20:59:41 UTC, H. S. Teoh wrote: On Fri, Jul 17, 2015 at 01:54:31PM -0700, Walter Bright via Digitalmars-d wrote: On 7/7/2015 2:16 PM, Andrei Alexandrescu wrote: So I thought we were supposed to replace bad names with good names. Template arguments are indexable, so sequence doesn't quite apply. What happened? Why are we replacing a crappy term with another crappy term? Should just be Aliases. I recall that my naming of setExt() was universally panned for using an abbreviation. Aliases doesn't carry any baggage about how it might be accessed. Wow, the bikeshedding truly never ends! T +1 , can we stop inserting coins in that machine every time it reach some kind of stable point (especially when this stable point is the same twice in a row ?)
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei No it makes any oral discussion about it impossible to understand, as well as a good chunk of the spec.
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 02:36:59 UTC, Sebastiaan Koppe wrote: On Saturday, 18 July 2015 at 01:35:03 UTC, Jonathan M Davis wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases Then you have the confusion about whether you're talking about the replacement of TypeTuple or just aliases in general - especially if verbal conversation. AliasSeq won't be confused with anything. - Jonathan M Davis I cannot think of one sentence that doesn't disambiguate. Try changing the doc using it. Yes, if you think about it hard enough, you'll be able to figure out which is which, but overall, that makes the thing much harder ot read.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 23:54:30 UTC, Mike wrote: On Thursday, 16 July 2015 at 15:50:15 UTC, Andrei Alexandrescu wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei https://github.com/D-Programming-Language/phobos/pull/3498 Please don't cry, there are so many other bad names in the eco-system already. Nobody will notice… unless they have a CS degree.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 15:50:15 UTC, Andrei Alexandrescu wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei I'm good with that. As said, not my #1 choice, but good enough.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 15:50:15 UTC, Andrei Alexandrescu wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei What about the Pack name? There was considerable support for it, and at least in this thread I haven't seen anyone opposing it. (And from my POV, *Seq is really the worst of all choices, as it has connotations in everyday language and other uses in mathematics that don't match TypeTuples at all, so I'm strongly opposed to it.)
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 08:57:26 UTC, Marc Schütz wrote: On Thursday, 16 July 2015 at 15:50:15 UTC, Andrei Alexandrescu wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei What about the Pack name? There was considerable support for it, and at least in this thread I haven't seen anyone opposing it. (And from my POV, *Seq is really the worst of all choices, as it has connotations in everyday language and other uses in mathematics that don't match TypeTuples at all, so I'm strongly opposed to it.) FWIW Pack Seq
Re: Wait, what? What is AliasSeq?
On 17-Jul-2015 12:52, Matthias Bentrup wrote: On Friday, 17 July 2015 at 09:13:13 UTC, Daniel N wrote: On Friday, 17 July 2015 at 08:57:26 UTC, Marc Schütz wrote: On Thursday, 16 July 2015 at 15:50:15 UTC, Andrei Alexandrescu wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei What about the Pack name? There was considerable support for it, and at least in this thread I haven't seen anyone opposing it. (And from my POV, *Seq is really the worst of all choices, as it has connotations in everyday language and other uses in mathematics that don't match TypeTuples at all, so I'm strongly opposed to it.) FWIW Pack Seq Sack (a compromise between Seq and Pack) Ransack must be the first algorithm on AliasSack ;) -- Dmitry Olshansky
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 10:15:05 UTC, Martin Nowak wrote: On Friday, 17 July 2015 at 00:08:42 UTC, Tofu Ninja wrote: Well this was 214 replies of wasted time... Just b/c the outcome is the same doesn't mean the discussion was pointless. We reached at least some sort of consensus which should prevent any future complaints about the chosen name. No, you did not reach consensus, and there will be future complaints about the terminology used in D (unless the language dies). If you pick inconsistent terminology that breaks established usage, people will complain… So it was wasted time. And more time will be wasted the same way, due to a lack of process. If you want consistency you need 2-4 people who know the field really well and reach actual consensus. When too many people who don't know the field really well are involved you get bastardized syntax. The vocabulary should not be defined name by name, function by function. It should be, you know, an index that you can reference. So a set is a set, a sequence is a sequence, and array an array, a list a list, a linked-list a linked-list and so on. A well designed language has a small vocabulary with not much overlap and expressiveness grow out of it. That way you don't have to memorize so much. If you need to read the docs to deduce what goes on in a function then it isn't good enough. Which is why constructs with weird behaviour should have longer descriptive names. In this case, you wanted a short unique name to describe weird behaviour. That's going to make code hard to read.
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 10:15:05 UTC, Martin Nowak wrote: On Friday, 17 July 2015 at 00:08:42 UTC, Tofu Ninja wrote: Well this was 214 replies of wasted time... Just b/c the outcome is the same doesn't mean the discussion was pointless. We reached at least some sort of consensus which should prevent any future complaints about the chosen name. On that, perhaps this conversation should be linked to in the wiki before it gets buried? So any complains/questions may be directed here?
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 09:13:13 UTC, Daniel N wrote: On Friday, 17 July 2015 at 08:57:26 UTC, Marc Schütz wrote: On Thursday, 16 July 2015 at 15:50:15 UTC, Andrei Alexandrescu wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei What about the Pack name? There was considerable support for it, and at least in this thread I haven't seen anyone opposing it. (And from my POV, *Seq is really the worst of all choices, as it has connotations in everyday language and other uses in mathematics that don't match TypeTuples at all, so I'm strongly opposed to it.) FWIW Pack Seq Sack (a compromise between Seq and Pack)
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 00:08:42 UTC, Tofu Ninja wrote: Well this was 214 replies of wasted time... Just b/c the outcome is the same doesn't mean the discussion was pointless. We reached at least some sort of consensus which should prevent any future complaints about the chosen name.
Re: Wait, what? What is AliasSeq?
On 7/16/15 8:08 PM, Tofu Ninja wrote: On Thursday, 16 July 2015 at 23:54:30 UTC, Mike wrote: On Thursday, 16 July 2015 at 15:50:15 UTC, Andrei Alexandrescu wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei https://github.com/D-Programming-Language/phobos/pull/3498 Well this was 214 replies of wasted time... That's right, and I'm at fault. Apologies to all. -- Andrei
Re: Wait, what? What is AliasSeq?
On Wednesday, 15 July 2015 at 21:44:37 UTC, Timon Gehr wrote: On 07/15/2015 05:35 PM, Dicebot wrote: 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. It should instead be acknowledged that there /should/ be no difference in what three things can be passed to X(T...) and X(alias a, alias b, alias c). The X(T...) if(T.length==k) pattern is ridiculous. I can't agree more.
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:35:03 UTC, Jonathan M Davis wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases Then you have the confusion about whether you're talking about the replacement of TypeTuple or just aliases in general - especially if verbal conversation. AliasSeq won't be confused with anything. - Jonathan M Davis I cannot think of one sentence that doesn't disambiguate.
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:35:03 UTC, Jonathan M Davis wrote: Then you have the confusion about whether you're talking about the replacement of TypeTuple or just aliases in general - especially if verbal conversation. AliasSeq won't be confused with anything. - Jonathan M Davis That's the beauty of it and why, years ago when having yet another conversation about renaming TypeTuple, I was highly in favor of the name Timon (if memory serves) had been using for awhile: Seq. The long, long conversations have shown that there's no simple combination of words that describes it well so a neologism is the best possible option if you want to avoid confusion. You could argue that a new word is harder for beginners but I'd argue that using existing words in a way that doesn't actually describe it accurately or precisely is far worse. TypeTuple confused me greatly as a beginner. In this very NG archive you can find me suggesting, to my embarrassment, the name Type List as a replacement because I thought I understood what it was. The flood of disagreements is what finally made me dig in and understand it. While I think AliasSeq is better, it's not much better and suffers from the unrelated baggage that comes with Alias so I still think Seq is better than AliasSeq. (I haven't read any of this thread because I'm exhausted with this topic so just ignore me if you guys have already rehashed and dismissed Seq. I don't care enough about the outcome anymore to fight for it.)
Re: Wait, what? What is AliasSeq?
On 7/7/2015 2:16 PM, Andrei Alexandrescu wrote: So I thought we were supposed to replace bad names with good names. Template arguments are indexable, so sequence doesn't quite apply. What happened? Why are we replacing a crappy term with another crappy term? Should just be Aliases. I recall that my naming of setExt() was universally panned for using an abbreviation. Aliases doesn't carry any baggage about how it might be accessed.
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish.
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 00:20:23 UTC, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Please no, Aliases is one of the worst names in the thread.
Re: Wait, what? What is AliasSeq?
Here is a survey of all suggested names, please vote so we can end this with the best name... http://goo.gl/forms/qls1ZGDCho
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei _Please_ no. It'll just make it extra confusing whether you're talking about what was TypeTuple or just aliases in general. That's why I've never liked the name Array for std.container. You always have to be extra careful when talking about it to make it clear what you mean, and if you're actually talking instead of writing, it's that much worse. And honestly, I wouldn't expect a type to have a name which was plural, and I'd expect the fact that it's plural would just increase the confusion. And TypeTuple, AliasSeq, whatever is already confusing enough as a concept without naming it something that adds confusion on its own. - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Fri, Jul 17, 2015 at 01:54:31PM -0700, Walter Bright via Digitalmars-d wrote: On 7/7/2015 2:16 PM, Andrei Alexandrescu wrote: So I thought we were supposed to replace bad names with good names. Template arguments are indexable, so sequence doesn't quite apply. What happened? Why are we replacing a crappy term with another crappy term? Should just be Aliases. I recall that my naming of setExt() was universally panned for using an abbreviation. Aliases doesn't carry any baggage about how it might be accessed. Wow, the bikeshedding truly never ends! T -- Дерево держится корнями, а человек - друзьями.
Re: Wait, what? What is AliasSeq?
On 7/15/2015 1:13 AM, 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 Does this mean that complaining about the names I pick is going to die down? :-)
Re: Wait, what? What is AliasSeq?
On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei
Re: Wait, what? What is AliasSeq?
On Saturday, 18 July 2015 at 01:32:45 UTC, Andrei Alexandrescu wrote: On 7/17/15 8:20 PM, Mike wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: Should just be Aliases. I'd be happy to do the pull request if you wish. Let's get the +1s on this - please reply. I'm fine with Aliases with an extra umph that the BDFL favors it. -- Andrei +1
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: I recall that my naming of setExt() was universally panned for using an abbreviation. No, it was because the abbreviation was the sole distinction from another function's name.
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: On 7/7/2015 2:16 PM, Andrei Alexandrescu wrote: So I thought we were supposed to replace bad names with good names. Template arguments are indexable, so sequence doesn't quite apply. What happened? Why are we replacing a crappy term with another crappy term? Should just be Aliases. I recall that my naming of setExt() was universally panned for using an abbreviation. Aliases doesn't carry any baggage about how it might be accessed. Then you have the confusion about whether you're talking about the replacement of TypeTuple or just aliases in general - especially if verbal conversation. AliasSeq won't be confused with anything. - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Friday, 17 July 2015 at 21:22:00 UTC, Vladimir Panteleev wrote: On Friday, 17 July 2015 at 20:54:33 UTC, Walter Bright wrote: I recall that my naming of setExt() was universally panned for using an abbreviation. No, it was because the abbreviation was the sole distinction from another function's name. Yeah. As long as abbreviations are reasonably clear they're actually a _good_ thing because they reduce code length without losing clarity. When you have multiword symbol names, they get ugly _really_ fast if you don't abbreviate. It's one of the things that tends to make Java code ugly; they frequently have overly long names because they don't abbreviate. - Jonathan M Davis
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 16:13:46 UTC, Andrei Alexandrescu wrote: On 7/16/15 11:59 AM, H. S. Teoh via Digitalmars-d wrote: On Thu, Jul 16, 2015 at 11:50:25AM -0400, Andrei Alexandrescu via Digitalmars-d wrote: On 7/15/15 8:49 PM, Mike wrote: 1. AliasSeq is no good as evident from the first post that started this thread I am egging my face for starting this. Can we please return to AliasSeq? -- Andrei Yes, let's please return to AliasSeq. It's a pretty lousy name, but all the alternatives are even worse. Let's not fix the problem by making it worse. WE HAVE CONSENSUS! :o) (Well... anyone else in favor?) Yes, me. ;) — David
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 17:10:57 UTC, Deadalnix wrote: On Thursday, 16 July 2015 at 05:44:29 UTC, Ola Fosheim Grøstad wrote: Oh, here is one more term you can consider: AliasPack In Python splatting is called unpacking (splat refers to the visual impression of the * operator and is inappropriate). C++ also have related use of the word pack: http://en.cppreference.com/w/cpp/language/parameter_pack So in C++ all of the terms list, sequence and pack can be used about parameter lists… but list is the general term: argument list, parameter list, initializer list etc… Pack was my first choice, but it did seem to stick amongst the community when I asked around. I'd be happy with pack. FWIW, just like Nat often is used to denote natural numbers, Seq is often used in formalizations of sequences, e.g. stuff that falls under this definition: https://en.wikipedia.org/wiki/Sequence#Formal_definition So AliasSeq is counter-intuitive to me, it does not fit with any use of the term Seq I have been in touch with... Basically, to me Seq represent series of values, not configurations.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 17:39:13 UTC, David Nadlinger wrote: Yes, me. ;) (I should note that this is mainly because I'd really rather not have Tuple in the name because of first-hand experience in teaching beginners both on IRC and in person. And AliasSeq seems like the most likely candidate for this right now. I personally like Seq quite a bit too, but I'd rather not join that bikeshedding debate. —David)
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 21:44:13 UTC, Timon Gehr wrote: On 07/16/2015 07:35 AM, Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= ola.fosheim.grostad+dl...@gmail.com wrote: [...] But I think sequence implies that everything has the same type... That common type is 'alias'. :-) *cringe*
Re: Wait, what? What is AliasSeq?
On 2015-07-15 23:44, Timon Gehr wrote: It should instead be acknowledged that there /should/ be no difference in what three things can be passed to X(T...) and X(alias a, alias b, alias c). The X(T...) if(T.length==k) pattern is ridiculous. I completely agree. -- /Jacob Carlborg
Re: Wait, what? What is AliasSeq?
On 2015-07-07 23:16, Andrei Alexandrescu wrote: So I thought we were supposed to replace bad names with good names. Template arguments are indexable, so sequence doesn't quite apply. What happened? Why are we replacing a crappy term with another crappy term? How about Bag or AliasBag? -- /Jacob Carlborg
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 05:55:01 UTC, Ola Fosheim Grøstad wrote: On Thursday, 16 July 2015 at 05:51:01 UTC, Mike wrote: Sound familiar? I propose simply Pack. Or AliasListPack, AliasPackList, PackedAliasList… Or would it be UnpackingAliasList or UnpackedAliasList? Oh… Headaches…
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 05:51:01 UTC, Mike wrote: On Thursday, 16 July 2015 at 05:44:29 UTC, Ola Fosheim Grøstad wrote: C++ also have related use of the word pack: http://en.cppreference.com/w/cpp/language/parameter_pack Nice! From the description: A template parameter pack is a template parameter that accepts zero or more template arguments (non-types, types, or templates). A function parameter pack is a function parameter that accepts zero or more function arguments. A template with at least one parameter pack is called a variadic template. Sound familiar? I propose simply Pack. Only that it is in fact an UnPack...
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 08:00:43 UTC, Marc Schütz wrote: Maybe auto-flattening is a better name for this behaviour? flattening: concatenating all the children recursively. argument unpacking/expansion: filling in the actual parameters Anyway, auto-flattening is undesirable as it makes the language more weakly typed and hides what goes on. And it gets in the way for structural pattern matching. But those issues are off-topic, I guess.
Re: Wait, what? What is AliasSeq?
On 2015-07-16 10:00, Marc =?UTF-8?B?U2Now7x0eiI=?= schue...@gmx.net wrote: What I meant is that there is no equivalent to the behaviour of TypeTuples: assert(is(TypeTuple!(int, float, TypeTuple!(string, int)) == TypeTuple!(int, float, string, int)); TypeTuple!(int, int) a; a[0] = 1; a[1] = 2; void foo(int, int); foo(a); // works But not in Ruby: [1, 2, [3, 4]] != [1, 2, 3, 4] def foo a, b ; end foo([1, 2]); // doesn't work foo(*[1, 2]); // but works with splat operator Maybe auto-flattening is a better name for this behaviour? My point is that there is no type in Ruby that is inherently splatty, rather it's the operator that produces this behaviour. Therefore, splat is not used as a noun to signify such a type. I see what you mean now. -- /Jacob Carlborg
Re: Wait, what? What is AliasSeq?
On Wednesday, 15 July 2015 at 21:44:37 UTC, Timon Gehr wrote: It should instead be acknowledged that there /should/ be no difference in what three things can be passed to X(T...) and X(alias a, alias b, alias c). The X(T...) if(T.length==k) pattern is ridiculous. I am all for that but it needs to be explicitly acknowledged and implemented together with a rename.
Re: Wait, what? What is AliasSeq? - `Pack` Proposal
On Thursday, 16 July 2015 at 07:30:19 UTC, Mike wrote: I know Ola is making light of this situation and many of you find this discussion beneath you, but we need a name, and with the release looming we need it relatively soon. Naming is difficult, but list and pack (alluding to unpacking) are the most accurate terms. But you need a general term that covers both types and values/expressions... I don't know of one. alias is not an abstraction but more like an action that binds something. Maybe something like mixed… Just Pack would be confusing... Sounds like a verb and I wouldn't understand it without looking it up in the docs. You need a word before pack. These I would be able to infer from context: MixedList CompileTimeList CTList AliasList AliasPack ParamPack ArgPack Parameters Arguments Given that that D has its roots in C++ and this construct is similar to the one in question, it seems like a good fit. Yes, if C++ integration is going to big thing for D, it sounds reasonable to use similar terminology. Searching on cppreference.com is useful.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 08:00:43 UTC, Marc Schütz wrote: My point is that there is no type in Ruby that is inherently splatty, rather it's the operator that produces this behaviour. Therefore, splat is not used as a noun to signify such a type. Yes, please forget about the tongue-in-cheek slang-term splat. That's for kids! splat is just slang for asterisk-something: https://en.wikipedia.org/wiki/Asterisk «In Commodore (and related) filesystems, an asterisk appearing next to a filename in a directory listing denotes an improperly closed file, commonly called a splat file.» «Certain categories of character types in role-playing games are called splats, and the game supplements describing them are called splatbooks. This usage originated with the shorthand *book for this type of supplement[…]» «In many MUDs and MOOs, as well as male, female, and other more esoteric genders, there is a gender called splat, which uses an asterisk to replace the letters that differ in standard English gender pronouns. For example, h* is used rather than him or her.» You might as well call it AliasGoo.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 05:51:01 UTC, Mike wrote: A template parameter pack is a template parameter that accepts zero or more template arguments (non-types, types, or templates). A function parameter pack is a function parameter that accepts zero or more function arguments. A template with at least one parameter pack is called a variadic template. Sound familiar? I propose simply Pack. + 1
Re: Wait, what? What is AliasSeq?
On Wednesday, 15 July 2015 at 21:44:37 UTC, Timon Gehr wrote: It should instead be acknowledged that there /should/ be no difference in what three things can be passed to X(T...) and X(alias a, alias b, alias c). The X(T...) if(T.length==k) pattern is ridiculous. +1
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 07:14:34 UTC, Ola Fosheim Grøstad wrote: array: run-time indexable bag Eh... not bag, bag often means value semantics without identity... array: run-time indexable collection of entities.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 06:32:15 UTC, Jacob Carlborg wrote: How about Bag or AliasBag? Blob :) An object, especially a large one, having no distinct shape or definition
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 06:32:15 UTC, Jacob Carlborg wrote: On 2015-07-07 23:16, Andrei Alexandrescu wrote: So I thought we were supposed to replace bad names with good names. Template arguments are indexable, so sequence doesn't quite apply. What happened? Why are we replacing a crappy term with another crappy term? How about Bag or AliasBag? A bag is the same as a C++ multi-set. Let's go over the common usage: list: finite ordered source of entities tuple: in math it is a fixed length list of values, in programming it usually has semantics close to a record/struct with numbers instead of field names and structural typing. sequence: infinite or finite list of values of the same kind/type bag: unordered list set: bag with unique entities array: run-time indexable bag
Re: Wait, what? What is AliasSeq? - `Pack` Proposal
On Thursday, 16 July 2015 at 05:51:01 UTC, Mike wrote: C++ also have related use of the word pack: http://en.cppreference.com/w/cpp/language/parameter_pack I propose simply Pack. I know Ola is making light of this situation and many of you find this discussion beneath you, but we need a name, and with the release looming we need it relatively soon. I've creating a pull request for Pack (https://github.com/D-Programming-Language/phobos/pull/3494) which is inspired by C++'s parameter_pack as linked in the previous post. From the description: A template parameter pack is a template parameter that accepts zero or more template arguments (non-types, types, or templates). A function parameter pack is a function parameter that accepts zero or more function arguments. A template with at least one parameter pack is called a variadic template. Given that that D has its roots in C++ and this construct is similar to the one in question, it seems like a good fit. I prefer `Pack` over `AliasPack` or other variations because it's more general and allows us to be more specific in the future with `TypePack`, `ExpressionPack`, `AliasPack`, etc... later, but I'll be happy to change it if that's what you all wish. Ultimately, though, it's going to be a judgment call, and I hope having a pull request ready to go makes things easier on those who have to make the call. If it doesn't work, you know where the close button is. Mike
Re: Wait, what? What is AliasSeq?
On Wednesday, 15 July 2015 at 19:52:39 UTC, Jacob Carlborg wrote: On 2015-07-15 18:09, Marc =?UTF-8?B?U2Now7x0eiI=?= schue...@gmx.net wrote: Yeah, splat as a name for an auto-expanding thingy would be a novelty. Ruby for instance doesn't have anything like that, it has a splat _operator_ (asterisk) to expand a normal array, or conversely, capture several arguments in one parameter. I'm not sure what should count as auto-expanding, but this works in Ruby: a, b = [1, 2] No extra operator is required in this case. What I meant is that there is no equivalent to the behaviour of TypeTuples: assert(is(TypeTuple!(int, float, TypeTuple!(string, int)) == TypeTuple!(int, float, string, int)); TypeTuple!(int, int) a; a[0] = 1; a[1] = 2; void foo(int, int); foo(a); // works But not in Ruby: [1, 2, [3, 4]] != [1, 2, 3, 4] def foo a, b ; end foo([1, 2]); // doesn't work foo(*[1, 2]); // but works with splat operator Maybe auto-flattening is a better name for this behaviour? My point is that there is no type in Ruby that is inherently splatty, rather it's the operator that produces this behaviour. Therefore, splat is not used as a noun to signify such a type.
Re: Wait, what? What is AliasSeq?
On Wednesday, 15 July 2015 at 21:44:37 UTC, Timon Gehr wrote: It should instead be acknowledged that there /should/ be no difference in what three things can be passed to X(T...) and X(alias a, alias b, alias c). The X(T...) if(T.length==k) pattern is ridiculous. Yes, that would immediately solve the objection against Alias in the name, beside making the language more consistent.
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 10:19:11 UTC, Dicebot wrote: I am all for that but it needs to be explicitly acknowledged and implemented together with a rename. There is no renaming involved here, as the issue concerns the alias parameter language constructs. Or are you suggesting using another keyword than alias? – David
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 06:33:00 UTC, Jacob Carlborg wrote: On 2015-07-15 23:44, Timon Gehr wrote: It should instead be acknowledged that there /should/ be no difference in what three things can be passed to X(T...) and X(alias a, alias b, alias c). The X(T...) if(T.length==k) pattern is ridiculous. I completely agree. Walter has agreed at DConf that this (i.e. alias not accepting basic types) should be fixed. — David
Re: Wait, what? What is AliasSeq?
On Thursday, 16 July 2015 at 14:38:09 UTC, Dicebot wrote: I mean that if name AliasSomething goes to 2.068, matching change to compiler argument lists must land in same release - and there must be a change log entry connecting and explaining those two. I disagree with that. These aren't related at all. The change would affect alias params, not argument lists (which already accept everything). — David