Programmation de haut niveau

NÎMES OPEN GAME ART

L'objectif principal des Espaces Numériques (EPN) est de  lutter contre la fracture numérique et d'aider nos usagers à prendre conscience des phénomènes sous-jacents à l'utilisation des nouvelles technologies. Dans ce cadre, nous nous sommes intéressés à des outils pour "apprendre à coder" et nous proposons depuis peu des ateliers et un support autour de ces outils. 


Des lignes de code


L'ordinateur parle une langue obscure pour les humains...


À la base de l'informatique, le processeur des ordinateurs traite de l'information binaire, c'est à dire une suite de 1 et de 0 appelés bits.

On pourrait donc écrire un programme directement en binaire, mais cela serait fastidieux. On aimerait pouvoir écrire des programmes dans un langage un peu plus humain.

Au dessus du binaire, on trouve l’hexadécimal qui est une manière de compter sur une base 16. Une valeur hexadécimale est codée sur 4 bits, par exemple pour écrire le code binaire 1100, il suffit d'écrire C en hexadécimal. On gagne en terme de nombre de caractère mais le sens reste toujours obscur.


...Que l'on va traduire dans des langages intelligibles pour communiquer avec la machine...


Par dessus l’hexadécimal, on trouve le langage assembleur. À ce niveau, on commence à trouver des humains capables de comprendre et coder ce langage.

Au dessus de l'assembleur, on trouve les langages compilés comme le C par exemple. Le langage C exploite des fonctions basiques écrites dans un langage compréhensible. Par exemple, "print" pour afficher le contenu d'une adresse mémoire. 

Toutefois, la gestion délicate de l'allocation de la pile mémoire en fait un langage destiné aux spécialistes. De plus, toutes les fonctions évoluées (percevoir la pression d'une touche ou un clic de souris) devront être écrites à la main.

Au dessus des langages compilés on trouvera les langages dits interprétés  comme le PHP, le Ruby ou le Javascript. À ce niveau, tout est simplifié, on ne s'occupe quasiment plus de la gestion de la mémoire, toutefois, l'écriture se fait toujours en mode texte et l'utilisation des fonctions et objets ressemble à ce qui se fait avec les langages compilés.


L'éléPHPant, la mascotte de PHP


...Qui pourront être traduits de manière iconographique...


Enfin, on trouve les logiciels de programmation graphique depuis le milieu des années 80 comme Max ou pure data qui sont des environnements de développement graphiques initialement exploités dans le domaine de l'informatique musicale. 

Avec ces derniers, plus besoin d'écrire. Les fonctions sont pré-codées dans des blocs. On clic, on glisse, on raccorde les blocs ensemble et le tour est joué.

Dernièrement, ce type d'approche à été étendu à des environnements embarqués dans une page web comme "scratch" du M.I.T ou "made with code" de Google

Ainsi, plus besoin d'installer d'environnement de développement. On arrive à un niveau de simplicité qui permet aux néophytes d'écrire un programme en quelques minutes. J'ai personnellement codé avec Scratch une réplique de Space Invaders en associant une cinquantaine de blocs en 1 heure. En C, il me faudrait plusieurs jours et sans doute plusieurs centaines de lignes de code.


Space Invaders sur Scratch


...Mais en traduisant et en ajoutant des étapes, on complexifie la relation avec la machine !


Le revers de la médaille, est que plus le langage est de haut niveau, plus les performances sont à la baisse. Un programme écrit en C pourra tourner 10 fois plus vite qu'en PHP, Python ou Rubby.

Heureusement, les machines sont de plus en plus puissante et compensent en partie les pertes liées à la traduction du code lors de son interprétation dans les couches d’abstraction successives. De plus, des progrès sont faits sur ces langages de haut niveau. 

Le Javascript par exemple peut dans certains cas égaler le C et n'est en moyenne que 2 fois plus lent (voir le comparatif de performances des langages). Scratch et  madeWithCode sont basés sur Javascript et offrent donc des performances très correctes.

Grace à ces nouveaux outils, la programmation devient accessible aux enfants. L'approche est plus gratifiante qu'avec les langages traditionnels car les impératifs techniques sont mis de côtés et des résultats visuels et sonores sont obtenus plus rapidement.

Bon code à tous et à bientôt !

Ludovic J.

Fourni par Blogger.