If you like ADA, use ADA.
Or you can use GoLang which allows you to use variables automagically without declaring them first...
My experience with GoLang however tells me that GoLang code is much easier to write, than it is to read. Whenever I am looking at someone's golang code there are virtually no declarations of local variables anywhere (well there are some in rare occasions) and this makes the code much harder to read because you have no clue what type a variable is, for example when a function returns a value.. You have to go to the documentation to see what the function returns as a type, because it's not declared in the program.
This is a double edged sword. Makes programs easier to write, but harder to read.
But for local loop counters, everyone knows what the loop counter "i" is supposed to be for so I can see your point about not declaring it, but I find this such a small issue in programming that ... "is it worth the hassle of implementing such a small feature that makes programming maybe less than 0.000001 percent easier on users" when in fact like Marcov said, a patch could be added to the compiler to warn/forbid people from using "i" loop counters again in the same procedure further down?