As far as I can see, in 10.04, the main differences between aptitude
and apt-get are:
aptitude adds explicit per-package flags, indicating whether a
package was automatically installed to satisfy a dependency: you
can manipulate those flags (
aptitude markauto or
aptitude unmarkauto) to change the way aptitude treats the package.
apt-get keeps track of the same information, but will not show it
apt-mark can be used for manipulating the flags.
aptitude will offer to remove unused packages each time you
remove an installed package, whereas
apt-get will only do that if
explicitly asked to with
apt-get autoremove or specify
aptitude acts as a single command-line front-end to most of the
functionalities in both
apt-cache. Note: As of 16.04, there is an
apt command that includes the most commonly used commands from
apt-cache and a few extra features.
In contrast to
aptitude's "search" output
also shows the installed/removed/purged status of a package (plus
aptitude's own status flags). Also, the "install" output marks
which packages are being installed to satisfy a dependency, and
which are being removed because unused.
aptitude has a (text-only) interactive UI.
I personally use only
aptitude for my command-line package
management (and I never use the text UI); I find its output more
aptitude will be no longer standard on Ubuntu, there's
no other choice than use
apt-get in instructions and how-to
(Personally, I'm rather disappointed to see it go away in 10.10;
especially since the improvements of aptitude over
mostly on the usability side. I guess they deemed that those
conversant with the command-line know how to get aptitude back, and
those who don't use the command-line will not care...)