www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: need clarification: will typedef, C struct initialization, etc.

reply lurker <lurk lurk.com> writes:
Lionello Lunesu Wrote:

 On 1-6-2010 5:38, Andrei Alexandrescu wrote:
 On 05/31/2010 03:54 PM, bearophile wrote:
 Andrei Alexandrescu:
 typedef is gone.

*mewls* I have shown here some examples of typedef usage, and I'll keep posting few more in future. I'd like to pull it back from the grave and keep it :-)

It's wasted time. typedef is gone. Andrei

:(( I also miss typedef. I thought D had a great opportunity to fix it. Take something like the Windows headers. It mostly consists of typedefs for handles and whatnot. Without typedef you'd have to use alias and type safety is out of the windows. So what would be the way to translate those Windows headers? Create a unique struct for each old typedef? With alias this, and a ctor? Well, if that's the way to do it now, why not make typedef a shortcut for exactly that!? IIRC typedef is gone because you and Walter could not agree whether it had to be a subtype or a supertype of the typedef'ed type. For me it's rather simple: I want to introduce a new type in such a way that it helps me prevent mistakes, ie. passing one handle when the function wants another, even though both are based on void*, or whatever. Bring typedef back!

You're apparently missing something. The D 2.0+ has and will be designed by real group of experts who have "garnered a solid reputation as a leading innovator in programming languages and methods", i.e. Walther and Android. They have huge experience designing the leading programming languages such as Haskell, F#, Spec#, Java7, C#4, Erlang, Discipline, Python3, XML, Go etc. The decade of community inspired D has already ended. There's too much momentum behind the current design decisions to change that now. The future spec will be "casual and conversational, but never at the expense of focus and precision". You're only wasting your time if you wish D to change. It won't. D is focusing on commercial multicore real world applications now. That's happens by using Phobos & D2. Your previous bugs are magically gone. We need stability, we don't need new features. Most importantly, we don't need no experimental features - especially if your proposal comes from a competing language with a simpler syntax and more rigorously presented semantics.
Jun 02 2010
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 06/02/2010 10:21 AM, lurker wrote:
 Lionello Lunesu Wrote:

 On 1-6-2010 5:38, Andrei Alexandrescu wrote:
 On 05/31/2010 03:54 PM, bearophile wrote:
 Andrei Alexandrescu:
 typedef is gone.

*mewls* I have shown here some examples of typedef usage, and I'll keep posting few more in future. I'd like to pull it back from the grave and keep it :-)

It's wasted time. typedef is gone. Andrei

:(( I also miss typedef. I thought D had a great opportunity to fix it. Take something like the Windows headers. It mostly consists of typedefs for handles and whatnot. Without typedef you'd have to use alias and type safety is out of the windows. So what would be the way to translate those Windows headers? Create a unique struct for each old typedef? With alias this, and a ctor? Well, if that's the way to do it now, why not make typedef a shortcut for exactly that!? IIRC typedef is gone because you and Walter could not agree whether it had to be a subtype or a supertype of the typedef'ed type. For me it's rather simple: I want to introduce a new type in such a way that it helps me prevent mistakes, ie. passing one handle when the function wants another, even though both are based on void*, or whatever. Bring typedef back!

You're apparently missing something. The D 2.0+ has and will be designed by real group of experts who have "garnered a solid reputation as a leading innovator in programming languages and methods", i.e. Walther and Android. They have huge experience designing the leading programming languages such as Haskell, F#, Spec#, Java7, C#4, Erlang, Discipline, Python3, XML, Go etc. The decade of community inspired D has already ended. There's too much momentum behind the current design decisions to change that now. The future spec will be "casual and conversational, but never at the expense of focus and precision". You're only wasting your time if you wish D to change. It won't. D is focusing on commercial multicore real world applications now. That's happens by using Phobos& D2. Your previous bugs are magically gone. We need stability, we don't need new features. Most importantly, we don't need no experimental features - especially if your proposal comes from a competing language with a simpler syntax and more rigorously presented semantics.

Tasteful irony (gave me a good chuckle), but unfortunately it's misplaced. I suggested eliminating typedef exactly because it was ill-defined and it was lacking rigorous semantics. Walter agreed to eliminating it exactly because he was unable to ground typedef's definition. Also, progress in other, better-defined areas of the language afford us to implement typedef as a user-defined abstraction. There are other things to be snarky about regarding D - have at them! Andrei
Jun 02 2010
parent Trass3r <un known.com> writes:
 I suggested eliminating typedef exactly because it was ill-defined and  
 it was lacking rigorous semantics. Walter agreed to eliminating it  
 exactly because he was unable to ground typedef's definition. Also,  
 progress in other, better-defined areas of the language afford us to  
 implement typedef as a user-defined abstraction.

Maybe we could also keep typedef foo bar; as syntactic sugar for some template magic or whatever it will be in the end.
Jun 02 2010