zac352 wrote:You have no idea how much more debugging spelling errors is without it erroring.

I also don't like how Lua prints one error, then gives up.. I have to run my scripts hundreds of times. o_e
This is a common complaint and the usual answers are in the Lua users Wiki on this page:
http://lua-users.org/wiki/DetectingUndefinedVariables
You can use the pcall and xpcall functions to execute portions of code with error handling. They are explained in the manual. Unit testing would also help with catching erroneous behavior early in the development process. I suggest you look into it.
By the way, I have no strong language preferences myself. I like statically typed languages too. I've enjoyed programming even in Haskell, which is pretty darn strongly typed compared to anything else I've tried. But when we live in the dynamic typing land, as with Lua, we better adapt. So, please do consider using unit testing. A lot. You code will thank you
(I've been looking at using Lunatest lately:
http://github.com/silentbicycle/lunatest . I don't yet have much experience with it, as I haven't had the chance to write anything interesting these past two weeks or so. The docs are all right, but they don't teach you how to write unit tests. There's a lot of advice for that elsewhere.)
P.S. I'm not trying to take over this thread. If you wish to argue language features or unit testing, try it in another thread. I'll let the OP take over again!