Penso che "linguaggio di scripting" sia una parola terribile, che è estremamente obsoleta o nella migliore delle ipotesi si adatta a una classe di linguaggi specifici del dominio. Il tuo insegnante sta semplicemente allineando tutto ciò di cui chiaramente non ha abbastanza comprensione in un asse del male.
Una distinzione ragionevole da fare è quella tra lingue di alto livello e lingue di basso livello, o tra quelle tipicamente e dinamicamente, che sono veramente ortogonali.
L'assemblatore è tipizzato dinamicamente a basso livello (se parlare di tipi ha alcun senso), C è tipizzato staticamente a basso livello, Ruby è tipizzato dinamicamente ad alto livello, Haskell è tipizzato staticamente ad alto livello. Java non è né statico alto né basso, ma C ++ è sia statico alto che basso. E così via.
La discussione può essere solo, quali paradigmi sono più adatti per un programmatore entry level.
Sono abbastanza convinto che la programmazione a basso livello probabilmente non lo sia. Potrebbe essere stato, qualche tempo fa, nei primi anni '90, quando si poteva effettivamente 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. Quando impariamo a capire il mondo, lo facciamo con astrazioni a grana molto grossa e andiamo nei dettagli secondo necessità.
Per un bambino capire il suo ambiente, non gli insegnerai matematica, poi fisica, poi chimica, poi biologia, poi storia, sociologia e filosofia. Gli dai un modello molto semplice del mondo da affrontare e vorrà da solo desiderare di superarlo, lanciandoti infinite domande su di te quando sei giovane e negando completamente la tua autorità in seguito.
È così che pensiamo. Il cervello umano può elaborare solo quantità limitate di "unità" di informazioni, ma il grado di astrattezza conta poco nella quantizzazione delle informazioni. Ad esempio: leggere l'espressione '34 * 75 'per noi è più semplice per noi rispetto al calcolo, mentre per i computer è il contrario. Riconoscere (e quindi astrarre) un gruppo di pixel neri in una linea ondulata, che può quindi essere riconosciuto (e quindi ancora una volta sottratto) come una singola cifra è un'enorme quantità di lavoro.
Mia nonna capisce l'idea di aprire un file. Tuttavia non ha comprensione al di sotto di quel livello. E francamente, se avesse dovuto imparare questo studiando prima i meccanismi interni dell'hardware e del sistema operativo e cosa no, non ci sarebbe mai arrivata.
Ci sono molte persone là fuori che complicano troppo le cose, perché non è mai stato insegnato loro a pensare in termini di soluzioni chiare, concise e quindi eleganti, ma hanno passato troppo tempo a preoccuparsi di dettagli scambiabili di basso livello e risolvere 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 è davvero un compito noioso e meccanico e dovrebbe semplicemente essere fatto con qualunque strumento sia adatto.
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 apprendi i puntatori da qualche libro C e mentre stai lottando per capirli, 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 è il riferimento indiretto. Una variabile, che contiene un indice in un array specifico, è proprio quella (in realtà è davvero la stessa in C, dove l'array specifico è il tuo spazio di indirizzi), e per questo non hai bisogno di aritmetica del puntatore.
Questo ha solo lo scopo di illustrare che la scelta di un alto livello di astrazioni rende le cose molto più facili da comprendere.
EDIT: e quando si tratta di digitare, preferisco le lingue tipizzate staticamente. E penso che i programmatori entry level dovrebbero comprendere chiaramente il concetto di tipi (che è astratto).