Are Massive Dependency-Heavy Codebases Just the Normal Way Software Is Built Now?

August 11, 2026 5 answers
Asked by MellowQuasar47
I'm learning how modern software is put together, and I'm surprised by how large many projects become. Even an application that seems fairly focused can contain tens of thousands of files, much of it coming from direct and transitive dependencies, frameworks, package managers, and generated code. It feels like a small amount of project-specific code is sitting on top of millions of lines written by other people. Is this simply the modern norm, or are there development approaches that avoid this kind of complexity? I'm especially curious about security: how do teams evaluate and trust all those dependencies, and how do they deal with vulnerable or breaking updates?

Answers

NorthwindPixel6
There isnโ€™t a magic way to trust everything. Mature teams maintain an inventory or software bill of materials, scan dependencies for known vulnerabilities, verify package sources and checksums, limit build and runtime permissions, and assign responsibility for keeping libraries updated. They also review important or security-sensitive dependencies instead of assuming that a popular package is automatically safe.
Reply to this answer
AmberLattice90
Yes, a lot of software is genuinely bloated, and legacy systems can grow for years without much cleanup. But large repositories arenโ€™t automatically bad: reusable libraries can reduce duplicated work, and the real danger is unmanaged complexity. A small, carefully maintained dependency set is usually easier to secure than pulling in an entire framework for one minor feature.
Reply to this answer
QuietHarbor52
The file count can be misleading. A large portion may be generated output, test data, documentation, build artifacts, or libraries that the application uses but doesnโ€™t maintain. The more useful questions are how much code the team owns, how many dependencies are included in production, and how difficult it is to make and test a change.
Reply to this answer
VividMaple31
Dependencies are definitely a risk. A vulnerable, abandoned, compromised, or poorly tested package can affect every project that uses it, and transitive dependencies make the chain harder to understand. Updates can also introduce behavior changes, so teams commonly pin or lock versions, review upgrade changes, run automated tests and security scanners, monitor vulnerability advisories, and remove packages that arenโ€™t really needed.
Reply to this answer
CedarOrbit8
This has been common for decades, although the scale varies by project. When you download a compiled application, you usually donโ€™t see its internal libraries as source files, but theyโ€™re still there in the form of DLLs, shared libraries, or bundled components. Modern package managers make the dependency tree much more visible, especially for ecosystems where applications include source and build files.

MellowQuasar47: That makes sense for the size, but how have teams handled the security problem over all those years?

Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions