Je pense que "langage de script" est un mot horrible, qui est extrêmement obsolète ou, au mieux, convient à une classe de langages spécifiques à un domaine. Votre professeur aligne simplement tout ce qu'il ne comprend clairement pas sur un axe du mal.
Une distinction judicieuse à faire est celle entre les langages de haut niveau et les langages de bas niveau, ou entre les langages typés statiquement et dynamiquement, qui sont vraiment orthogonaux.
L'assembleur est typé dynamiquement de bas niveau (si parler de types a du sens), C est typé statiquement de bas niveau, Ruby est typé dynamiquement de haut niveau, Haskell est typé statiquement de haut niveau. Java n'est ni de haut ni de bas niveau typé statiquement, C ++ est à la fois de haut et bas niveau statiquement typé. Etc.
La discussion ne peut être que, quels paradigmes conviennent mieux à un programmeur débutant.
Je suis assez convaincu que la programmation de bas niveau n'en est probablement pas une. C'était peut-être, il y a quelque temps, au début des années 90, où vous pouviez en fait produire des résultats intéressants dans un délai raisonnable.
Mais la programmation est alimentée par la passion. La passion se nourrit de récompenses. Par conséquent, les programmeurs de niveau d'entrée devraient commencer avec des outils enrichissants. Les outils de bas niveau ne sont plus gratifiants, car il existe une vaste mer d'outils de haut niveau qui vous permettent d'obtenir le même résultat en une fraction du temps.
La pensée humaine est abstraite. Lorsque nous apprenons à comprendre le monde, nous le faisons par des abstractions à grain très grossier et nous entrons dans les détails au besoin.
Pour qu'un enfant comprenne son environnement, vous n'allez pas lui enseigner les mathématiques, puis la physique, puis la chimie, puis la biologie, puis l'histoire, la sociologie et la philosophie. Vous lui donnez un modèle du monde très simple à gérer et vous aurez, par lui-même, longtemps à le dépasser, vous posant sans cesse des questions dans votre jeunesse et niant complètement votre autorité plus tard.
Voilà comment nous pensons. Le cerveau humain ne peut traiter que des quantités limitées d '"unités" d'information, mais le degré d'abstraction importe peu dans la quantification de l'information. Par exemple: pour nous, la lecture de l'expression '34 * 75 'est plus simple que son calcul, alors que pour les ordinateurs c'est l'inverse. Reconnaître (et ainsi abstraire) un groupe de pixels noirs en une ligne ondulée, qui peut ensuite être reconnu (et ainsi encore une fois abstrait) pour être un chiffre individuel est une énorme quantité de travail.
Ma grand-mère comprend l'idée d'ouvrir un dossier. Cependant, elle n'a aucune compréhension en dessous de ce niveau. Et franchement, si elle avait dû apprendre cela en étudiant d'abord le fonctionnement interne du matériel et du système d'exploitation et quoi d'autre, elle n'y serait jamais arrivée.
Il y a beaucoup de gens là-bas, qui compliquent les choses, car on ne leur a jamais appris à penser en termes de solutions claires, concises et donc élégantes, mais ils ont passé trop de temps à se soucier des détails de bas niveau échangeables et à résoudre des problèmes contre ceux-ci. Apprendre aux gens à penser comme des ordinateurs est la pire approche possible de la programmation.
La valeur de la programmation réside dans la recherche d'une solution à un problème. L'exprimer sous forme de code est vraiment plus une tâche mécanique ennuyeuse et devrait simplement être fait avec les outils qui conviennent.
Oh, et ne vous inquiétez pas de ne pas avoir compris les pointeurs. J'ai eu à peu près le même problème au même âge. Le problème ici est également le manque d'abstraction. En règle générale, vous vous familiarisez avec les pointeurs d'un livre C et pendant que vous avez du mal à les comprendre, cela va de pair avec l'allocation de mémoire et donc avec la mémoire de pile et de tas, etc. Le concept abstrait derrière les pointeurs est l'indirection. Une variable qui contient un index dans un tableau spécifique est juste cela (en fait, c'est vraiment la même chose en C, où le tableau spécifique est votre espace d'adressage), et vous n'avez pas besoin d'arithmétique de pointeur pour cela.
Ceci est juste destiné à illustrer que le choix d'un niveau élevé d'abstractions rend les choses beaucoup plus faciles à saisir.
EDIT: et quand il s'agit de taper, je préfère les langues typées statiquement. Et je pense que les programmeurs de niveau d'entrée devraient comprendre clairement le concept de types (qui est abstrait).