Sure it works for a sysadmin, but it's not matching at all how regular people are using their computer.
It means you can only use packages that are part of the official repo and:
- it's hard to get in those official repo
- it takes a lot of time
- it assumes free software
- if your app embeds its own dependancies, it's usually rejected by default
- it's a bottleneck for publication (the repo team is limited in resources)
- you have no control over updates
- you can't make people pay for software that are in those repos
- you may want/need to package the software yourself or for yourself
On my computer I have a huge number of softwares that I have not installed from the repos:
puslsms, vscode, telegram, dynalist, veracrypt, signal, discord, antidote, bitwarden firefox developper, guitar, stremio, pop corn time, dukto, photoflare, sublime text, table plus and sublime merge
I think using the simple act of spreading this argument is a demonstration of how remote one can get from the vast diversity of the user base.
The exception is distribution packages like Chromium and Firefox. These don't work well in deb format, because users expect the latest upstream updates after the distribution releases, but upstreams add dependencies creating dependency hell for packagers. Snaps work better for this case.
Also the sw engineering world is clearly moving away from packaging as "integate application into distro X version set of library versions by continuously expending a lot of integration engineering effort" and more towards things like docker images, snap/flatpak/appimage that sidestep the problem of host platform component dependencies as much as possible.
Right, but the point of a high-quality distribution is that this complicated hard work only needs to be done once (per package, updated for upstream changes obviously) by your distribution's package maintainer. Then it scales for free. That's the beauty.