The combination of better tools, access to information and reusable software components has made building software much more efficient than it was fifty years ago.