Prototype Breaks Not

The recent Ajaxian post on Prototype mentions how most people argue Prototype's badness. The first point is the most common: breaking the for...in loop.

This will be my main point today. Let my ranting begin. If you are using indexes other than numbers on an array, there's something seriously wrong with your code. Arrays are not dictionaries, hashes, hash tables, HashMaps, associative arrays, or whatever you call it. Arrays are arrays, and their indexes should be numbers. If you're using the for...in loop to iterate over properties, use objects. Objects are for this. Not arrays.

Stop blaming that Prototype breaks your code. Blame your code. Blame your code treating arrays like hashes when in fact you shouldn't.