Prototypes aren't bad. They're just a heck of a lot of rope by which one can hang oneself. I certainly wouldn't want to use them, but they have their uses. Kinda like symbolic references. There's some code that can't be written without them (like
Exporter), but that doesn't mean most people should use them.
My rule of thumb is unless you know why you should never use them, you should never use them.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?