Author here. For my part, I have never understood why people consider it to be a good thing to squirrel code into a bunch of different sub-directories.<p>a) It makes the build scripts more complicated, which means they&#x27;ll be more likely to break on some poor noob, and that when they break it&#x27;ll be less likely the noob will be able to tell how to fix it.<p>b) Invariably the codebase accumulates dependencies between directories that are uneconomic to reorganize. At least a flat directory has a shot at under-promising and over-delivering.<p>c) Maybe people do it to make the place look neat, they way I used to &#x27;clean my room&#x27; by stuffing all my dirty clothes into drawers. But codebases that are messes at a deep level are less likely to be cleaned up if they look clean at a superficial level. And <i>all</i> codebases eventually turn into messes, the way we&#x27;ve done things so far.