HTML n'est pas un langage de programmation mais de description de page.
PHP est un langage généralement exécuté par un serveur web. Ca permet de créer la page au moment de l'envoi plutot que d'avoir des pages statiques. Cette page peut dépendre de données dynamique (base de données, résultat d'un formulaire). Ca fonctionne sur le serveur, le navigateur ne sait pas que la page a été générée par du PHP, il ne recoit que du html.
On peut aussi générer autre chose que du HTML (images, PDF ....).
C++ : c'est un langage de programmation très répandu avec des compilateurs pour toutes les plate-formes existantes. C'est du C avec des fonctions objets en plus. Mais ca n'a rien a faire dans un site.
Java : ca ressemble a du C mais exécuté par une machine virtuelle. Ainsi, le même programme peut tourner sur plusieurs machines différentes.
Il y a aussi le javascript, une sorte de java très light, qui est inséré dans les pages web et exécuté (par le navigateur).