Vladimir sì, diciamo che dai primi anni '50 ha senso parlare di programmazione. Molto carino il link di storiainformatica.it che riassume anche una vignetta con parallelismo dell'evoluzione umana, partendo dalla preistoria.
Classificazioni ne possiamo fare di vario genere (paradigmi di programmazione, compilato vs interpretato, ecc), è interessante invece l'aspetto delle generazioni (dal linguaggio macchina fino ad un livello di astrazione sempre maggiore, vicino al ragionamento umano, non a caso parliamo di reti neurali, Intelligenza Artificiale ).
E qui c'è un aspetto molto interessante da considerare: quando nasce un nuovo linguaggio di programmazione, spesso viene inteso "ad alto livello", essendo lo standard attuale. Questo valeva per il C, che oggi definiamo di livello medio, anche per Assembly, alla fine degli anni '40 e primi anni '50 era lo standard di programmazione più avanzato e vicino al ragionamento umano che ci potesse essere (rispetto a fornire direttamente istruzioni in codice binario). Col tempo l'evoluzione avanza e i linguaggi successivi rimpiazzano i precedenti, quindi ciò che prima era di livello medio-alto (astrazione vicina al ragionamento umano) diventa di livello medio-basso, sembra essere "macchinoso" mentre il nuovo arrivato, concettualmente ancora più vicino al ragionamento umano, diventa il nuovo standard ad alto livello. Questo concetto è importante! 🙂