> but the point is that you can't easily, by accident, call the write or close methods without a valid file argument in place. This makes code safer and cleaner.
Fact is, the difference between the dot and the colon is very confusing and much back-stabbing for Lua neophytes, especially for those with experience in other object-oriented languages, where the dot means exactly what Lua denotes by the colon. Such people tend to make this mistake even after years of using Lua, if it is not their primary language.