Nim (anciennement nommé Nimrod) est un langage de programmation impératif, multi-paradigme et compilé imaginé et développé par Andreas Rumpf. Il souhaite donner un maximum de puissance à l’utilisateur sans sacrifier la performance (comme Rust ou Julia). En ce qui concerne ses caractéristiques, son système de typage est statique et son 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 collecteur de mémoire. 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.L'équipe de développement a annoncé avoir reçu plus de 100 000 dollars en bitcoins :
« Plus tôt cette année, nous avons eu le privilège de recevoir 1,868 BTC (~ 117 000 USD au moment de la rédaction) à notre adresse de portefeuille Bitcoin de longue date. Nous voulions profiter de cette occasion pour remercier pour ce don et bien d'autres à travers nos nombreux efforts de collecte de fonds. Mais pour décrire également les mesures que nous avons prises pour sécuriser nos fonds et annoncer que l'ancienne adresse de portefeuille Bitcoin est désormais obsolète.
« Le portefeuille Bitcoin que nous utilisons a été créé en 2011. Nous avons reçu quelques petits dons ici et là, avec le recul, nous aurions dû sécuriser ces fonds beaucoup plus tôt[1], mais le don récent relativement important a stimulé nous en action. Essentiellement, nous avons transféré les fonds vers des portefeuilles matériels appartenant à l'équipe de développement principale. De cette façon, nous avons considérablement réduit le risque de vol des fonds.
« Cela signifie que nous avons une nouvelle adresse de don Bitcoin :
- bc1qzgw3vsppsa9gu53qyecyu063jfajmjpye3r2h4
« C'est là que la majorité des fonds ont été envoyés et où tous les nouveaux dons BTC doivent également être envoyés.
« Nous avons maintenant aussi une adresse Ethereum :
- 0xC1d472B409c1bdCd8C0E45515D18F08a55fE9fa8
« Pour terminer, nous voudrions également demander que si quelqu'un souhaite nous envoyer un don important à notre adresse Bitcoin ou Ethereum, veuillez commencer par nous envoyer un petit montant et nous contacter au sujet de vos intentions. C'est juste pour nous assurer que nous pouvons confirmer que les fonds sont arrivés dans nos portefeuilles en toute sécurité. Si la crypto n'est pas votre truc, assurez-vous de consulter notre page de dons pour d'autres moyens de soutenir le développement de Nim.
« Merci encore pour tout votre soutien au fil des ans. Vos contributions, à la fois monétaires et sous la forme de demandes de tirage et de renforcement de la communauté, ont contribué à faire de Nim ce qu'il est aujourd'hui ».
Pourquoi utiliser Nim alors que des langages comme Python, Rust, Julia et bien d’autres existent ?
Un seul langage pour tous : du script shell au frontend et backend web, au calcul scientifique, au deep learning, au client blockchain, au gamedev, à l'embarqué. Nim est un langage de programmation pratique et compilé offrant des performances et une portabilité semblables à celles du C++, une syntaxe semblable à celle du Python, une flexibilité semblable à celle du Lisp, une forte interopérabilité avec le C, le C++, le JS et le Python, et une métaprogrammation de premier ordre.
Le bout de code echo "hello world" génère un binaire de 73K (ou 5K avec des options supplémentaires, optimisé pour les dispositifs embarqués (Go : 2MB, Rust : 377K, C++ : 56K). Avec un temps de compilation rapide : une reconstruction complète du compilateur prend ~12s (Rust : 15min, gcc : 30min+, clang : 1hr+, Go : 90s). Pas besoin de makefiles, cmake, configure ou d'autres scripts de compilation, grâce à l'évaluation des fonctions au moment de la compilation (CTFE) et au suivi des dépendances.
L’utilisateur peut cibler n'importe quelle plateforme avec un compilateur C : Android et iOS, systèmes embarqués, microcontrôleurs, WASM, Nintendo Switch, Game Boy Advance. L'interopérabilité sans frais généraux permet de réutiliser du code en C, C++ (y compris les templates, C++ STL), JS, Objective-C, Python (via nimpy).
Enfin, les...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
