Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Deno 2.0 est là

Le temps où Node.js régnait en maître comme la solution incontournable pour exécuter du code JavaScript côté serveur est-il révolu ? En tout cas, il a aujourd’hui des challengers de taille comme Bun (qui pourrait lui aussi mériter une dépêche) ou Deno. C'est donc de ce dernier qu'il sera question dans cette dépêche, à l'occasion de la sortie de sa version 2.0

Sommaire

Titre de l'image

Pour rappel

Deno est un runtime JavaScript et TypeScript. Il a vu le jour suite au constat de Ryan Dahl (créateur aussi de Node.js), que Node avait des problèmes de conceptions, et qu'il était nécessaire de repartir de zéro en tenant compte de l'expérience de Node pour ne pas refaire les mêmes erreurs. Il imagine Deno comme un runtime avec un modèle de sécurité par défaut plus strict. Les programmes Deno n'ont pas accès au système de fichiers, au réseau ou à l'environnement, sauf si on leur accorde explicitement ces permissions. Deno est écrit en Rust, et se base sur le moteur JavaScript V8 de Google. Deno se distingue également de Node en offrant la possibilité d'importer les dépendances via des URL, mettant en cache chaque module lors de l’importation pour améliorer la vitesse d’exécution.

La mascotte !

La première chose notable quand on passe de Node.js à Deno, c'est sa mascotte ! En effet, même si Node.js possède bien une petite tortue comme mascotte, celle-ci n'est utilisée nulle part ! Personnellement, j'ai toujours trouvé bien plus chouettes les projets qui ont des petites bestioles comme mascotte (Mozilla, Tux …). Et chez Deno, le dinosaure mascotte est omniprésent sur tout le site. Et en plus, à l'occasion de la version 2.0, on peut habiller notre dino sur la home page du projet ! Et ça c'est cool ! Voici le mien, qui est en compagnie de Ferris, la mascotte officieuse de Rust !

Mon dino

Bon, comme je ne suis pas sûr que tout le monde partage ma passion pour les mascottes, on va passer au côté plus technique ! 🤣

Deno 1.x, des débuts difficiles !

La version 1.0 sortie en mai 2020 a du mal à se faire une place et reste dans l'ombre de son grand frère. En effet, même si Deno offre un grand lot de nouveautés et est plus sécurisé par défaut, la très large adoption de Node et le fait que les projets développés pour Node ne sont pas forcément compatibles avec Deno rend l’adoption de ce dernier difficile. De plus, l'utilisation de CDN plutôt que d'installer les dépendances localement (dans le répertoire node_modules) a certes de nombreux avantages, mais cela rend votre projet dépendant de disponibilité du réseau ou peut entraîner des problèmes de performances si le CDN est éloigné géographiquement.

Les nouveautés de la version 2.0

Deno est désormais 100% compatible avec Node.js, et un gestionnaire de paquets officiel a vu le jour. Vous pouvez maintenant utiliser deno add et deno removepour ajouter ou retirer un paquet à votre projet.

Autour du projet Deno, JavaScript Registry (JSR) un dépôt de paquets JavaScript universel !

Le registre NPM s'est construit autour de Node.js afin de gérer facilement les dépendances de nos projets. Il a donc été développé pour Node.js à une époque où Node était la seule solution pour exécuter du code JavaScript côté serveur. En près de 15 ans, le registre NPM a rassemblé un peu moins de 3 millions de paquets et a très largement rempli sa mission toutes ces années. Mais aujourd'hui, la situation a changé, il existe plusieurs runtimes pouvant exécuter du code JavaScript (ou TypeScript) côté serveur. Et du côté front-end, les frameworks se sont multipliés et sont devenus de plus en plus complexes et nécessitent aussi l'utilisation d'un gestionnaire de paquets. Un registre de paquets fondé autour de Node.js uniquement est donc beaucoup moins pertinent qu'en 2010.
C'est donc pourquoi, à l'initiative du projet Deno, un nouveau registre de paquets JavaScript et TypeScript universel pointe aujourd'hui le bout de son nez. Il s'agit donc de JSR (JavaScript Registry).

