Penso che il "linguaggio di scripting" sia una parola terribile, che è estremamente obsoleto o che meglio si adatta a una classe di linguaggi specifici di dominio. Il tuo insegnante sta semplicemente allineando tutto ciò che chiaramente non ha abbastanza comprensione in un asse del male.
Una distinzione sensata da fare è quella tra linguaggi di alto livello e linguaggi di basso livello, o tra quelli tipizzati staticamente e dinamicamente, che sono veramente ortogonali.
L'assembler è di basso livello, tipizzato dinamicamente (se parlare di tipi ha senso), C è di basso livello, tipizzato staticamente, Ruby è di alto livello, tipizzato dinamicamente, Haskell è di livello elevato, tipizzato staticamente. Java non è né alto né basso livello tipizzato in modo statico, il C ++ è tipizzato sia a livello alto che a basso livello. E così via.
La discussione può essere solo, quali paradigmi sono più adatti per un programmatore entry-level.
Sono abbastanza convinto che la programmazione di basso livello probabilmente non lo sia. Potrebbe essere stato, qualche tempo fa, nei primi anni '90, quando in realtà si potevano produrre risultati interessanti in tempi ragionevoli.
Ma la programmazione è alimentata dalla passione. La passione è nutrita dai premi. Pertanto, i programmatori entry-level dovrebbero iniziare con strumenti gratificanti. Gli strumenti di basso livello non sono più gratificanti, perché c'è un vasto mare di strumenti di alto livello che ti danno lo stesso risultato in una frazione del tempo.
Il pensiero umano è astratto. Mentre impariamo a capire il mondo, lo facciamo con astrazioni a grana grossa e andiamo nei dettagli secondo necessità.
Perché un bambino capisca il suo ambiente, non lo insegni alla matematica, poi alla fisica, poi alla chimica, poi alla biologia, poi alla storia, alla sociologia e alla filosofia. Gli dai un modello molto semplice del mondo per far fronte e, da solo, a lungo andare oltre, spargendo incessantemente domande a te quando sei giovane e negando completamente la tua autorità in seguito.
È così che pensiamo. Il cervello umano può elaborare solo una quantità limitata di "unità" di informazione, ma il grado di astrattezza conta poco nella quantizzazione dell'informazione. Ad esempio: leggere l'espressione '34 * 75 'per noi è più semplice per noi che calcolarlo, mentre per i computer è il contrario. Riconoscere (e quindi astrarre) un mucchio di pixel neri in una linea ondulata, che può quindi essere riconosciuto (e quindi ancora una volta astratto) come una singola cifra, è un'enorme quantità di lavoro.
Mia nonna capisce l'idea di aprire un file. Comunque non ha comprensione al di sotto di quel livello. E francamente, se avesse dovuto imparare questo prima studiando il funzionamento interno dell'hardware e del sistema operativo e cosa no, non sarebbe mai arrivata lì.
Ci sono un sacco di persone là fuori, che complicano le cose, perché non hanno mai insegnato a pensare in termini di soluzioni chiare, concise e quindi eleganti, ma hanno passato troppo tempo a preoccuparsi di dettagli di basso livello scambiabili e risolvere i problemi contro quelli. Insegnare alle persone a pensare come i computer è il peggior approccio possibile alla programmazione.
Il valore della programmazione sta nel trovare una soluzione a un problema. Esprimerlo come codice è in realtà un compito più noioso e meccanico e dovrebbe essere fatto semplicemente con tutti gli strumenti adatti.
Oh, e non preoccuparti di non aver capito i puntatori. Ho avuto lo stesso problema alla stessa età. Il problema qui è anche la mancanza di astrazione. Classicamente si apprendono i suggerimenti da un libro C e mentre si fatica a comprenderli, questo va di pari passo con l'allocazione della memoria e quindi con la memoria stack e heap e così via. Il concetto astratto dietro i puntatori è indiretto. Una variabile, che contiene un indice in un array specifico, è proprio quella (in realtà è la stessa cosa in C, dove l'array specifico è il tuo spazio indirizzo), e per questo non hai bisogno di aritmetica puntatore.
Questo è solo un modo per illustrare, che la scelta di astrazioni di alto livello rende le cose molto più facili da capire.
EDIT: e quando si tratta di digitare, preferisco le lingue tipizzate in modo statico. E penso che i programmatori entry level debbano capire chiaramente il concetto di tipi (che è astratto).