Zig believes that all code needs to be explicit, to prevent surprises- You never want code that "just executes on its own" in places you may not expect it. Therefore, if you want default arguments, you have to perform some action to indicate this.
Per the article, this is the explicit form:
var gpa = std.heap.GeneralPurposeAllocator(std.heap.GeneralPurposeAllocatorConfig{}){};The fact that unacceptable parameter would fail compile time validation does not make it any more readable.
var foo = OpaqueTypeName(.{}){};
What is the . eliding?You don't know. I don't know. It's impossible to tell because the type is opaque to our understanding.