Just where has this language gone wrong?

Stuart stugol at gmx.com
Tue Jul 24 21:21:22 PDT 2012


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?


More information about the Digitalmars-d mailing list