Mainly because once you get more than a few arguments, it gets tedious to start newing them all up and all of their dependencies and on down the stack. So some people built frameworks to do it for you but each of these frameworks requires their own configuration/documentation and suddenly instead of 50 lines of news, you have annotations in twenty different files that effect the way your code runs without actually being code. Each step to get from A to Z seems perfectly logical but the end result is a difficult place to start.