Packages allow you to break up code into chunks that make it easier to understand what each piece is doing. How this works is up to the language, typically there will be a defined file/folder structure that is used to define packages.
Vendoring is the name given to importing other people’s code to use in your projects. In some frameworks there will be dedicated folders for this (/vend
, /vendor
etc.). This can mean bringing in small pieces of code, or vendoring an entire application This can be used for things like:
If you are wondering if you’re allowed to vendor a project, check out our blog post here for a very basic rundown of some terms that might be useful.
Sometimes managing packages can be a hassle. If you’re using multiple packages from different people you don’t wanna have to manually check if there are new versions individually, or download all of their packages you need manually. Package managers allow you to have a system to help manage your packages easily.
Language package managers are incorporated into a programming language and are used to let you install packages you can then use in the language. For example:
Some operating systems will ship with package managers (such as apt or pacman) that help to manage packages that keep the system up and running, and some will even ship with package managers that help manage applications you install. Most linux distributions ship with an easy to access package manager that lets you manage your applications all in one place. Windows and Mac OS don’t ship with this functionality, but you can get something close to it with chocolatey (for windows) and homebrew for Mac OS.
Some applications will allow users to install additional packages (mods in video games, extensions in spreadsheet apps etc.). These application level package managers will sometimes install entire new applications (game launchers), or just add small pieces of functionality (mod managers for a game).