Fruit d’une initiative personnelle de Yukihiro Matsumoto, connu pour être l’auteur du langage Ruby, le langage Streem est décrit sur GitHub comme étant un langage de script concurrent basé sur un modèle de programmation similaire à Shell et fortement influencé par certains langages fonctionnels comme Ruby et Erlang.
Quant à la motivation derrière un tel projet, l’auteur l’étaye en ces termes : « La motivation principale est d’expérimenter la programmation concurrentielle avec le modèle de flux qui est une abstraction plus élevée du modèle de programmation basé sur les flux, ce dernier pourrait être la base du futur modèle de programmation concurrente sous Ruby 3.0 ».
Pour l’analyste John Rymer de Forrester Research, « Streem permettra l’application des langages fonctionnels à des environnements dynamiques », ce qui répond à une demande de plus en plus croissante et explique le fleurissement d’initiatives similaires, à l’image d’ « AWS qui palie à cette demande grâce à son service Lambda, lui-même basé sur les expressions lambda sous Java et sur le langage F# », ainsi donc « si Streem est plus efficace, plus expressif et plus concis que les alternatives disponibles actuellement, ce serait bien plus utile pour l’ensemble de la communauté ».
Du côté de l’autre langage : Mochi, ce langage peut être décrit comme étant un savant mélange entre concepts fonctionnels et non fonctionnels, ce qui donne lieu à un langage à typage dynamique, fortement influencé par Python au vu de la syntaxe semblable et à l’interpréteur qui traduit un code Mochi en bytecode Python3, tout en offrant des macros inspirées du langage Lisp et une optimisation de la récursivité terminale.
Au final, ces facteurs expliquent les critiques positives perçues à l’annonce de Mochi, mais il semblerait que l’omniprésence de Python soit le principal facteur d’engouement autour du langage, vu l’absence de fonctionnalités similaires sous Python.
Source : Streem sur GitHub , Mochi sur GitHub
Et vous ?
