Forum Programmation.web Haskell et elm
Bonjour,
Je voudrais faire un petit projet de site web de vote. Pour ce faire, je pensais évidemment à elm
pour l’interface côté front. Mais, comme il doit y avoir plusieurs utilisateurs votant, il faut que le front de chacun communique pour dire que son vote est prêt, etc. Donc, il faut communiquer avec le côté back.
Étape 0 (préliminaire)
Dans la mesure du possible, je voudrais rester en programmation fonctionnelle. Du coup, je pensais faire le back en haskell
(…)
Lien Évaluons Haskell
GHC 9.2
GHC 9.2 est sorti le 29 octobre 2021. Cette nouvelle version du principal compilateur pour Haskell apporte son lot de nouveautés détaillées dans la suite de cette dépêche.
Comme à notre habitude, nous terminerons la dépêche par un exemple de projet en Haskell.
Nous rappelons qu’Haskell est un langage de programmation qui se démarque par son design. En effet, fort d’un typage statique avec inférence (i.e. il n’est pas nécessaire d’écrire les types pour que le langage les vérifie), son évaluation paresseuse (le code n’est exécuté que quand c’est strictement nécessaire) et de sa séparation des effets, Haskell est un langage ovni dans le marché qu’il influence depuis de nombreuses années.
GHC 8.8, 8.10 et 9.0
GHC (Glasgow Haskell Compiler) 8.8 est sorti le 26 août 2019. GHC 8.10 est sorti le 24 mars 2020. GHC 9.0 vient de sortir, le 4 février 2021.
C’est donc l’occasion de revenir sur les changements de ces versions du principal compilateur pour le langage fonctionnel Haskell. Avec 3 versions majeures sur plus de 2 ans, tout ne peut pas rentrer dans une dépêche. De plus, beaucoup de détails ne sont pas forcément passionnants ou adaptés à un public non expert en compilation, c’est pourquoi cette dépêche se focalise sur les exemples que nous avons jugés intéressants, autant pour les nouveautés que pour l’opportunité de présenter des points saillants du langage.
Journal Retour d'expérience sur les langages de programmation
Ces derniers temps, j'apprends moins de langages nouveaux qu'il y a quelques années. Du coup, je me suis dit que c'était une occasion de faire le tour sur l'essentiel des langages que j'ai testés.
Dans ce journal, je fais un peu dans le classique du ceci ou cela m'a plu dans tel langage, telle autre chose ne m'a pas plu. Le tout est très subjectif, biaisé et reflète fortement les trucs que j'ai voulu faire avec ces langages. Mais bon (…)
Lien The Simple Haskell Initiative
Journal Configurer VSCode pour Haskell (Debian/Nix/NixOS)
Comme beaucoup de langages de programmation, Haskell n’a pas d’environnement de développement officiel ni même consensuel. Cependant, il existe différentes configurations classiques : Emacs + Intero/Dante, Vim + Ghcid, IntelliJ-Haskell…
Depuis quelque temps, l’éditeur de texte Visual Studio Code propose un environnement intéressant pour développer en Haskell, notamment couplé à HIE et à Stack. Cette configuration apporte les principales fonctionnalités d’un IDE : coloration syntaxique, navigation de code, compilation, documentation, auto‑complétion… Cependant, l’installation de ces outils n’est pas complètement triviale (…)
Journal Comprendre Go en 5 minutes, en Haskell
D'après leur réputation, Go et Haskell sont des langages de programmation assez opposés : Go privilégie la simplicité, Haskell l'expressivité. Cependant ces deux langages ne sont pas si éloignés que cela. Plus exactement, les concepts de base de Go se retrouvent, de façon assez ressemblante, en Haskell.
Ce journal reprend, en Haskell, les exemples de code en Go de l'article Comprendre Go en 5 minutes. L'objectif n'est pas de présenter exhaustivement Go ou Haskell, ni de démontrer que l'un (…)
Journal Un serveur de webcam en 35 lignes de Haskell
Pour mettre en place une webcam, on connecte une caméra à un ordinateur sur lequel on fait tourner un serveur retransmettant les images. Celles-ci sont alors accessibles via des requêtes au serveur.
Cet article présente comment implémenter un serveur de webcam en Haskell. Le serveur proposé transmet l'image courante en réponse aux requêtes HTTP. En parallèle (via un thread léger), il met également à jour l'image courante à partir du flux vidéo.
Capture vidéo
Tout d'abord (…)
GHC 8.4 et 8.6
GHC, le compilateur Haskell est sorti en version 8.6.1 le 22 septembre 2018.
Cette dépêche détaille les nouveautés. De plus, nous n’avions pas fait de dépêche pour la version 8.4.1 du 8 mars 2018, ainsi que pour les versions 8.4.2 et 8.4.3 ayant suivi en avril et mai ; cette dépêche tente de combler ce vide.
Les versions 8.4.2 et 8.4.3 étant principalement des versions mineures consacrées aux corrections de bogues critiques, celles‐ci ne seront pas traitées dans cette dépêche.
Comme d’habitude pour les dépêches concernant les sorties de GHC, nous reviendrons sur les nouveautés de ces versions pour conclure par un petit exemple de Haskell pour vous donner envie d’utiliser ce langage.
Lien Un serveur de webcam en 35 lignes de Haskell
Développement Web frontend en Haskell, Elm et Purescript
Actuellement, le développement Web côté client (frontend) est très souvent réalisé en JavaScript ou dans des langages dérivés comme TypeScript. Il existe cependant d’autres outils intéressants, basés sur des langages de programmation fonctionnelle, qui permettent notamment d’éviter de nombreuses erreurs lors de l’exécution sur le navigateur.
L’objectif de cette dépêche est de rappeler quelques généralités sur le développement Web frontend, et de présenter les outils Elm, Purescript, Miso et Reflex, à partir d’un exemple d’application (galerie d’images fournie via une API Web).
Attention : ceci n’est pas une étude rigoureuse et avancée mais juste un petit retour de petite expérience.
Voir également le dépôt de code de l’exemple et une présentation en vidéo.
Journal le style fonctionnel en vidéo (nix, nixos, haskell...), la suite...
Bon bah, j'ai continué les vidéos du journal précédent (https://linuxfr.org/users/nokomprendo-3/journaux/le-style-fonctionnel-en-videos-nix-nixos-haskell).
Au passage, je suis passé sur framagit et j'ai ajouté un formatage plus propre des articles via hakyll (https://nokomprendo.frama.io/tuto_fonctionnel).
Les nouveaux sujets :
- Personnaliser une image Docker de NixOS pour de l'intégration continue
- Déployer un blog avec Hakyll, Gitlab-ci, Nix
- Nix, programmation et loi de Murphy
- Créer et partager des paquets Nix
- Archlinux vs Voidlinux
- Migrer un système NixOS (de (…)
Journal Le mode histoire de Nikki And The Robots libéré
Bonjour,
L’équipe derrière Nikki and the robots a enfin pris le temps de rendre le mode histoire disponible sous licence libre avec le reste du jeu. La décision avait déjà été plus ou moins prise depuis longtemps (le système d’achat du mode histoire étant de toutes façons hors ligne depuis un moment) mais ça n’avait pas été fait jusque maintenant.
Un membre de l’équipe a aussi pris le temps d’adapter le système de build et de me guider pour faire (…)