With gtkmm and C++, the trend is away from dynamically created widgets to statically allocated widgets (except when using Glade). GtkD though seems to require use of dynamically allocated widgets since there appears to be no equivalent of statically allocated widget initialization that exists in C++. OK so the GC helps tidy things up instead of relying on RAII or smart pointers, but this is a very different idiom.