It all depends on who the maintainer is. In my consulting career, I consistently wrote code that would avoid map, grep, and other such "complex" constructs, save where I heavily commented it. In my last couple jobs, working with people who understood such code (like stvn
and mst of DBIC/Catalyst), I use map/grep almost exclusively over for-loops, save where a for-loop is more appropriate from a coding perspective. Why? Because the map/grep code is more
readable to us.
Readability is the sole definition of beautiful. There is just a question about what's readable for whom.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?