However, tar is a command-line program, and thus easy to interface with.
Thus, I recommend `atool`, which use tar, unzip, unrar, ... but wraps it all in a very good UX not depending on the archive type.
aunpack my_archive.zip
aunpack my_archive.rar
aunpack my_archive.bzip
...
It also makes the right choice when several files not under a directory are in the archive (create a new directory and place files inside), when the archive contains a single file (just place the file in the current directory), and when a clash of names can occur with a file/directory already present in your cwd (unpacks in a directory named 'Unpack-XYZ')