Downloading the internet

Just a quick post that used to be about something only applicable to Java ecosystem. Nowadays it seems to be prevalent everywhere. What it is I am referring to, well we dubbed it “Downloading the internet”. It is all the dependencies and libraries and the dependencies and libraries of those dependencies and libraries ad nauseum when you are making an application that every developer seems to put in there.

Across the board we can look at the frontend eco system with their NPM that just gets the world in packages. Then there is Maven in Java that just seems to go on endlessly, or SBT in Scala. I recently discovered another one, in the golang eco system. Wow... It downloaded so many dependencies and they are all globally stored as well. Fantastic. No virtual environments for golang, oh no. Of course you can set the GOPATH environment variable to sort of install them in different locations, but really come on.

I feel Ruby and PHP also suffer from this but depends on the framework of choice. For example in PHP using Phalcon it is a compiled module and therefore you install it once and that is it. No extra stuff needed. Then in C# you usually have everything in the .NET framework already. In Python the standard library is so vast it most likely is in there and otherwise you have a couple of specific dependencies that are fairly contained.

#devops