Lecture: C++ Dependencies Don’t Have To Be Painful
Why You Should Use a Package Manager
The C++ community (especially professional developers) are increasingly looking for tools that can automate their development processes. Organizations spend significant amounts of time maintaining in-house tools, scripts, and other assets designed to keep their developers productive. This talk addresses one area impacted by this: managing C++ dependencies. There are lots of package managers on the market, and several have been gaining popularity in recent years. If you are interested in learning what modern package managers can do for you, and which package managers to use in different situations, this talk is for you.
According to recent surveys from the Standard C++ Foundation, a majority of C++ developers are manually managing their library dependencies. Curiously, one of the top pain points cited in these surveys was also “managing libraries”. I believe these two points are correlated.
In this talk, I will discuss how different types of package managers address these pain points, from system package managers like apt and Homebrew to build system centric package managers like NuGet and language package managers like vcpkg and Conan. There are pros and cons to every solution, and some package managers are more effective in some workflows than others. Managing libraries doesn’t have to be painful. If you configure your workflow right, you will save time not having to maintain additional git submodules, source code, or reading build instructions on GitHub.
I’ll also talk about a few scenarios related to dependency management: acquiring open-source libraries vs. private libraries, automatically building libraries from source, using libraries locally and in CI, using libraries with different build systems and operating systems, and acquiring developer tools from a package manager. You will come out of this talk with an understanding of how a package manager can rid you of your dependency woes.
Start time: 14:30
Room: Bristol I