IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 1.6.2 de Nim, le langage doté d'un transcompilateur vers C, C++ est disponible,
Elle corrige plus de 15 problèmes signalés et apporte quelques améliorations

Le , par Bruno

64PARTAGES

7  0 
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 ?

Que pensez-vous du langage Nim ?

Quel est votre avis sur les améliorations apportées à ce langage ?

Êtes-vous d'avis que le langage mérite beaucoup plus d'attention qu'il n'en reçoit actuellement ?

Voir aussi :

La version 1.6 de Nim, le langage doté d'un transcompilateur vers C, C++ est disponible, avec une reconstruction du compilateur en 12s alors que Rust fait 15min, gcc : 30min+ et Go : 90s

La première version finale de Nim, le langage doté d'un transcompilateur vers C, C++, JavaScript est disponible, avec des ajouts

La version 1.4.0 du langage de programmation Nim est disponible avec les fonctions strictes, ainsi que plusieurs ajouts et modifications dans la bibliothèque standard

Python et C++ sont les langages qui ont connu la plus forte croissance de popularité sur l'année 2020, selon les statistiques de l'index TIOBE

Une erreur dans cette actualité ? Signalez-le nous !