need clarification: will typedef, C struct initialization, etc.

lurker lurk at lurk.com
Wed Jun 2 08:21:58 PDT 2010


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.



More information about the Digitalmars-d mailing list