"The drive for abstractions is a natural consequence of programming, however it must be kept in balance, as often presented by Ayende with his``Limit your Abstractions""series."
Avoiding abstractions for fear of complexity shouldn't be the default position, because well designed abstractions have the potential to improve clarity, reuse and ultimately advance the state of the art.