Dans JSR, quand on va sur la page d'un paquet, en haut à droite, on a les logos des environnements compatibles avec le paquet :

Titre de l'image

Performances du runtime

Niveau performance, ça donne quoi ?

On voit souvent l'affirmation que Deno serait plus rapide que Node.js. Mais ça donne quoi en réalité ?

J'ai voulu faire un petit test sans prétentions pour voir ce que ça donne. Je voulais faire des tests plus poussés sur différents systèmes d'exploitation et architectures, mais par manque de temps, le test sera donc fait sur un seul système et un seul ordinateur et il s'agit d'un Mac… Un comble pour LinuxFr.org, mais c'est l'ordinateur que j'avais à disposition à ce moment-là. Mais sinon, je ne porte pas spécialement Apple dans mon cœur, bien au contraire !

J'ai testé l’exécution d'une même API sur Node. et Deno pour voir les différences de performance entre ces solutions. Pour ce test, j'ai utilisé une API Rest que j'ai développée pour le site de la société AudioSoft. J'ai fait la même requête POST 10 fois sur la même route avec les mêmes données. Il est important de préciser que c'est la première fois que je fais ce genre de tests, et que je ne fais peut-être pas tout dans les règles de l'art. Il y a des éléments extérieurs à Node et Deno qui peuvent influencer les scores. Notamment, la base de données utilisée pour le test était accessible via Internet, et des différences de débit ont pu fausser les tests.

Test sur un MacBook Pro (2,6 GHz Intel Core i7 6 cœurs, AMD Radeon Pro 5300M 4 Go Intel UHD Graphics 630 1536 Mo, 16 Go 2667 MHz DDR4) sous macOS Sonoma

Node: Le temps moyen pour exécuter le test de 126 millisecondes
Deno: Le temps moyen pour exécuter le test de 93 millisecondes

Performances du gestionnaire de paquets

Comme dit précédemment, Deno c'est aussi un gestionnaire de paquets. J'ai donc trouvé intéressant de tester les principaux gestionnaires de paquets sur différents environnements.
Pour ce test je me base sur la même API Rest que pour le test précédant, les dépendances à installer pour cette API sont : bcrypt, body-parser, dotenv, express, jsonwebtoken, mariadb, multer, mysql2, nodemailer, et sequelize. Le test a été fait sur un MacBook Pro. Pour effectuer ce test, le cache des gestionnaires de paquets ont été nettoyés et les fichiers-verrous supprimés.

Avec NPM, l'installation a mis 10 secondes.

Avec Deno, l'installation a mis 1 seconde.

Avec Bun, l'installation a mis 3 secondes.

On voit très clairement que NPM est beaucoup plus lent que ses deux concurrents. L'écart est plus faible entre Deno et Bun. Mais Deno est bien le plus rapide des trois.

Avant de réaliser ce test, j'en ai effectué un en oubliant de nettoyer le cache et de supprimer package-lock.json. Les résultats étaient alors 8 secondes pour NPM, 5 secondes pour Deno et 4 secondes pour Bun. Il est logique de constater que NPM est plus rapide, en revanche, je trouve surprenant que Deno et Bun aient été ralentis. Il est possible que les gestionnaires de paquets aient parcouru package-lock.json pour garder les versions présentes dans ce fichier, ce qui les aurait tous les trois ralentis. Et NPM a peut-être pu bénéficier de son cache (car je l'utilise bien plus que les deux autres sur mon ordinateur), Deno et Bun eux n'avaient peut-être pas grand-chose dans leurs caches, ont donc été ralentis. Il est donc important de supprimer les lockfile en cas de migration d'un projet.

Comme je le disais plus haut, c'est la première fois que j'effectue ce genre de test comparatif. Si vous avez des conseils sur les bonnes méthodes pour faire des tests plus fiables, ça m’intéresse !

Deno 2.1 est là

