Linux is a headache for two reasons: (1) because it's basically packaging your app for half a dozen different app stores, so you need tools that make that easier for you, and (2) lots of frameworks have no, buggy or unwieldy Linux support, because Linux had such a small userbase. So you're right, it is more of a headache for the developer, but the end user has a much nicer experience (it can't be overstated how nice it is to be able to install almost anything with one command, and update everything with another). Of course, binaries can be downloaded off the Internet just like on Windows, and some apps, like Chrome, will even keep themselves up-to-date without a package manager, again like on Windows, but each app having its own messy, non-standardized updating scheme is something of an antipattern on Linux, even if it's par for the course on Windows.