Abschnittsübersicht

  • On peut se demander pourquoi utiliser le langage PureScript alors que nous utilisons par ailleurs Java. Dans ce contexte, un langage basé sur la JVM, comme Kotlin, Scala ou Clojure, serait sans doute un choix plus naturel.

    Dans le cadre d'une pédagogie d'inspiration constructiviste et pragmatiste, il est important que le réel résiste. Lorsque l'on aborde la programmation fonctionnelle en 3e année, cette confrontation au réel ne peut pas se faire uniquement sur la base de la passation de tests. En effet, en plus de la fonctionnalité du programme, c'est aussi sa structure que l'on cherche à contraindre. Si la séquence d'instructions est implicite dans la syntaxe du langage (Kotlin, Scala), celle-ci ne contraint pas à penser le programme comme une seule expression.

    En rendant la séquence explicite, Clojure impose cette contrainte. Toutefois, si Clojure rend les effets de bord visibles, il n'impose aucune contrainte sur leur utilisation et ne garantit donc pas la pureté des fonctions. Pour garantir cette pureté, il est nécessaire de se tourner vers un langage fonctionnel pur et, parmi les langages à usage général, Haskell est probablement le choix le plus évident.

    Pourquoi ne pas avoir choisi Haskell ? L'idée était d'avoir un langage qui s'intègre facilement dans un environnement déjà connu (JVM, Node.js, navigateur). Le langage Frege (Haskell pour la JVM) ne semblant plus être activement maintenu, PureScript constitue un bon second choix.