Étant donné que j'ai mis environ un siècle pour rédiger cette dépêche, Deno 2.1 est sortie entre temps ! 🤣
Je vous liste donc les principales nouveautés apportées à la version 2.1 sans les commenter 😉

  • Support natif de WebAssembly (Wasm) : Il est désormais possible d'importer directement des modules Wasm, simplifiant leur utilisation et améliorant les performances.
  • Version Long Term Support (LTS) : Deno 2.1 inaugure la première version LTS, garantissant des correctifs de bugs et des améliorations de performance pendant… Six mois… On n'est pas encore aux 30 mois des versions LTS de Node.js… Cela viendra peut-être plus tard. 🙂
  • Commande deno init --npm vite : Cette commande simplifie la création de nouveaux projets en utilisant des outils comme Vite, en automatisant l'initialisation et en réduisant la configuration manuelle.
  • Gestion des dépendances : Introduction de la commande deno outdated pour gérer les mises à jour des dépendances JSR et npm.

Conclusion

Si vous êtes développeur Node.js, je vous conseille de vous intéresser à Deno, et même à Bun. Je ne sais pas si ces deux runtime sont totalement prêts pour des projets en production (par exemple, Deno 2.1 n'a que 6 mois de durée de vie, ce qui est plutôt contraignant pour les serveurs.). Mais peut-être que dans un futur proche, il sera cohérent de migrer vers l'un de ces deux-là.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Brian Eno n’aime pas les NFT – Open Culture (5)

Par : Goofy
24 août 2022 à 05:42

Le 5e numéro de notre mini-série de l’été, qui vagabonde librement d’un article de openculture.com à l’autre, vous propose aujourd’hui de lire quelques propos assez vifs sur les NFT que l’on peut définir grossièrement comme des titres de propriété, enregistrés dans une sorte de « grand livre » numérique public et décentralisé (en savoir plus avec ces questions/réponses). Leur apparition ces dernières années suscite autant d’engouement spéculatif que de critiques acerbes.

Voici par exemple le point de vue de Brian Eno, un musicien, producteur, compositeur dont la carrière et la notoriété dans le monde de la musique sont immenses : les plus grands ont bénéficié de son talent, on lui doit le développement et la popularisation d’un genre musical et nombreuses sont ses expérimentations artistiques, pas seulement musicales..

 

Article original : Brian Eno Shares His Critical Take on Art & NFTs : “I Mainly See Hustlers Looking for Suckers”

Traduction : Goofy

Brian Eno expose son point de vue critique sur l’art et les NFT : « Je vois surtout des arnaqueurs qui cherchent des pigeons »

par Josh Jones

Image via Wikimedia Commons

Dans notre monde marqué par les inégalités, on peut avoir l’impression que nous n’avons plus grand-chose en commun, qu’il n’y a pas de « nous », mais seulement « eux » et « nous ». Mais les multiples crises qui nous séparent ont aussi le potentiel d’unir l’espèce. Après tout, une planète qui se réchauffe rapidement et une pandémie mondiale nous menacent tous, même si elles ne nous menacent pas de la même manière.

Les solutions existent-elles dans la création de nouvelles formes de propriété privée, de nouvelles façons de déplacer le capital dans le monde ? Les sous-produits de la marchandisation et du gaspillage capitalistes, à l’échelle de l’extinction, peuvent-ils être atténués par de nouvelles formes ingénieuses de financiarisation ? Tels semblent être les arguments avancés par les zélateurs des crypto-monnaies et de NFT, un acronyme signifiant jetons non fongibles et – si vous ne l’avez pas encore remarqué – qui semble la seule chose dont tout le monde parle aujourd’hui dans le monde de l’art.

Brian Eno a exprimé son opinion sur le sujet de manière assez abrupte dans une interview récente. « Les NFT me semblent juste un moyen pour les artistes d’obtenir une petite part du gâteau du capitalisme mondial », a-t-il dit sur le site The Crypto Syllabus. « Comme c’est mignon : maintenant les artistes peuvent aussi devenir de petits trous du cul de capitalistes ». Il désapprouve évidemment l’utilisation de l’art uniquement pour générer des profits, car si nous avons appris quelque chose de la théorie de la créativité et de l’influence d’Eno au cours des dernières décennies, c’est bien que selon lui le moteur principal de la création artistique est… de générer davantage d’art.

« Si j’avais voulu gagner de l’argent avant tout, j’aurais eu une carrière différente, comme n’importe qui d’autre. Je n’aurais probablement pas choisi d’être un artiste ».

Il est tout à fait inutile d’essayer de cataloguer Eno comme technophobe ou déconnecté, c’est tout le contraire. Mais les produits financiers fictifs qui ont envahi toutes les autres sphères de la vie n’ont pas leur place dans les arts, affirme-t-il.

Lorsqu’on lui demande pourquoi les NFT sont présentés comme un salut pour les artistes et le monde de l’art par les visionnaires des crypto-monnaies, parmi lesquels figurent nombre de ses amis et collaborateurs, Eno répond :

Je peux comprendre pourquoi les personnes qui en ont profité sont satisfaites, et il est assez naturel dans un monde libertarien de croire que quelque chose qui vous profite doit automatiquement être « bon » pour le monde entier. Cette croyance est une version de ce que j’appelle « l’automatisme » : l’idée que si vous laissez les choses tranquilles et que vous laissez une chose ou l’autre – le marché, la nature, la volonté humaine – suivre son cours sans entrave, vous obtiendrez automatiquement un meilleur résultat qu’en intervenant. Les personnes qui ont ce genre de croyances n’ont aucun scrupule à intervenir elles-mêmes, mais veulent simplement une situation où personne d’autre ne peut intervenir. Surtout pas l’État.

Le fait que la vente des NFT n’ait profité qu’à un très petit nombre de personnes – à hauteur de 69 millions de dollars en une seule vente dans une affaire récente très médiatisée – ne semble pas particulièrement gêner ceux qui insistent sur leurs avantages. Les créateurs des NFT ne semblent pas non plus gênés par l’énorme surcharge énergétique que nécessite cette technologie, « un système pyramidal de cauchemar écologique », comme le dépeint Synthtopia – dont Eno dit :

« dans un monde en réchauffement, une nouvelle technologie qui utilise de vastes quantités d’énergie comme « preuve de travail », c’est-à-dire simplement pour établir un certain âge d’exclusivité, est vraiment insensée. »

Eno répond volontiers aux questions sur les raisons pour lesquelles les NFT semblent si séduisantes – ce n’est pas un grand mystère, juste une nouvelle forme d’accumulation, de marchandisation et de gaspillage, une forme en particulier qui n’ajoute rien au monde tout en accélérant l’effondrement du climat. Les NFT sont le « readymade inversé », selon David Joselit : là où « Duchamp utilisait la catégorie de l’art pour libérer la matérialité de la forme marchandisable, les NFT déploient la catégorie de l’art pour extraire la propriété privée d’informations librement disponibles ».

Le discours autour des NFT semble également libérer l’art de la catégorie de l’art, et tout ce que cela a signifié pour l’humanité depuis des millénaires en tant que pratique communautaire, réduisant les productions créatives à des certificats numériques d’authenticité. « J’essaie de garder l’esprit ouvert sur ces questions », concède Eno. « Des personnes que j’apprécie et en qui j’ai confiance sont convaincues que [les NFT] sont la meilleure chose depuis l’invention du pain en tranches, alors j’aimerais avoir une vision plus positive, mais pour l’instant, je vois surtout des arnaqueurs qui cherchent des pigeons. »

Pour aller plus loin

(en français)

(en anglais)

L’auteur de l’article
Josh Jones est un écrivain et musicien de Durham, NC. Son compte twitter est @jdmagness


Si cet article vous a plu et que vous découvrez l’intérêt du site openculture.com, vous pouvez contribuer par une petite donation sur cette page https://www.openculture.com/help-fund-open-culture (via Paypal, Patreon et même cryptomonnaie…)

❌
❌