Common problems with using distribution package managers for software development:
- not all versions are available, and the versions which are available is different across distributions
- even if the version is the same, the location is not consistent, necessitating search logic to find libraries to link to and headers to include
- even if the version is supposedly the same, the distribution may have enabled different options, fiddled with the package or otherwise made it unsuitable for your use. Upstream developers often loathe to support the version your distribution uses.
- multiple versions cannot be installed independently, and the version you need may conflict with the packages you are using on your system but are not dependencies of your project
- This likewise can cause conflicts between different projects you are working on, causing a need for VMs and projects like vagrant, which are very heavyweight and mean you need to maintain multiple copies of your preferred editor and IDE setup.
- Forking a dependency to fix or customize it (to submit a fix upstream or not) gets even more painful.
All of these are much less painful for language based package managers.