On Tuesday, August 20, 2013 23:25:03 Michel Fortin wrote: > On 2013-08-21 00:38:30 +0000, Andrei Alexandrescu > > <seewebsiteforem...@erdani.org> said: > > 1. What do we need? > > I think D needs less tuples. It has two kinds (language kind and > Phobos's kind), which is confusing. It should have just one that covers > most use cases.
I honestly think that trying to combine Tuple and TypeTuple would increase the confusion, because you'd be forcing the compiler to decide what you meant in any given situation, and from the programmer's perspective, it will frequently be non-obvious whether what's being done is being done at compile time or at runtime. The main problem I see is that TypeTuple is badly named. Heck, the fact that it's even referred to as a tuple is problematic, since it isn't really, as it always expands. And the fact that it's the "built-in" tuple but requires a library solution to be able to actually declare it is a bit odd. So, I think that creating as syntax for the built-in tuples in order to get rid of TypeTuple would clean things up. But I see no reason to try and combine any of that with Tuple, as Tuple and TypeTuple do fundamentally different things. The main gain I see is simply in cleaning up the naming mess, and by making it so that the built-in tuple actually has a built-in syntax, the language is cleaner and should be easier to understand (especially if we can come up with a name other than tuple or built-in tuple to call them so that they stop getting confused with Tuple). - Jonathan M Davis