We can debate and dispute this, but I'd rather propose: take a closer look at how this is handled in COBOL, and you'll re-evaluate.
In shortest words: variable declaration is also used as I/O format specification. Pretty much all of IO is just reading into a buffer, and the values are automatically mapped for your use. Sure you can use the same method in pretty much every general-purpose language (mapping C structs etc), but here it comes just natural.