Praticamente in tutti i linguaggi si può fare tutto, se vuoi un linguaggio educativo ti consiglio di studiare un linguaggio funzionale tipo haskell o ocaml oppure scala o clojoure (questi ultimi 3 sono ad oggetti e gli ultimi 2 girano su jvm disponendo di tutte le librerie per java), se vuoi un linguaggio potente e versatile il c++ va benissimo ma devi stare attento a come lo impari, un semplice tutorial su internet rischia di darti informazioni sbagliate e poco antendibili (per i linguaggi funzionali esistono ottimi libri free online) questo posso dirti, se aggiungi altri informazioni e cosa vorresti da questi linguaggi posso essere più preciso. Ciao =)
Tutti i linguaggi citate sono perfettamente adatti ad un uso reale e forse più potenti del c++ in molti campi, pur perdendo drasticamente in altri. Forse un po' meno usabile è l'ocaml.