The chosen example (printf) doesn't make D look very good compared to C. If I modify the example to include a simple type error:
printf("Hello %s", 123);
Then the D version will still happily compile without warnings and will segfault.Compiling with GCC -Wall -Werror, the type error is easily caught by the compiler.