I've only recently discovered D, and I already think it's great. I mean, where else am I going to find a language that [a] compiles to native code, [b] has classes, [c] has no stupid flat-file #include system, and [d] has a GC? Honestly, I can't think of any others!

I really don't understand it when people yell "no more syntax!!!" though. Someone in this thread suggested using the ? operator to denote "nullable", and someone else objected to additional syntax. Personally I'm in favour of new syntax. One syntax addition that'd be really helpful is something that'd let me shorten "a != null ? a : b" to something like "a??b". Sort of an in-line "orelse". You could even chain them - e.g. "a??b??c". Of course, it'd have to work with nullable types (when null), integers (0), bools (false), and empty or uninitialised strings.

I reckon no pointers or references should be allowed null unless specified as such. That's one thing they even got wrong in .NET. Alternatively, to avoid breaking new code, use some kind of suffix to denote non-nullable.

I'd also like to see native support for embedded XML, like VB.NET has. Of course, it'd be next to useless without LINQ, and that'd require first-class support for iterators (see the YIELD keyword in C# and VB.NET). Then again, iterators are bloody awesome anyway in their own right, LINQ or no LINQ. D should have iterators.

Incidentally, does D have any real RTTI, or are we still in CPP-land on that?

Reply via email to