Should I be using snapshots or clones for my purposes?
I have a VirtualBox machine representing a "clean" install of my OS. I would like to use this VM for several types of machines - one for simple games, one for programming, one for my audio editing. So basically I want three or four (maybe more later) VMs which I can start up depending on what I'm doing. From what I understand, both clones and snapshots could serve my purposes. I could either make a separate clone for each VM I want, or just branch off several snapshots of the base machine and install all of my tools on each one.
The only basic difference I can think of is (1) I can't run multiple snapshots of the same machine at the same time (or can I?) and (2) clones would take up more space on my HDD (since the whole virtual HDD would be cloned multiple times).
Note that I'm not concerned with running multiple VMs at the same time, I only want to run one at a time.
Are there other differences I'm not thinking of?
Your difference (2) is erased if your clones are "linked clones" rather than "full clones". Linked clones use differencing disks just as snapshots do. Then the real differences from snapshotting are that snapshots can be made from a running VM; and furthermore your point (1), which occurs because each snapshot has the same disk ID (UUID). In contrast, each cloned disk is assigned a new disk ID (UUID). The distinct disk IDs permit cloned disks to run concurrently.