November 12, 2009
Walter Bright Wrote:

> Bill Baxter wrote:
> > It's harder to find those when you're skimming through trying to get the highlights with a 5 minute limit.  :-) What are some things is it missing?
> 
> Off the top of my head, some major ones:
> 
> . exception handling
> . generic programming
> . metaprogramming
> . inline assembler
> . interface to C
> . RAII
> . immutability for anything but strings
> . vector operations
> . operator overloading
> . purity
> . CTFE
> . unit testing
> . documentation generation
> . ability to write systems code like implement a GC
> . conditional compilation
> . contracts
> . 80 bit floating point
> . introspection (runtime or compile time)
> . delegates
> . reference parameters
> 
> Not sure if it has closures or not.
> 
> And of course a lot of minor ones,
> 
> . no _ in integer literals
> . no nesting comments
> . no entities
> 
> etc.


These features give great power for numeric uses.
Probably Go's developers would have never imagined to do numerical operations with their language.
Only middlewares are in their sights.

I'm impressed by Go's selector expressions and anonymous fields. They are what D's overload sets and opDot/alias this aimed to. But I love implicit casts with alias this at the same time.

I withhold to say which is better, Go's interfaced pointers or D's value-struct/reference-class. On this point, both Go and D would have pros and cons.


p.s.
If both D and Go come to be major language,
There will be many disputes like fray between users of Python / Ruby / Perl.