Mon langage est plus gros que le tien

room: Elgin, 2 — time: Friday 08:30-10:00
Average Rating: -

Depuis longtemps fascinés par l’expressivité et l’élégance de ces langages, nous cherchons à comprendre comment articuler les pratiques XP - TDD, Binômage, remaniement du code, itérations - et le paradigme fonctionnel; à identifier les points faibles et forts de ces langages par rapport au paradigme dominant - l’objet - dans le cadre de processus de développement agiles; à convaincre le plus grand nombre, enfin, de la pertinence de modifier nos modes de pensée dans le sens où ces langages nous y invitent.

Le paradigme de la programmation fonctionnel - tout est fonction - est historiquement le plus ancien modèle de programmation. Il a connu son heure de gloire dans les années 60-70 avec la famille de langages Lisp et Scheme et les promesses de l’intelligence artificielle, au point que certains ont envisagé de construire des machines Lisp. Après une longue éclipse, pendant laquelle ces langages, devenus les jouets favoris des universitaires et théoriciens, ont éclos en une multitude de dialectes, une nouvelle génération connaît un renouveau - limité certes, mais perceptible - de popularité. Haskell, OCaml, Scala, Erlang: ces noms sont désormais connus au-delà des symposiums académiques.

Cet atelier a pour objectif de comparer la mise en oeuvre des principes de codage d’XP, sur un problème métier relativement complexe, entre le paradigme fonctionnel et le paradigme objet. Plus particulièrement, évaluer la pertinence du paradigme fonctionnel par rapport: - au développement dirigé par les tests; - au remaniement de code; - à l’évolution fonctionnelle.

Process/Mechanics

Cette session pourrait se dérouler comme suit:

  1. Introduction et motivation du problème que l’on souhaite résoudre. (15’)
    • le problème de l’eexpression de la validation de formulaires
    • présentation et critique d’une solution en Javascript
    • pourquoi vouloir utiliser Haskell ?
  2. Introduction à la programmation fonctionnelle avec Haskell (15’)
    • résumé du langage (une feuille de synthèse est mise à disposition)
    • présentation d’un problème jouet en TDD
  3. Dojo TDD en Haskell (60’): Développement d’un langage de validation de formulaires. Selon le nombre de participants:
    • sous forme de randori (rotation par paire des programmeurs)
    • sous forme de kata interactif