| Fiche technique | |
|---|---|
| Type de produit : | Langage de programmation |
| Auteur : | Larry Wall |
| Licence : | GNU General Public/Artistic 2 |
| Date de publication : | 2015 |
| Site Web : | https://raku.org/ |
Introduction
Le langage de programmation Raku, anciennement connu sous le nom de Perl?6, est une évolution moderne de la famille Perl. Bien que son nom ait été changé en octobre 2019 pour mieux refléter ses ambitions et sa nature distincte, Raku conserve l'esprit créatif et flexible de Perl, tout en s'éloignant de l'objectif de compatibilité stricte avec ce dernier. La conception de Raku a été pensée pour introduire de nouvelles idées et concepts provenant de langages historiques et contemporains, créant ainsi un langage polyvalent capable de gérer aussi bien le traitement de texte complexe que la programmation fonctionnelle ou orientée objet. Cette approche a permis de construire un langage riche, adapté aux défis modernes du développement logiciel, sans se limiter aux conventions de Perl.
Raku se distingue par sa syntaxe expressive et sa capacité à gérer différents paradigmes de programmation. Contrairement à Perl 5, étant principalement impératif et procédural, Raku supporte pleinement la programmation orientée objet, la programmation fonctionnelle, la programmation déclarative et même la programmation concurrente. Par exemple, Raku permet de définir des rôles (roles) et des classes, ainsi que de combiner plusieurs paradigmes au sein d'un même programme. Cette flexibilité ouvre la porte à des constructions élégantes et puissantes, adaptées à des besoins très variés, allant de l'analyse de données à la création de serveurs web ou d'applications scientifiques.
L'une des innovations majeures de Raku est son système de typage et sa gestion avancée des variables. Raku introduit des types forts et optionnels, ainsi qu'un mécanisme de signatures de fonctions permettant de spécifier les types et le nombre exact d'arguments attendus. Cela améliore considérablement la lisibilité du code et réduit les erreurs fréquentes dans les scripts complexes. De plus, Raku propose des variables sigilées avec un contexte clair, ce qui facilite la distinction entre scalaires, tableaux et hashes, tout en offrant des fonctionnalités modernes telles que les collections immuables et les flux de données paresseux (lazy lists).
Raku intègre également des outils puissants pour la manipulation des chaînes de caractères et des expressions régulières. Héritier de Perl, Raku conserve la célèbre puissance des regex, mais les étend avec des constructions plus lisibles et modulaires, appelées grammars. Ces grammars permettent de créer des analyseurs sophistiqués pour des langages ou des formats personnalisés, transformant Raku en un outil de prédilection pour le traitement de texte avancé et l'analyse syntaxique. Ce système rend possible la création de DSL (domain-specific languages) de manière naturelle et intuitive, ce qui est un avantage considérable pour les développeurs travaillant dans des domaines spécialisés.
La gestion de la concurrence et de l'asynchronisme est une autre caractéristique clef de Raku. Le langage fournit des abstractions modernes pour le multitâche, telles que les Promises, les Supplies et les Channels, permettant de gérer facilement les opérations parallèles et événementielles. Cette approche permet aux développeurs d'écrire du code concurrent sans avoir à gérer explicitement des threads complexes ou à risquer des conditions de course. Ainsi, Raku combine sécurité et performance dans des applications qui nécessitent un traitement simultané ou une architecture orientée événements.
Raku est également conçu avec la portabilité et l'interopérabilité à l'esprit. Bien qu'il ne cherche pas à être compatible avec Perl 5, il inclut un mode de compatibilité permettant d'exécuter certains scripts Perl existants, facilitant la transition des projets anciens. De plus, Raku peut interagir avec des bibliothèques C et Java via des mécanismes d'interface, et il dispose d'un système de modules extensible pour partager et réutiliser du code facilement. Cette capacité d'interopérer avec d'autres technologies en fait un langage pratique pour des projets variés, tout en conservant une syntaxe moderne et expressive.
Enfin, l'histoire et la communauté de Raku reflètent sa philosophie d'innovation et d'ouverture. La conception du langage a commencé en 2000 au sein de la communauté Perl et a impliqué des années de réflexion, d'expérimentation et de discussions ouvertes sur les fonctionnalités et les paradigmes à intégrer. Aujourd'hui, Raku bénéficie d'une communauté active de développeurs passionnés, qui contribuent à son écosystème de modules, de documentation et d'outils. Ce dynamisme, combiné à la richesse technique du langage, en fait un choix intéressant pour les développeurs curieux qui cherchent à explorer des idées nouvelles tout en restant dans la lignée d'un héritage Perl solide.