An important aspect in software engineering is the ability to distinguish between premature, unnecessary, and necessary ...
It's not the best at one thing, but great for almost anything.