Lack of verbosity.

Clear concise code, thanks to the automatic initialization of class members, native strings/arrays/maps/slices, UFCS, declaration-order independence, etc.

class TOTO
{
    bool IsCool;
    int Age;
    TUTU[] Tutus;
    TOTO[string] Totos;

    void Foo( TUTU tutu )
    {
        Tutus ~= tutu;
        Totos[ tutu.Name ] = tutu.Toto;
    }
}

class TUTU
{
    string Name;
    TOTO Toto;

    this( string name )
    {
        Name = name;
        Toto = new TOTO;
    }
}

void Bar(
    ref TOTO toto
    )
{
    toto.IsCool = !toto.IsCool;
}

void main()
{
    TUTU tutu;
    TOTO toto;

    tutu = new TUTU( "tutu" );

    toto = new TOTO;
    toto.Foo( tutu );
    toto.Bar();
}

Absolutely no syntactic noise !!!

This is often overlooked, while D easily beats all its direct competitors (C++, Java, C#, etc) on that point.

Just try to implement the same code as simply in C++ and you will be convinced that this is D's strongest feature...

And this is also what makes D feel like a super-powered JavaScript when I use it :)

Reply via email to