
elle corrige plus de 15 problèmes signalés et apportant quelques améliorations
Nim est presenté comme un langage de programmation « moderne » aussi performant que le C (souvent indiqué comme une référence à ce niveau) : le langage apporte un maximum de puissance à l’utilisateur sans sacrifier la performance (comme Rust ou Julia). L’équipe de développement de Nim a annoncé le 17 décembre la version 1.6.2 du langage de programmation. « L'équipe Nim est heureuse d'annoncer la version 1.6.2, notre premier patch pour Nim 1.6. La version 1.6.2 est le résultat de deux mois de travail acharné, et elle contient 41 commits, corrigeant plus de 15 problèmes signalés et apportant quelques améliorations générales par rapport à la 1.6.0. Nous recommandons à tous nos utilisateurs de mettre à jour et d'utiliser la version 1.6.2 », a déclaré l’équipe de développement de Nim.
Nim est un langage doté d’un système de typage statique et d’un style impératif. Bien que le langage soit multiparadigme : il mélange métaprogrammation, fonctionnel, passage de messages, procédural et orienté objet, avec un ramasse-miettes. Il ne dispose pas d’un compilateur, mais d’un transcompilateur qui produit du code C, C++ ou Objective-C en sortie… ou encore en JavaScript, ce qui facilite l’intégration avec l’environnement extérieur. En définissant ses propres types, le programmeur fait travailler le compilateur à sa place. C'est ce qui rend le typage statique puissant et utile.
Définition des types
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | type Name = string # Un alias de type donne un nouveau type qui est interchangeable. Age = int # avec l'ancien type mais est plus descriptif. Person = tuple[name: Name, age: Age] # Définir également les structures de données. AnotherSyntax = tuple fieldOne: string secondField: int var john: Person = (name: "John B.", age: 17) newage: int = 18 # Il serait préférable d'utiliser Age plutôt que int john.age = newage # Mais cela fonctionne toujours car int et Age sont synonymes. type Cash = distinct int # `distinct` rend un nouveau type incompatible avec son Desc = distinct string # type de base. |
Nim a fait sa première entrée dans l'index TIOBE en 2017 à la position 129, l'année dernière, il est entré dans le top-100, et il a réussi à se hisser dans le top-50 pendant 2 mois. « Nim est un langage de programmation système pratique et compilé offrant des performances et une syntaxe de type Python, une flexibilité de type Lisp, et une métaprogrammation de premier ordre », a déclaré l’équipe de développement de Nim.
La version 1.6.2 de Nim permet par exemple de Convertir des variables statiques en openArray. Lorsqu'on assignait une sortie constante à un seq, et qu'on passait ensuite ce seq statique à d'autres fonctions qui prennent openArray, le compilateur pouvait produire des erreurs, car il ne savait pas comment convertir static[seq[T]] en openArray[T]. En ignorant le wrapper statique sur le type pour déterminer l'emplacement et la longueur de la mémoire des données, ce problème est résolu proprement. Malheureusement, il est relativement difficile de proposer un exemple minimal, car il existe des problèmes consécutifs à l'échec de la conversion. Par exemple, cela peut conduire à une erreur interne : type d'environnement inconsistant, au lieu de l'erreur openArrayLoc pertinente.
Nim offre au programmeur une grande puissance sans compromis sur l'efficacité d'exécution. Pour certains observateurs, Nim est tout ce que Python et Go devraient être ou veulent être, en ce qui concerne les caractéristiques du langage et la sémantique. « Il a des propriétés faciles à apprendre et un meilleur système de type, le système générique et les macros sont sans doute plus utiles, et plus utilisables que ce qui est offert par les autres langages. Il mérite beaucoup plus d'attention qu'il n'en reçoit actuellement », déclare un internaute.
Source : Nim
Et vous ?



Voir aussi :




Vous avez lu gratuitement 20 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.