I agree, and use 7z (seven Zip).
It supports -9 Option, to "maximal" shrink Data Information's.
It supports multiple Formats - .tar, .gz, .zip, .lha, ...
The Command, I use is: # zip -9 -r packedfile.zip *.pas
pack all *.pas files in the current, and sub Directories based on starting the Command.
-9 = max Pack-Level (slow)
-r = recursive
for Pack-Level, you can use Digits between 1, and 9
1 - lowest Level (fast)
9 - highest Level (slow)