Le compilateur GHC Haskell en version 8.0.1

Posté par (page perso) . Édité par palm123, patrick_g, Benoît Sibaud, Ontologia et Xavier Claude. Modéré par Ontologia. Licence CC by-sa
Tags :
33
2
juin
2016
Programmation fonctionnelle

Le 21 mai 2016 est sortie la nouvelle version du compilateur Haskell GHC.

GHC est le compilateur principal du langage Haskell, disponible sur plusieurs plate-forme et sous une licence libre proche de la BSD.

Cette version succède à GHC 7.10.

Cette dépêche présente rapidement Haskell grâce à un exemple de code puis une sous-partie des nouveauté de GHC 8.0, le compilateur Haskell le plus utilisé. Comme on parle rarement d'Haskell ici, je vais le présenter avec une approche personnelle puis je me servirais de la liste des nouveautés pour présenter quelques fonctionnalités de ce langage de programmation.

OCaml 4.03

72
2
mai
2016
Programmation fonctionnelle

La version 4.03.0 du langage OCaml est paru le 25 avril 2016. OCaml est un langage fonctionnel de la famille des langages ML (dont font partie SML et F#, ou Rust avec une définition élargie).

OCaml est entre autre utilisé pour implémenter le langage Coccinelle (régulièrement utilisé dans la communauté des développeurs du noyau Linux) ou MirageOS (ensemble de bibliothèques pour construire des unikernels). On compte aussi l'implémentation du langage Hack chez Facebook, l'interpréteur de référence pour le projet WebAssembly, ou encore l'analyseur statique de Code C Frama-C.

OCaml

Il s'agit d'un langage fonctionnel multi-paradigmes fortement typé qui permet de mélanger librement les paradigmes fonctionnel, impératif et objet. Cette version 4.03 fait suite à la version 4.02 publiée en juillet 2015.

À la découverte d'un nouveau langage, Elm

Posté par (page perso) . Édité par Davy Defaud, Lucas, ZeroHeure, palm123, VictorAche et Nils Ratusznik. Modéré par Pierre Jarillon. Licence CC by-sa
Tags :
44
21
avr.
2016
Programmation fonctionnelle

Découvrons un nouveau langage : Elm. Celui-ci vise à rendre accessible la programmation fonctionnelle pour les développeurs Web. JavaScript a ses qualités et ses défauts ; il est parfois intéressant d'aller voir ailleurs pour mieux les comprendre. Même si vous ne comptez pas utiliser Elm plus tard, cela reste intéressant car il vous permettra de découvrir de nouvelles façons de faire et vous permettra de devenir un meilleur développeur. D'ailleurs, on peut noter que de nombreuses bibliothèques JavaScript, comme Redux, annoncent clairement s'être inspirées d'Elm.

Elm a été créé dans le but d'apporter fiabilité et maintenance simplifiée aux applications JavaScript dans les navigateurs. Son créateur, Evan Czaplicki s'est donc naturellement inspiré des langages fonctionnels, qui sont conçus justement pour avoir ces caractéristiques. En utilisant la bibliothèque JavaScript virtual-dom, il s'est également assuré que les performances soient au niveau des principaux frameworks.

saloon : débuter simplement une application web avec erlang et angular

Posté par (page perso) . Édité par Benoît Sibaud, Nÿco, palm123 et Bruno Michel. Modéré par tuiu pol. Licence CC by-sa
17
4
fév.
2016
Programmation fonctionnelle

Le problème des piles pour applications web

Si vous avez déjà cherché à développer une appli web moderne, vous avez déjà dû vous heurter à la question de choisir les bons composants parmi la foultitude de ceux existants… et surtout les faire fonctionner.

Premièrement, quand je parle d'applis web modernes, il faut savoir qu'elles partagent en général cette architecture :

  • un serveur HTTP,
  • un cadriciel pour exposer des API REST,
  • un cadriciel JavaScript pour la partie frontend: il consomme les API REST et met en forme les données en HTML,
  • un système de construction (build), ou plutôt des, la partie serveur et la partie frontend utilisant en général un système différent.

Bref, il fait fonctionner tout cela ensemble, vérifier les incompatibilités, etc.

Les générateurs d'applications yeoman

Le projet yeoman vise à fournir des générateurs d'applications qui intègrent des piles complètes et prêtes à l'emploi dans le domaine des applis web. Même si le projet est issu de la communauté node.js, on peut aisément écrire des générateurs pour n'importe quelle techno.

saloon, faites entrer le cowboy

Le générateur saloon (licence Apache v2) est un générateur yeoman pour débuter simplement une application web avec erlang et angular.

OCaml 4.02

46
7
sept.
2014
Programmation fonctionnelle

La version 4.02 du langage OCaml a été annoncée vendredi 29 août. Elle fait suite à la version 4.01 publiée en septembre 2013. Il s'agit de l'implémentation la plus vivace du langage ML (Meta language) et l'un des langages fonctionnels les plus utilisés (comme Haskell, XSL, Lisp…)

Sortie du Glorious Haskell Compiler 7.8

Posté par . Édité par Piezo, BAud, Bruno Michel, Benoît Sibaud, Lucas, tuiu pol, ZeroHeure et Xavier Claude. Modéré par tuiu pol. Licence CC by-sa
52
13
avr.
2014
Programmation fonctionnelle

Ghc, le Glorious Haskell Compiler est sorti le 9 avril 2014 en version 7.8.1. Il s'agit du compilateur le plus populaire pour le langage Haskell. Haskell est un langage de programmation purement fonctionnel, avec un système de types sophistiqué. C'est le principal langage généraliste à utiliser une stratégie d'évaluation non-stricte par défaut : la valeur d'une expression n'est calculée que si elle est nécessaire.

Sortie de Clojure 1.6

Posté par (page perso) . Édité par BAud, Davy Defaud, ZeroHeure, palm123, Jiehong, Bruno Michel et patrick_g. Modéré par patrick_g. Licence CC by-sa
Tags :
31
1
avr.
2014
Programmation fonctionnelle

Le 25 mars, Clojure est sorti en version 1.6, l'occasion de se pencher un peu sur ce langage.

Clojure est un langage de programmation fonctionnel dérivé de Lisp tournant au-dessus de la Machine Virtuelle Java, des ports existant également pour Javascript et pour le Common Language Runtime de .NET.

OCaml 4.00.0 est sorti

Posté par (page perso) . Édité par Lucas Bonnet, Xavier Teyssier, Christophe Guilloux et Bruno Michel. Modéré par Nÿco. Licence CC by-sa
42
11
août
2012
Programmation fonctionnelle

La nouvelle version 4.00.0 du langage OCaml est disponible en ligne depuis le 26 juillet 2012. Aussi, la réunion des développeurs OCaml (OUD'2012) aura lieu cette années à Copenhague le 14 septembre. Venez nombreux !

Parmi les dernières nouveautés disponibles dans cette version 4.00.0 :

  • l'introduction des types de données algébriques généralisés (Generalized Algebraic Data Types - GADTs), qui permettent de détecter encore plus de bugs dès la compilation ;
  • le générateur de code pour ARM a été complètement réécrit ;
  • les types des modules de première classe sont maintenant inférés quand cela est possible, et les modules peuvent eux-mêmes être extraits par filtrage ;
  • le compilateur est disponible sous forme de bibliothèque, et une nouvelle option -bin-annot permet de sauver l'arbre de syntaxe typé, ce qui devrait permettre l'apparition de nouveaux outils de développement plus évolués (refactoring, etc.) ;
  • optimisation des fonctions partielles ;
  • détection de code mort ou inutile (variables, open, champs, constructeurs, labels, etc.) ;
  • émission de directives CFI pour améliorer le debuggage sous GDB.

Ocsigen : repenser le développement des applications HTML5

Posté par séverine maingaud . Édité par baud123, Pierre Jarillon, Bruno Michel, Xavier Claude et Nÿco. Modéré par Pierre Jarillon. Licence CC by-sa
Tags :
39
28
juin
2012
Programmation fonctionnelle

Ocsigen est une technologie libre de développement de sites et applications Web client-serveur. Une de ses particularités est d'offrir la possibilité d'écrire les côtés client et serveur non seulement dans le même langage, OCaml, mais comme un seul et même programme. Particulièrement bien adaptée au développement d'applications HTML5 très dynamiques, Ocsigen permet également de repenser et simplifier l'implémentation des comportements standard des sites Web traditionnels (signets, bouton « back », liens, formulaires, etc.). En outre, il permet de combiner ces deux approches de manière très naturelle.

Ocsigen met l'accent essentiellement sur deux points : d'une part, offrir un langage très expressif, ce qui permet d'écrire du code simple et court ; d'autre part, aider à produire du code et des applications fiables et faciles à maintenir. C'est la raison pour laquelle Ocsigen utilise OCaml, un langage de programmation compilé très puissant et au système de type très riche. La grande expressivité d'OCaml est complétée par un grand nombre de nouveaux concepts inédits et spécifiques au Web (services, sessions sophistiquées, etc.) qui permettent de simplifier l'implémentation de comportements dynamiques complexes. De plus, Ocsigen exploite au maximum le typage d'OCaml pour qu'un maximum de garanties de fiabilité soient données dès la compilation (par exemple la validité des liens). Cela va même jusqu'à la vérification à la compilation que les pages générées seront conformes aux recommandations du W3C !

NdM : Ocsigen est sous licence LGPL 2.1

Elixir, enfin une syntaxe agréable pour Erlang ?

Posté par (page perso) . Modéré par Florent Zara. Licence CC by-sa
26
26
mar.
2011
Programmation fonctionnelle

Elixir est un langage de programmation qui s’appuie sur Erlang et sous licence MIT. Il propose une syntaxe agréable, inspirée de celle de Ruby, et un modèle objet à base de prototypes.

Erlang est un langage fonctionnel avec un typage dynamique, une évaluation stricte et une assignation unique. Il convient bien pour des applications distribuées, résistantes aux erreurs et sans arrêt grâce au mécanisme de rechargement à chaud. Mais c’est également un langage qui peut sembler difficile à apprendre et dont la syntaxe peut rebuter. Elixir propose une manière élégante de profiter des avantages d’Erlang. Il est notamment possible d’appeler des modules Erlang sans conversion des types de données, et donc sans impact sur les performances.

Elixir est encore très jeune et recherche des contributeurs pour aider au développement de sa bibliothèque standard. Pour installer Elixir, vous aurez besoin d’Erlang R14B01, et je vous invite à parcourir le README pour découvrir ce langage. Mais voici un avant-goût sous la forme d’un très classique « Hello World » :

module World
  def say_hello
    IO.puts "Hello World!"
  end
end

World.say_hello