I agree, it depends.
in reply to Appropriate amount of abstraction
Considering one case where a new perl programmer has a good understanding of all the abstraction is replacing, things are likely fine, aren't they? For example, could they likely code it without the abstraction so it works, albeit not as cleanly and with more effort?
Perhaps the coding requirement above isn't needed. If the programmer clearly understands all the things that are happening using the abstraction, maybe things are fine without learning the details.
As I learned recently, sometimes a cost in using the abstraction isn't noticed initially. A c program called by a script ended up needing considerable memory.
So, many considerations exist.
- Does they understand what exactly is happening?
- Are they any costs (i.e. time, memory) that should be avoided?
- Is the task being overly simplified or wrongly performed due to use of the abstraction?
It's very late, so I'd best leave continuing this list to my fellow monks.