7-zip vs WinRAR
One of the advancements of 7-zip is that it utilizes some preprocessors to improve the compressibility of certain types of data (i.e. x86 code - BCJ/BCJ2). In theory, an algorithm targetted towards a particular type of data can perform better than general purpose algorithms, provided sufficient effort is put into the targeted algorithm of course. This is the future of compression algorithms, targetting them towards common data types.
One of the reasons WinRAR is still #1 is that the GUI of 7-zip still has a long way to go to catch up to WinRAR. The console version of 7-zip is also less intuitive to use than WinRAR.
7-zip being Open Source isn't such a big deal. It's code is a mess from hell and the comments seem stripped or non-existant to start with. This attitude of many open source developers that documenting the code is less important than releasing the code I disagree with. The code can always be re-created, but the rationale for certain decisions and design takes longer to infer. Documentation should always be the #1 priority in any project where maintainence and extension by others is desirable. LZMA is a bit cleaner than 7-zip and, being a compression algorith, it is important it's open source, though I'd like to see improved documentation with it too.
Compatibility with existing decompression tools.
RAR has been around for many, many years and still people prefer not to distribute their software with it because it causes end users headaches since RAR is less common than ZIP and not natively supported by XP+.
This is why any algorithm that prevents people from using its decomprssion code freely will NEVER catch on (there are a couple good examples of this -- excellent compression software that things it's a good idea to charge for decompression support, preventing wide adoption of their code from ever happening). But, even algorithms with decoders that are free for anyone to use are still slow to catch on.
Of course, there's always self-extracting archives. These are nice, but there is unfortunately a growing trend to avoid distributing executables due to misconceptions by end users about any download or attachment ending with an executable extension.
The answer? There isn't an easy one. But then maybe there's no problem... this brings us to:
People have an attitude that ZIP (or gzip) is 'good enough'.
Bandwidth and storage are constantly increasing and people often feel even an unrealistically high 30% gain in compression is not worth it, much less more marginal gains. This attitude I don't approve of because it's mostly laziness and when everyone thinks this way you end up with A LOT OF WASTED BANDWIDTH AND STORAGE SPACE. I'm not a fan of waste just because 'we can'. I could now rant about this trend with software developers, and the beauty of uTorrent winning people's hearts based on its minimal resource use, but I'll save that for another rant.
So, WinRAR is king. It may be for some time. 7-zip stands a chance, but it'd stand a bigger chance if the code wasn't so damn messy and the project so unfriendly to new developers.
Disclaimer: These are my opinions and I may be wrong in this or that. If I am, please correct me.