Pourquoi on doit toujours (bien) enseigner le langage Scheme à l’école

Programmation en Scheme

Scheme est un langage de programmation dérivé de Lisp, créé dans les années 1970 au MIT par Gerald Jay Sussman et Guy L. Steele. A syntaxe très éloignée de tout autre langage d’actualité, il m’arrivait souvent de me demander à quoi servirait ce langage qu’on m’apprend à ce moment où tout est devenu moderne. Une année après avoir terminé les études, j’étais allé sur Quora demander si ce langage est d’une certaine utilité. Voici ce qu’on m’a dit.

Apprendre Scheme est très utile, mais souvent pas directement (vous n’êtes malheureusement pas en mesure de l’utiliser sur le plan professionnel, sauf pour certains utilitaires d’utilisation personnelle).

Le plus grand avantage de Scheme est d’être un petit langage, bien défini (rappelez-vous qu’un langage de programmation est une spécification écrite dans un document). Scheme n’a pas seulement une syntaxe simple, mais aussi une sémantique propre et bien définie (voir la sémantique formelle dans R5RS). Aussi, un bon enseignement de Scheme doit inclure le call/cc (call-with-current-continuation) qui une manière formidable de faire comprendre la continuation et la continuation passing-style[en]. Scheme est aussi un langage homoiconique.

Fonction factorielle en Scheme
Fonction factorielle en Scheme, Credit Wikipedia

C’est aussi pourquoi Scheme est utilisé dans l’un des meilleurs livres (gratuitement disponible sur le site web du MIT) de programmation, le fameux SICP[en].

Un autre avantage de Scheme est sa facilité à être embarqué dans des applications sérieuses, à travers des implémentations comme Guille[en]. Plusieurs importants produits logiciels (exemple, AutoCAD avec AutoLISP, Emacs avec ELISP, GCC avec MELT) sont paramétrables à travers des langages du style LISP, et apprendre Scheme pourrait beaucoup aider.

Scheme améliore votre imagination

Par exemple, JavaScript un très vilain langage de programmation (conçu de manière pauvre, mais le gars qui l’a conçu n’avait que dix jours pour mettre en place un premier prototype), mais ses sémantiques (non pas sa syntaxe), sont très proches de Scheme (avec des différences significatives, tel que le système de prototype). On peut dire autant pour Python ou Lua.

Un cours d’informatique doit vous fournir des connaissances fondamentales, et Scheme est un excellent vecteur à cet effet. Les langages pratiques doivent être appris plus tard, et sans doute, ils varieront énormément durant votre carrière.

Comprendre la sémantique de Scheme peut vous aider à  apprendre assez facilement beaucoup de langages à typage dynamique. Pour mieux savoir comment Scheme peut être implémenté, consulter Lisp In Small Pieces.

Enfin, vous pourrez (tard dans votre carrière) avoir à ajouter quelques langages dédiés dans certains grands produits logiciels. Et pour de telles tâches, la connaissance de Scheme est très capitale.

 

Source : Quora, https://www.quora.com/Were-still-learning-Scheme-programming-language-at-school-Will-this-be-useful-for-us-in-our-professional-career/answer/Basile-Starynkevitch


Also published on Medium.

Partager sur les réseaux sociaux

Commentaires (2)

  1. I’m not that much of a internet reader to be honest but
    your sites really nice, keep it up! I’ll go ahead
    and bookmark your site to come back later on. Cheers

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *