Sortie de Ruby 2.7

Par:
fredericmazue

jeu, 02/01/2020 - 16:57

Le langage Ruby vient de sortir en version 2.7 stable.

On y remarque principalement l'introduction du filtrage de motif à titre expérimental. Le filtrage de motif, ou pattern matching, est une fonctionnalité très répandue en programmation fonctionnelle, mais plus rare dans les langages impératifs et/ou orientés objet.

Le filtrage par motif est la vérification de la présence de constituants d'un motif dans un programme. Le filtrage par motif permet de vérifier si l'objet du filtrage possède une structure donnée, s'il s'y trouve telle ou telle sous-structure spécifique et laquelle, pour y retrouver des parties par l'organisation de leur contenu, et/ou éventuellement pour substituer quelque chose d'autre aux motifs reconnus. (Wikipedia).

Le filtrage de motif est très apprécié en programmation fonctionnelle car il apporte de la clarté et de la concision au code. Peut-on en dire autant pour Ruby ? Ce n'est pas certain à en juger par cet exemple de code.

require "json"

json = <<END
{
  "name": "Alice",
  "age": 30,
  "children": [{ "name": "Bob", "age": 2 }]
}
END

case JSON.parse(json, symbolize_names: true)
in {name: "Alice", children: [{name: "Bob", age: age}]}
  p age #=> 2
end

Aux développeurs expérimentés en Ruby d'en juger toutefois.

A remarquer aussi, l'amélioration de la boucle d'évaluation interactive (REPL pour Read Eval Print Loop). Le nouvel environnement interactif permet notamment d'éditer du code multi lignes.

A remarquer encore l'arrivée de la capacité du ramasse-miettes à défragmenter de la mémoire fragmentée et ainsi limiter l'empreinte mémoire des applications ou la dégradation de leurs performances.