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.
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.
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.
Also published on Medium.
L'une des préoccupations fondamentales de l'Ingénieur c'est de s'assurer de la qualité du produit que…
Bien que Paris Saint-Germain ne soit pas favori face au Bayern Munich, il ne serait…
Ce samedi, ce fut une fois encore l'occasion pour moi de passer sur le plateau…
Vous avez déjà entendu parler de "Github Student Pack" ? C'est une offre gratuite de…
Ce réseau social qui se veut différent des autres de part son caractère professionnel est…
Le développement d’applications informatiques implique souvent sa normalisation et son accélération. Les développeurs sont souvent…
Afficher les commentaires
Very good post. I certainly love this website. Keep writing!
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