I see a few reasons: less compiled languages, more abstractions, more best practices, that means a lot of libs. I've seen Wirth pascal compiler, it's two files of a few hundreds of lines, but it's not decoupled in any way. Today most programs are larger than this because they compose lots of rules. It also brings false laziness, since you're not used to write short code, well you don't.