Persze, a Java nyelv illetve az API-k általában visszafelé kompatibilisek (szép is lenne, ha egy rendszerfrissítés miatt a business-critical alkalmazás bemondaná az unalmast). De van sok olyan új nyelvi elem, amelyek kényelmesebbé teszik a kódolást, vagy olvashatóbb kódot eredményeznek, például ilyen az enhanced for loop.
A gyakorlat vs elmélet témakörben: ha tudsz programozni, akkor tökmindegy milyen nyelven teszed azt. Ha meg nem tudsz, csak egy bizonyos nyelvet hazsnálni, és nem érted mögötte az absztrakt koncepciót, akkor rajzolhatnak neked UML-diagramokat meg osztálydokumentációkat, nem lehetne implementálni. Persze, kell gyakorlat is, de egy bizonyos szint felett a tiszta elmélet (meg max. példaforráskódok olvasása) elkerülhetetlen. Amúgy én személy szerint példakódokból, meg papíron programozásból többet tanutam, mint abból, hogy ülök a gép előtt és "kipróbálom,mi történik" alapon nekiállok. Egy idő után az utóbbi módszer átgondolatlan, olvashatatlan kódot eredményez.