« Ritchie est un langage expressif et efficace pour l’écosystème C », d’après sa description sur GitHub. Il « utilise des bibliothèques C nativement et génère un code C facile à comprendre ». Se rapprochant de sa première version, le langage a été conçu pour répondre à cinq principes de base :
- faciliter la programmation, en s’inspirant de Python ;
- offrir une rapidité similaire à celle de C ;
- offrir un langage de type sécurisé comme Scala ;
- offrir la possibilité d’écrire du code C ;
- Ritchie n’a pas de mots réservés, tout peut être redéfini.
Après avoir été comparé avec Python et C, selon le benchmark Prime Counting, Ritchie a été trouvé presque aussi rapide que C et plus concis que Pyhton. En effet, pour le code exécuté, son écriture en langage Ritchie a utilisé 423 caractères contre 542 pour C et 474 pour Pyhton. Et l’exécution du code s’est faite en 457 ms pour Ritchie, 424 ms pour C, et 7836 pour Pyhton.
Ritchie est encore en phase de développement et de nombreuses fonctionnalités n’ont pas encore été pleinement implémentées. Parmi les caractéristiques actuelles du langage, on peut toutefois noter :
- Ritchie est sensible aux espaces ;
- il utilise l’inférence de type. À titre d’illustration, si l'on considère l’identificateur point et le type Point, la déclaration Java passe-partout Point point = new Point (x, y) devient en langage Ritchie point = Point x, y ;
- le langage Ritchie utilise la notion de verbe pour regrouper ce que les autres langages appellent fonctions, méthodes ou sous-programmes ;
- Ritchie n'a pas de mots-clés. Il utilise par contre des symboles avec des significations prédéfinies, mais tous ces symboles pourraient être redéfinis. Ritchie a été développé avec une langue standard qui lui est propre. À cet effet de nombreux symboles qui fonctionnent comme des mots-clés pourraient avoir une autre utilisation dans d’autres langages. À titre d’illustration, pour définir une classe dans Ritchie, vous pourrez taper SomeClass :: SomeBaseClass. Le :: est tout simplement un verbe qui veut dire « devenir une sous-classe de » ;
- Ritchie essaie de suivre la construction linguistique (Sujet / Verbe / Objet) dans la plupart de ses expressions. Par exemple pour l’expression hello = "Hello", l’analyse donne hello comme sujet, = comme verbe et "Hello" comme objet ;
- le langage introduit un type spécial de verbes classés comme des verbes de contrôle de flux. If, While et For font partie de ce type de verbe, et ne sont donc pas des mots-clés comme dans les autres langages. Ils peuvent toutefois être redéfinis même si cela n’est pas recommandé.
La liste des caractéristiques de Ritchie et des fonctionnalités restant à implémenter est disponible sur GitHub.
Liste des principales tâches de développement restant avant d'atteindre la version 1.0
Source : GitHub
Et vous ?
Quels commentaires pouvez-vous faire des caractéristiques de Ritchie ? Quelles sont ses forces et faiblesses ?