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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

L'équipe de développement de Nim annonce avoir reçu plus de 100 000 dollars en bitcoins


Sujet :

Langages de programmation

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    mai 2019
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2019
    Messages : 501
    Points : 8 522
    Points
    8 522
    Par défaut L'équipe de développement de Nim annonce avoir reçu plus de 100 000 dollars en bitcoins
    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

    Nim est un langage de programmation « moderne » aussi performant que le C (souvent indiqué comme une référence à ce niveau) : de manière générale, 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 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. L’équipe de développement de Nim a annoncé le 19 octobre la version 1.6.0 du langage de programmation.

    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. « Nous espérons que la version 1.6 renforcera cette tendance, en s'appuyant sur les principaux atouts de Nim : 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.

    Nom : nimB.png
Affichages : 3421
Taille : 10,3 Ko

    Voici, ci-dessous, les améliorations apportées par Nim 1.6 :

    • nouvelles fonctionnalités du langage (iterable[T], définis par l'utilisateur, importations privées, effets stricts, opérateurs de type point, arguments de bloc avec paramètres optionnels) ;
    • nouvelles fonctionnalités du compilateur (nim --eval:cmd, extensions nimscript personnalisées, messages du compilateur personnalisables) ;
    • améliorations majeures de --gc:arc et --gc:orc ;
    • correction et performance de l'analyse et du rendu des entiers et des flottants dans tous les backends ;
    • améliorations significatives des messages d'erreur, montrant un contexte utile
    • la logique de génération de documentation et la documentation, en particulier runnableExamples, fonctionnent maintenant dans plus de contextes ;
    • les backends JS, VM et nimscript sont plus cohérents avec le backend C, permettant à plus de modules de fonctionner avec ces backends, y compris les imports de std/prelude ;
    • la suite de tests est maintenant standardisée pour tester les modules stdlib sur chaque backend majeur (C, JS, VM) ;
    • support pour Apple silicon/M1, 32-bit RISC-V, armv8l, CROSSOS, support amélioré pour le backend NodeJS ;
    • améliorations majeures aux modules system, math, random, json, jsonutils, os, typetraits, wrapnils, lists, hashes incluant des améliorations de performance
    • dépréciation d'un certain nombre de fonctionnalités sujettes aux erreurs ou redondantes.


    Pourquoi utiliser Nim alors que des langages comme Python, Rust, Julia et bien d’autres existent ?

    Nim

    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 macros permettent de manipuler/générer du code au moment de la compilation au lieu de compter sur les générateurs de code, ce qui permet d'écrire des DSL et des extensions de langage dans le code utilisateur. Parmi les exemples typiques, citons l'implémentation de chaînes f de type Python, le chaînage optionnel, les générateurs de lignes de commande, les applications monopages de type React, la sérialisation protobuf et les générateurs de liaisons.

    Python

    Python est un langage de programmation interprété, multi-paradigme et multi-plateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par récupérateur de mémoire et d'un système de gestion d'exceptions ; il ressemble ainsi à Perl, Ruby, Scheme, Smalltalk et Tcl. Python a réussi à se hisser à la première place dans le classement TIOBE, une première en plus de 20 ans. Paul Jansen, PDG de TIOBE Software, en a profité pour féliciter le père de Python :

    « Pour la première fois depuis plus de 20 ans, nous avons un nouveau chef de file : le langage de programmation Python. L'hégémonie de longue date de Java et C est terminée. Python, qui a commencé comme un simple langage de script, comme alternative à Perl, est devenu mature. Sa facilité d'apprentissage, son énorme quantité de bibliothèques et son utilisation répandue dans toutes sortes de domaines en ont fait le langage de programmation le plus populaire d'aujourd'hui. Félicitations Guido van Rossum ! Proficiat ! »

    Rust

    Rust est un langage de programmation open source qui permet de créer des logiciels fiables et efficaces. Développé par Mozilla Research, la première version du langage est parue en 2010 et il jouit aujourd'hui d'une grande popularité dans toute l'industrie. Pour beaucoup, Rust remplacera à la longue le langage C dans la programmation système. Selon ses partisans, il devrait permettre d'éliminer les bogues de mémoire présents dans le code écrit en C et C++. Poussé par une grande communauté, Rust est entré en 2020 dans le top 20 de l'indice de popularité Tiobe pour la première fois.

    Go et Julia

    Go (Golang) est un langage de programmation open source permettant de construire des logiciels simples, rapides et fiables. Classé actuellement parmi les 20 langages les plus populaires de l’index TIOBE, ce langage connaît une forte adoption dans la communauté des développeurs. Et pour cause, ses auteurs lui concèdent une facilité d’apprentissage. En 2018, un sondage a révélé que le nombre de développeurs qui utilisent Go dans le cadre de leurs activités quotidiennes a atteint 50 % (contre 44 % en 2016).

    TypeScript

    TypeScript est un langage de programmation libre et open source et un surensemble de JavaScript développé par Microsoft. Il a pour but d'améliorer et de sécuriser la production de code JavaScript. TypeScript inclut un bon ensemble de fonctionnalités de programmation orientée objet (POO), qui sont bonnes pour maintenir un code robuste et propre ; cela améliore la qualité et la maintenabilité du code. Ces caractéristiques rendent le code TypeScript très propre et organisé. TypeScript prend en charge les interfaces, les génériques, l'héritage et les modificateurs d'accès aux méthodes.

    D’après le baromètre TIOBE, le langage Nim est classé parmi le top 100 des langages les plus utilisés, à la position 81. L’existence des langages comme Nim soulève la question sur la multiplicité des langages de programmation et leur nécessité. En effet, Nim est en concurrence avec des langages qu’on retrouve dans le top 100 de TIOBE comme F#, CIL, ECMAScript, Eiffel, Elm, Haxe, Icon, Inform, Io, JScript, Korn shell, Lingo, M4, ML, MQL4, Nim, NXT-G, Occam, OpenCL, OpenEdge ABL, Oz, PostScript, Q, Racket, REBOL, REXX, Ring, RPG, S-PLUS, Simulink, SPSS, Vala/Genie, Verilog, Xojo et bien d’autres.

    La volonté de l’équipe de développement de Nim serait de voir le langage classé dans le top 10 avec des langages comme, Python, C, Java, C++, C#, Visual Basic. Pour certains analystes, il n’existe pas de meilleur langage de programmation, mais chaque nouveau langage essaie d'améliorer les tares qu'il identifie dans un ou plusieurs langages précédents, ajoute de nouvelles méthodes et fonctionnalités pour en faire un langage nouveau.

    Source : Nim

    Et vous ?

    Que pensez-vous du langage Nim ? Quel est votre avis sur les améliorations apportées à ce langage ?

    Êtes-vous pour ou contre la multiplicité des langages de programmation ?

    Utilisez-vous un langage classé parmi les 50 derniers du top 100 du classement TIOBE ? Pourquoi ?

    Voir aussi :

    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

    Python devient le langage de programmation le plus populaire sur TIOBE dans l'édition d'octobre et détrône C, une première en plus de 20 ans

    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
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre chevronné
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2010
    Messages
    838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2010
    Messages : 838
    Points : 2 196
    Points
    2 196
    Par défaut
    Citation Envoyé par Bruno Voir le message
    ... de manière générale, il souhaite donner un maximum de puissance à l’utilisateur sans sacrifier la performance (comme Rust ou Julia).
    Ça commence fort. Rust se positionne en tant que remplaçant de C et C++ en terme de performance tout en apportant de meilleures garanties en terme de sécurité (mémoire). La comparaison avec Julia me semble donc déplacé quand on parle de performance.

    Citation Envoyé par Bruno Voir le message
    Nim est un langage de programmation pratique et compilé offrant des performances et une portabilité semblables à celles du C++
    Portabilité semblable au C++ ? Je vois pas l'intérêt alors étant donné que la portabilité du C++ est à ch***...


    Citation Envoyé par Bruno Voir le message
    Pour certains analystes, il n’existe pas de meilleur langage de programmation
    Rien que ça ? Hé bé...
    Il y a 10 sortes de gens : ceux qui comptent en binaire et les autres.

    "Premature optimization is the root of all evil" --Donald Knuth
    traduction : "L'optimisation prématurée est la racine de tous les maux" -- Donald Knuth

    Si vous voulez apprendre à développer en Rust, un tuto (en français) est disponible ici.
    Si vous voulez voir mes projets, c'est sur github que ça se passe.

  3. #3
    Membre éclairé

    Homme Profil pro
    Retraite
    Inscrit en
    octobre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : octobre 2005
    Messages : 391
    Points : 878
    Points
    878
    Billets dans le blog
    1
    Par défaut Quand on y goute on ne lache plus
    Bonjour,
    voilà plus de deux ans que je me suis mis à programmer avec NIM-LANG je ne regrette pas.
    j'ai pu descendre dans la machine et faire de l’hacking clavier et écran.
    j'ai pu aussi me servir de GTK, POSTGRESQL pour faire des applications de gestion
    j'ai pu utiliser les sorties PDF (gestion client)
    j'ai aussi touché pas mal de truc que long trouve dans c/c++ system par exemple les communications avec msgq (message mémoire)
    j'ai fait une translation complète de gestion d'application html et websocket de c++ -> nim couplé avec GTK donc lier à des lib et utilisant les entêtes C/C++ et traduit mon code c++ en nim
    j'ai pour le deal fait un développement sur les nombres Decimaux (34 chiffres) et une personne est entrain de développer en natif cela m'a permis d'apprendre comment lier des lib développer en C/C++

    Tout ça pour dire que la programmation est possible pour faire de la Gestion et j'ai vu que dans le domaine du jeu aussi ainsi que dans le domaine de l'image, beaucoup de chose au sujet du web.
    le langage est simple logique et sécuritaire structurant , la compilation est très simple et il est possible de paramétrer à souhait.

    L’éditeur visual studio ou VScodium prend en charge le langage

    pour finir et comprendre que ce langage est puissant un éditeur moe sur GitHub vous montrera que l'on peut aller très loin.... il est écrit en NIM-LANG

    NIM-lang fonctionne très bien sur : LINUX, WINDOWS, MAC

    @bientôt
    quelques misent en ligne personnelle
    ps:
    j'ai plus de 40 ans d'informatique et à la retraite je regrette de n'avoir pas eu la possibilité de l'utiliser dans les sociétés que j'ai travaillées.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2016
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2016
    Messages : 140
    Points : 523
    Points
    523
    Par défaut
    Que pensez-vous du langage Nim ? Quel est votre avis sur les améliorations apportées à ce langage ?

    Je n'aime pas le fait qu'il utilise l'indentation à la place des {} pour les blocs. Et en plus les séquences d'espace sont imposés à la place de tabulations pour l'indentation. Double NON.

    Êtes-vous pour ou contre la multiplicité des langages de programmation ?

    De la concurrence entre langages, c'est un moteur d'innovation et d'amélioration.

    Mais ultimement, en avoir des dizaines est peu utile.

    Utilisez-vous un langage classé parmi les 50 derniers du top 100 du classement TIOBE ? Pourquoi ?

    J'en sais rien, je me contrefiche de l'index TIOBE. C'est juste un concours de "popularité" et pas une représentation fidèle de la valeur qualitative des langages.

  5. #5
    Membre éprouvé
    Profil pro
    programmeur du dimanche
    Inscrit en
    novembre 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2003
    Messages : 281
    Points : 1 000
    Points
    1 000
    Par défaut Il lui manque un sponsor
    C'est un langage qui sur le papier est très prometteur.
    • Il fournit facilement des binaires rapides et légers (sur je ne sais plus quel benchmark publié sur developpez c'était du même ordre de grandeur que les meilleurs langages compilés).
    • Le langage est très peu verbeux. Il permet d'avoir du binaire memory safe beaucoup plus concisément qu'en rust.
    • la syntaxe est moderne, rappelant python
    • les bindings vers c et python sont automatiques.
    • cross-plateforme
    • gestionnaire de paquets moderne
    • langage générique, bien documenté, etc.


    C'est tentant, mais les limites sont
    • Il n'y a pas de grosse fondation ou société derrière pour amorcer la pompe commerciale et attirer une grosse communauté
    • Ni de projet exceptionnel pour le promouvoir (genre Unreal engine, Godot, GUI de 1er plan,...)
    • Pas de support clair, ni de documentation pour la programmation embarqué. Des gens développent des jeux pro sous android mais ce n'est pas documenté et seuls des pionniers peuvent les suivre.
    • Il n'y a pas de niche où Nim excelle. Rust est le langage machine memory-safe du futur ; Go est le langage des services ; Python est le langage de script ; R Matlab sont dans la place académique, etc.
    • Petite communauté avec beaucoup de projets du type "j'espère que quelqu'un trouvera mon module utile ; pour la documentation devinez en lisant mon code"


    J'aurais bien lancé des projets dans ce langage, mais c'est trop pionnier pour moi. Pour un jeu par ex, ce sera 1000 fois plus simple d'apprendre le Lua ou le Godoscript qui bien qu'inférieurs, sont ceux des moteurs déjà tout prêts.

  6. #6
    Membre éclairé

    Homme Profil pro
    Retraite
    Inscrit en
    octobre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : octobre 2005
    Messages : 391
    Points : 878
    Points
    878
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Fagus Voir le message
    C'est un langage qui sur le papier est très prometteur.
    • Il fournit facilement des binaires rapides et légers (sur je ne sais plus quel benchmark publié sur developpez c'était du même ordre de grandeur que les meilleurs langages compilés).
    • Le langage est très peu verbeux. Il permet d'avoir du binaire memory safe beaucoup plus concisément qu'en rust.
    • la syntaxe est moderne, rappelant python
    • les bindings vers c et python sont automatiques.
    • cross-plateforme
    • gestionnaire de paquets moderne
    • langage générique, bien documenté, etc.


    C'est tentant, mais les limites sont
    • Il n'y a pas de grosse fondation ou société derrière pour amorcer la pompe commerciale et attirer une grosse communauté
    • Ni de projet exceptionnel pour le promouvoir (genre Unreal engine, Godot, GUI de 1er plan,...)
    • Pas de support clair, ni de documentation pour la programmation embarqué. Des gens développent des jeux pro sous android mais ce n'est pas documenté et seuls des pionniers peuvent les suivre.
    • Il n'y a pas de niche où Nim excelle. Rust est le langage machine memory-safe du futur ; Go est le langage des services ; Python est le langage de script ; R Matlab sont dans la place académique, etc.
    • Petite communauté avec beaucoup de projets du type "j'espère que quelqu'un trouvera mon module utile ; pour la documentation devinez en lisant mon code"


    J'aurais bien lancé des projets dans ce langage, mais c'est trop pionnier pour moi. Pour un jeu par ex, ce sera 1000 fois plus simple d'apprendre le Lua ou le Godoscript qui bien qu'inférieurs, sont ceux des moteurs déjà tout prêts.
    Bonjour,
    Je veux bien entendre certaine chose, mais dire qu'il n'y a pas de support ni de documentation ce n'est pas vrais. D’autre part le forum est très actif et on y trouve un vrai support et les bugs sur github ou les demandes de modification sont très suivis.

    J’ai fait et mis du code sur github sur des sujets très précis et pour démontrer que cela est possible, en me bornant à n'utilisé que des instructions NIM, quant au lien avec des lib C/C++ inutile de présenter les lib mais de pouvoir les utiliser et de savoir le faire est important exemple GTK .

    Le seul projet sur lequel je suis est de remettre au gout du jour les écrans de type 5250 ou 3270 l'écran noir du terminal les modules sont près et j'en suis au générateur de codes en gros un designeur screen ressemblant ou plutôt m'inspirant de celui d'IBM sur l'AS400 "SDA" dans mes tests un écran de type gestion de clients feras moins de 72ko compilé du 2D à plat "TUI" je m'inspire aussi de GLADE pour la simplicité et la cohérence vue PC quant la documentation je compte m'y atteler dès que mon générateur sera fonctionnel, mais je pensais que onMouse et offCursor était évident par exemple.

    Je te trouve un peu sévère dans ta critique, des sociétés, il y en a et qui subventionne ......

    Quant aux "GUI" les choix sont permis GTK UIP wxWidgets ... ouvert à plusieurs cela permet peut-être à certain de mieux faire la transition.

    La partie WEB est très active puisque des forums et autre sont fait dans ce langage.

    Par contre, venant du C/C++ l'ajout de la rigueur du pascal est un très gros point et la fiabilité de Rust (je ne dis pas que cela est meilleurs) quant à python, je ne connais pas assez, mais effectivement l'indentation y est très sévère question d'habitude et de lisibilité la documentation générer peut être très poussée et ne pas se contenter des descriptions de fonction, comme je l'ai pour fait le moment.

    Tu aurais pu signaler la prise en charge de javascript.

    Ce n'est que mon avis maintenant il est vrai que cela demande de l'investissement pour posséder un langage ou bien de si sentir à l'aise, Ça je veux bien te le concéder

    Quant à la reconnaissance disons que le rythme de croisière ou les fonctions son stable et un très grand pas ont été fait depuis 2 ans et surtout cette année avec le compilateur
    j'ai d'ailleurs publié un article (mis en Français) pour dire que NIM n'était pas un transpilateur... l'article montre et démontre la différence entre un transpilateur et un compilateur.
    https://www.developpez.net/forums/d2119867/general-developpement/langages-programmation/nim-transpilateur/

    @bientôt
    ps j'ai 70 ans et plus de 45 d'informatique peut-être je suis vieux jeu mdrrrrrr

  7. #7
    Membre éclairé

    Homme Profil pro
    Retraite
    Inscrit en
    octobre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : octobre 2005
    Messages : 391
    Points : 878
    Points
    878
    Billets dans le blog
    1
    Par défaut Nim a reçu un don de 100 000$
    Bravo , l'équipe doit-être aux anges

  8. #8
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2013
    Messages
    6 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mars 2013
    Messages : 6 469
    Points : 155 331
    Points
    155 331
    Par défaut L'équipe de développement de Nim annonce avoir reçu plus de 100 000 dollars en bitcoins
    L'équipe de développement de Nim annonce avoir reçu plus de 100 000 dollars en bitcoins,
    pour soutenir son travail sur le langage de programmation

    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.

    Nom : bitcoin.png
Affichages : 4031
Taille : 162,2 Ko

    « 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 macros permettent de manipuler/générer du code au moment de la compilation au lieu de compter sur les générateurs de code, ce qui permet d'écrire des DSL et des extensions de langage dans le code utilisateur. Parmi les exemples typiques, citons l'implémentation de chaînes f de type Python, le chaînage optionnel, les générateurs de lignes de commande, les applications monopages de type React, la sérialisation protobuf et les générateurs de liaisons.

    Le langage Nim est classé dans le top 100 des langages les plus populaires sur le baromètre TIOBE, à la position 81. L’existence des langages comme Nim soulève la question sur la multiplicité des langages de programmation et leur nécessité. En effet, Nim est en concurrence avec des langages qu’on retrouve dans le top 100 de TIOBE comme F#, CIL, ECMAScript, Eiffel, Elm, Haxe, Icon, Inform, Io, JScript, Korn shell, Lingo, M4, ML, MQL4, Nim, NXT-G, Occam, OpenCL, OpenEdge ABL, Oz, PostScript, Q, Racket, REBOL, REXX, Ring, RPG, S-PLUS, Simulink, SPSS, Vala/Genie, Verilog, Xojo et bien d’autres.

    La volonté de l’équipe de développement de Nim serait de voir le langage classé dans le top 10 avec des langages comme, Python, C, Java, C++, C#, Visual Basic.

    De manière générale, la syntaxe rappelle Python (pour la délimitation des blocs) et Scala (pour les types et certaines syntaxes raccourcies), avec des types, mais aussi le renvoi implicite d’une variable (ce qui contribue à raccourcir le code… avec un peu d’habitude) :

    Code Nim : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    proc reverse(s: string): string = 
      result = ""  
      for i in countdown(high(s), 0): 
        result.add s[i] 
     
    var str1 = "Reverse This!" 
    echo "Reversed: ", reverse(str1)

    La métaprogrammation est poussée plus loin qu’en C++ : elle permet de générer n’importe quel type de code à la compilation, en travaillant directement au niveau de l’AST du compilateur. Par exemple, la fonction suivante génère des fonctions dont le nom dépend des arguments. (Bien évidemment, ce système peut être utilisé dans des cas plus complexes.)

    Code Nim : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import macros 
     
    template abcProc(n: expr): stmt  =   
      proc n() = echo astToStr(n)  
     
    abcProc(A) 
    abcProc(B) 
    abcProc(C)

    L’un des concepts principaux derrière le langage concerne les aspects parallèles : chaque fil d’exécution peut communiquer avec les autres à l’aide de messages asynchrones, des canaux. Le collecteur de mémoire peut donc fonctionner indépendamment pour chaque fil d’exécution : même en mettant l'un d'entre eux en pause, l’application peut toujours fonctionner ; ce système est donc adapté aux applications qui ne sont pas strictement temps réel, comme les jeux (mais contrairement à une bonne partie de l’électronique).

    Quelques langages avec lesquels Nim est en concurrence

    Python

    Python est un langage de programmation interprété, multi-paradigme et multi-plateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par récupérateur de mémoire et d'un système de gestion d'exceptions ; il ressemble ainsi à Perl, Ruby, Scheme, Smalltalk et Tcl. Python a réussi à se hisser à la première place dans le classement TIOBE dans l'édition d'octobre 2021, une première en plus de 20 ans. Paul Jansen, PDG de TIOBE Software, en a profité pour féliciter le père de Python :

    « Pour la première fois depuis plus de 20 ans, nous avons un nouveau chef de file : le langage de programmation Python. L'hégémonie de longue date de Java et C est terminée. Python, qui a commencé comme un simple langage de script, comme alternative à Perl, est devenu mature. Sa facilité d'apprentissage, son énorme quantité de bibliothèques et son utilisation répandue dans toutes sortes de domaines en ont fait le langage de programmation le plus populaire d'aujourd'hui. Félicitations Guido van Rossum ! Proficiat ! »

    Rust

    Rust est un langage de programmation open source qui permet de créer des logiciels fiables et efficaces. Développé par Mozilla Research, la première version du langage est parue en 2010 et il jouit aujourd'hui d'une grande popularité dans toute l'industrie. Pour beaucoup, Rust remplacera à la longue le langage C dans la programmation système. Selon ses partisans, il devrait permettre d'éliminer les bogues de mémoire présents dans le code écrit en C et C++. Poussé par une grande communauté, Rust est entré en 2020 dans le top 20 de l'indice de popularité Tiobe pour la première fois.

    Go et Julia

    Go (Golang) est un langage de programmation open source permettant de construire des logiciels simples, rapides et fiables. Classé actuellement parmi les 20 langages les plus populaires de l’index TIOBE, ce langage connaît une forte adoption dans la communauté des développeurs. Et pour cause, ses auteurs lui concèdent une facilité d’apprentissage. En 2018, un sondage a révélé que le nombre de développeurs qui utilisent Go dans le cadre de leurs activités quotidiennes a atteint 50 % (contre 44 % en 2016).

    TypeScript

    TypeScript est un langage de programmation libre et open source et un surensemble de JavaScript développé par Microsoft. Il a pour but d'améliorer et de sécuriser la production de code JavaScript. TypeScript inclut un bon ensemble de fonctionnalités de programmation orientée objet (POO), qui sont bonnes pour maintenir un code robuste et propre ; cela améliore la qualité et la maintenabilité du code. Ces caractéristiques rendent le code TypeScript très propre et organisé. TypeScript prend en charge les interfaces, les génériques, l'héritage et les modificateurs d'accès aux méthodes.

    Source : Nim

    Et vous ?

    Connaissez-vous ce langage de programmation ? Qu'en pensez-vous ?
    Êtes-vous pour ou contre la multiplicité des langages de programmation ciblant les mêmes secteurs ? Dans quelle mesure ?
    Quels langages de programmation utilisez-vous en entreprises et / ou pour vos projets personnel ?
    Pour ou contre l'utilisation de framework ?
    Si vous êtes pour, à quel moment préconisez-vous leur emploi (lorsqu'on maîtrise suffisamment le langage de programmation, lorsqu'on débute, lorsqu'on en connait les bases, etc.) ?
    Seriez-vous intéressé par un framework Nim ?
    Avez-vous déjà entendu parlé de framework écrit en Nim comme Prologue (framework web) ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  9. #9
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : septembre 2008
    Messages : 29
    Points : 109
    Points
    109
    Par défaut Bof
    C'est un beau travail, mais:
    • les performances annoncées sont celles du transpilateur
    • la syntaxe fait vieillote (rappelant Pascal/clipper)
    • n'a pas l'air de faire grand-chose que d'autres déjà existants ne fasse pas
    • Il y a de la généricité, mais pas de classe???


    Bref, pas de quoi sauter au plafond.

    Et je suis pour la multiplicité des langages, s'ils apportent quelque chose ou s'ils correspondent à un environnement. Des concurrents de SQL plus "logiques" et plus "modernes" serait bien, des concurrents à Pascal/C/Ada, on n'en n'a plus vraiment besoin, sauf s'ils permettent de manipuler des structures particulières de données ou s'ils simplifient la gestion mémoire/la gestion de concurrence de façon significative.

    Là j'ai l'impression de voir les articles des années 90 sur des "nouveaux" langages qui finalement n'ont jamais percé.

    Par ailleurs, générer par transpilation, sauf à avoir une véritable environnement de dev, est une complication énorme pour le débogage.

    Des langages comme Eiffel apportaient des notions intéressantes qui font partie des librairies de dev permettant de vérifier "dynamiquement" si une fonction n'est pas bugguée.

    Quand à la saisie mode python... ça paraît être une bonne idée, mais c'est tellement dépendant de l'EDI que c'en est parfois un enfer.

    Bref, encore un langage créé par des gens qui ne voulaient pas apprendre un autre langage/un autre méthode, on créé un n-ième langage de zéro, ont appris et complété avec ce qui manquaient, et accouchent d'un langage tout aussi compliqué et avec autant d'avantages et de défaut que les autres.

  10. #10
    Membre éprouvé
    Profil pro
    programmeur du dimanche
    Inscrit en
    novembre 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2003
    Messages : 281
    Points : 1 000
    Points
    1 000
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    Bonjour,
    Je veux bien entendre certaine chose, mais dire qu'il n'y a pas de support ni de documentation ce n'est pas vrai
    [...]
    Quant aux "GUI" les choix sont permis GTK UIP wxWidgets ... ouvert à plusieurs cela permet peut-être à certain de mieux faire la transition.
    [...]
    Tu aurais pu signaler la prise en charge de javascript.
    [...]
    [/URL]
    Bonjour,
    Merci pour cette longue réponse.
    Je ne nie pas les qualités ou les possibilités du langage, mais je regarde plus sous l'angle du projet à réaliser.

    * Si c'est pour utiliser un SDK GUI classique, à vrai dire, je peux déjà utiliser ceux que tu cites dans un autre langage dont je suis à peu près sûr que le binding est fiable car testé par des légions de développeurs et bien documenté, ou dans un langage natif du SDK, ou avec un IDE RAD plus pratique. À la limite, je m'étais dit que comme nim produit des binaires petits, il peut servir pour écrire de petits utilitaires via un SDK léger, mais je me suis laisser décourager. J'avais testé https://github.com/yglukhov/nimx (celui d'un des principaux développeurs), mais sur une installation fraîche chez moi, la démo issue d'un git pull ne compile pas avec un message d'erreur incompréhensible jamais vu sur la toile. Cela dit, pour lancer un gros projet qui ne dépend pas de librairies externes, ce sera sans doute plus agréable à écrire qu'en c++ (c'est ce que tu sembles faire).

    * Pour javascript c'est sans doute la même idée : on doit pouvoir y arriver, mais ce sera sans doute plus facile au néophyte et avec moins d’accrocs en Typescript vu que c'est le principal surensemble de js en production.

    * Pour faire quelque chose qui tourne sur android, les auteurs de nim utilisent https://github.com/yglukhov/rod en production je crois. Mais je n'ai pas trouvé d'autre documentation que le code source...

    Citation Envoyé par Rep.Movs
    la syntaxe fait vieillote (rappelant Pascal/clipper)
    Ce n'est pas forcément un défaut, la syntaxe de pascal avait été conçue pour être lisible. (à la limite je trouve ça mieux qu'en c quand un programmeur décide d'utiliser une syntaxe "créative" que seul les initiés peuvent comprendre ; ou que le c++ où des décennies d'améliorations et de corrections ont permis une grande variété de syntaxe, de surcharges et de styles).

  11. #11
    Membre éclairé

    Homme Profil pro
    Retraite
    Inscrit en
    octobre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : octobre 2005
    Messages : 391
    Points : 878
    Points
    878
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Fagus Voir le message
    Bonjour,
    Merci pour cette longue réponse.
    Je ne nie pas les qualités ou les possibilités du langage, mais je regarde plus sous l'angle du projet à réaliser.

    * Si c'est pour utiliser un SDK GUI classique....... J'avais testé https://github.com/yglukhov/nimx ....
    .
    bonjour et merci d'avoir pris le temps de répondre.

    Hélas beaucoup de petit projet ont été mis à disposition.... pour moi, c'était une façon de tester ce que certain ont déposés... et je trouve que peut-être ce n'est pas la bonne façon de valoriser NIM.

    outre GTK il y a un projet qui fonctionne pas mal https://github.com/nim-lang/ui perso j'ai testé.... mais pour moi, c'était une approche à compléter. Je préfère, GTK avec glade j'ai fait un petit truc ou tu peux mettre le script généré par Glade dans ton source l'utiliser comme en c /c++ le build. (nim_outil) ainsi diminuer considérablement ta définition screen et avoir un designer.

    Arrivant de gros system , j'ai refait en nim pure le zoned (tel que le fait l'OS400 y compris les dates decimal char[] ...) je me suis remis sur postgresql et me suis fait un wraper qui s'appuie sur pgsql étant dans la gestion d'entreprise (au passage, je voudrai dire que la gestion ce n'est pas uniquement faire des commandes.... mais que l'on y rencontre des problèmes intéressants et mettent en œuvre des solutions très élaboré)
    et je me suis attaqué à refaire un TUI en pure nim actuellement je suis sur un designer qui permettra de générer du code ( en gros compiler 550ko) il génère des panels formulaire complet, combo, menu, tableau encours. Je m'appuie sur les 2 modules termKey (le hack clavier écran) et termCurs (voir ncurse ou pdcurs ) en utf8

    Le tout combiné je pense rendre lisible comme on lit un journal et en même temps régler certain problème de fond.
    L'idéal serait de remonter encore d'un niveau par exemple déclarer une table et générer automatiquement les entrées et sorties (j'ai fait cela en C/C++ et langage natif postgresql autre que psql) mais en pure nim
    ce que j'ai fait en nim c'est l'analyseur de table avec la possibilité de générer du code pour faire des requêtes

    bon ce n'est pas un RAD comme l'IDE de pascal ou U++ ou ec


    ps: si tu testes GTK il fonctionne aussi bien avec gtk3/4 ce qui pour moi est un tour de force....

    pour travailler avec GTK et la doc officielle de GTK et t'y retrouvé avec GINTRO(gtk nim) les fonctions sont respectées et plus cohérente c'est plus proche de GTK++
    une astuce si tu travailles avec vscodium éditeur libre de visual-studio légal sous linux

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #!/bin/bash
     
    fdBlanc='\033[47;1m'
    fcNoir='\033[30m'
     
    f_dsply(){
        echo -en '\033[0;0m'
        echo  -e $1
        echo -en '\033[0;0m'
    }
     
    f_read() {
        echo -en '\033[0;0m'
        echo -en $fdBlanc$fcNoir
        read
        echo -en '\033[0;0m'
    }
    f_clear() {
    reset > /dev/null
        echo -en '\033[1;1H'
        echo -en '\033]11;#000000\007'
        echo -en '\033]10;#FFFFFF\007'
    }
     
    requete="?"
     
     
     
     
     
    while [ "$requete" == "?" ]; do
      f_dsply 'veuilez donnez le critère de recherhe:'
      f_read
      requete=$REPLY
      if [  -z $requete  ]; then
        f_dsply 'erreur de saisie';
        read -s -n 1
        f_clear
        requete="?"
      fi
     
     
    done
    requete=$REPLY
    grep -B2 --color=auto $requete ~/.nimble/pkgs/gintro-0.9.5/gintro/*
     
    exit 0

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/04/2021, 14h45
  2. Réponses: 0
    Dernier message: 08/04/2020, 10h12
  3. Le service npm Enterprise JavaScript est disponible en version stable
    Par Stéphane le calme dans le forum Outils
    Réponses: 0
    Dernier message: 26/02/2019, 09h13
  4. Réponses: 0
    Dernier message: 03/09/2018, 16h33
  5. Imba, le nouveau langage se compilant en JavaScript est disponible
    Par Olivier Famien dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/09/2015, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo