Hacker News new | ask | show | jobs
by ajuc 5774 days ago
Because:

- each dependecy makes it harder to build your project

- and makes it more brittle (libraries goes obsolete, changes versions, occasionaly have non-backward-compatibile changes, on different systems different versions of libraries are available, etc)

- most of the time you use only small fraction of each library, it is also common (at least in static typing world) that libraries enforces data structures on you, so sometimes it's easier to reinvent wheel, than to integrate your app with some library

- when you need to add some feature to library you often have to go throught hoops (inherit some class, make some wrappers and use it instead of what you'd use normally) - it is much easier to keep things simple, when you have controll over interfaces and can just change what you want, also architecture is simpler without proxies, wrappers and delegates

- static binaries on linux don't work after a few years

- dynamic linked binaries works as long as somebody worries about dependency problems - and this means you

- you can keep all dependencies in VCS together with your project, but often it's not legal (LGPL)

- not really important for most apps - dependencies bloats your app

Dependencies in programming are like moving parts in enginering - there should be as few of them as possible.