Eris vs Discord.js

Toujours à l’affût des nouveautés JS, j’ai découvert il y a peu Eris, un petit nouveau dans le groupe des librairies encapsulant discord. J’avais déjà fait un article sur Discord.js il y a quelques mois si vous souhaitez le lire.

Je me suis tout de suite demandé:

Mais qu’est-ce qui différencie Eris de Discord.js ?

Moi

Passons donc au comparatif !

Quelques statistiques

Tout d’abord, je suis allé faire un tour du côté de npmCompare, un site très pratique pour comparer facilement des paquets npm.

J’ai donc entré les deux librairies et voici les résultats qui sont apparus:

Date de création

Discord.js vs Eris: Infos principales
Discord.js vs Eris: Infos principales

Tout d’abord, on peux regarder les dates de création des deux paquets:

  • Discord.js a été créé en août 2015, il a donc 5 ans
  • Eris lui a été créé en octobre 2013, il a donc 7 ans

Première comparaison intéressante: Discord.js est plus jeune de 2 ans.

Dernière mise à jour et version

Discord.js vs Eris: Versions
Discord.js vs Eris: Versions
  • Discord.js a été mis à jour il y a 25 jours (17/04/20) et est en version 12.2.0
  • Eris a été mis à jour il y a 8 heures (12/05/20) et est en version 0.13.0

On peux déjà voir que les deux paquets ont été mis à jour récemment.

Discord.js possède 118 versions (actuellement 12.2.0)
Tandis que Eris ne possède que 27 versions (0.13.0). À noter qu’il ne possède pas de version majeure.
Cela ne veux pas dire énormément de chose car chaque paquet a une gestion des numéros de version qui lui est propre.

Régularité des mises à jour

Discord.js vs Eris: Mises à jour
Discord.js vs Eris: Mises à jour

Pour trouver ces infos, je suis également allé sur le site de npm, dans l’onglet version. J’ai relevé seulement les versions qui ont jusqu’à un an d’ancienneté afin de voir également l’activité de publication.

Voici les résultats pour Discord.js (à gauche) et pour Eris (à droite):

Versions de Discord.js

Voici les informations que l’on peut en tirer:

  • Discord.js a eu plus de mise à jour en un an que Eris
  • Discord.js n’a eu aucune mise à jour pendant plusieurs mois entre la 11.5.1 et la 11.6.0. Par la suite les mises à jour furent régulière et peu espacées dans le temps (environ 15 jours)
  • Eris a des mises à jours à peu près régulière, aucun trou dans les mises à jours, et l’intervalle entre deux mises à jours est en moyenne de 3 mois.

Cette différence de régularité peut être expliquée dû fait que ErisJs est maintenu par une seule personne contre 5 pour discord.js.

Dépendances

Discord.js vs Eris: Dépendances
Discord.js vs Eris: Dépendances
  • Eris est dépendant de moins de paquet npm (seulement 3), contrairement à discord.js qui dépend de 8 paquets.

Plus un paquet npm dépend d’un grand nombre d’autres paquets, plus cela augmente la probabilité d’instabilité du paquet. Il suffira d’une erreur dans une des dépendances pour rendre le comportement attendu très différent.

Popularité

Discord.js vs Eris: Popularité
Discord.js vs Eris: Popularité

Discord.js est sans aucun doute beaucoup plus téléchargé et donc utilisé que Eris

Discord.js vs Eris: Téléchargements
Discord.js vs Eris: Téléchargements

Si on observe un le diagramme de npmcharts concernant ces deux paquets (filtré sur la dernière année), on voit que le nombre de téléchargement d’Eris ne fluctue que très peu. Tandis que celui de Discord.js, bien que toujours élevé, varie fortement d’un mois à l’autre.

Communauté

Pour comparer les deux communautés, je vais uniquement me baser sur leur serveur discord respectif.
Je trouve que cela donne un ordre d’idée de la taille et de l’activité de la communauté d’une librairie javascript.

Discord.js

Discord de Discord.js
Discord de Discord.js

Tout d’abord, discord.js possède son propre serveur discord.

Il comptabilise actuellement 21 587 membres avec 12 832 actif à l’heure où j’écris ses lignes (21h13 un mardi).
Soit plus de la moitié des membres qui est actif à l’heure où je vous parle.
Bien que le serveur soit en majorité peuplé d’américains (et qu’il est donc l’après midi chez eux), cela fait un jolie pourcentage d’activité.

Eris

Discord de Eris
Discord de Eris

Eris ne possède pas son propre discord, et le lien d’invitation depuis la documentation officielle renvoi vers le discord officiel « Discord API ».

Ce discord réunis toute une communauté de développeur autour de discord et de plusieurs librairie dans différents langages.
On ne pourra donc pas se fier au nombre de membre ou même au nombre d’actif car il est impossible de savoir exactement combien participent pour Eris.

Néanmoins, en regardant dans le salon js_eris, on voit qu’il y a de la vie et que les problèmes et interrogations trouvent rapidement une réponse.

Stars, subscribers et forks

Discord.js vs Eris: Githud
Discord.js vs Eris: Githud

Que ce soit au niveaux des étoiles, des abonnements et des forks, Discord.js surpasse de beaucoup Eris.

Poids du paquet

Nous approchons de la fin !

Eris pèse donc 599 KB contre 1.01 MB pour Discord.js.
Par conséquent, il est donc plus intéressant au niveau poids.

Exemple Pong

Nous allons conclure ce comparatif avec un Pong pour chaque librairie afin de voir les différences qu’il pourrai y avoir:

Discord.js

const Discord = require('discord.js');
const client = new Discord.Client();

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', msg => {
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
});

client.login('token');

Eris

const Eris = require('eris');
var bot = new Eris("BOT_TOKEN");

bot.on("ready", () => {
    console.log("Ready!");
});

bot.on("messageCreate", (msg) => {
    if(msg.content === "!ping") {
        bot.createMessage(msg.channel.id, "Pong!");
    }
});
bot.connect();

Comme on pouvait s’y attendre, les deux syntaxes sont relativement proches.
On relèvera cependant le passage du token à l’instanciation chez Eris, et la façon de répondre qui diffère.

Je n’ai pour ma part pas de préférence de syntaxe entre les deux, je vous laisse vous faire votre jugement.

Récapitulatif

ComparaisonDiscord.jsEris
Ancienneté5 ans7 ans
Fréquence update15j3 mois
Nombre de mainteneur51
Dépendances83
Popularité+
Communauté+
Stars, subscribers, forksbeaucoupun peu
Poids1.01 MB599 KB
Récapitulatif Discord.js VS Eris

Conclusion

Malgré que ErisJs soit plus vieux de 2 ans par rapport à Discord.js, ce dernier a su développer une plus grande communauté.

Cela est en partie grandement dû au nombre de participant aux projets (5 pour discord.js et 1 pour Eris).

Cependant, au niveau qualité de paquet, ErisJs semble être légèrement avantagé. Il serait plus rapide (j’ai lu ça mais je ne l’ai pas testé) et il possède moins de dépendances.

Je ne l’ai pour ma part que très peu essayé, et je vais m’y atteler dans les prochaines semaines.

Néanmoins je vous conseille de vous faire votre propre avis en testant chacun. Votre affinité avec chacun pourra vous permettre de choisir celui qui correspond le mieux à vos besoin.

N’hésitez pas à me répondre en commentaire !


Articles précédents

Eris vs Discord.js

2 commentaires sur “Eris vs Discord.js

  1. Bonjour !
    Assez simple comme comparaison, j’aurai préféré que ça soit plus approfondi, car comparer que des données venant de GitHub ce n’est pas la meilleure chose à faire. Les gens veulent toujours l’outil le PLUS utilisé, mais ça ne veut pas dire qu’il est le plus performant.

    Dans ce cas-là, Eris est plus performant que Discord.js. Niveau cache il gère mieux, prends moins de RAM et franchement plutôt cool à développer avec !

    Pour ce qui est de son ancienneté, ce n’est pas possible qu’il ait 7 ans puisque Discord a été créée il y a 5 ans (2015).

    1. Bonjour 🙂
      Je comprends ton point de vue et je suis d’accord avec toi, être l’outil le plus utilisé ne veut pas dire l’outil le plus performant.
      Cette comparaison avait pour but d’introduire les deux.

      Comme je n’avais pas encore beaucoup utilisé Eris à cette époque je ne me suis pas trop aventuré dans ses caractéristiques plus technique (j’aurai peut-être dû !).
      Mais tu as tout à fait raison, ayant depuis utilisé Eris, il possède de nombreux points forts qui le rendent plus performant que Discord.js.

      J’avais prévu à la base de refaire un article plus poussé après quelques mois d’utilisation mais le temps m’a manqué depuis.

      Pour ce qui est de l’ancienneté j’ai pû me tromper, mais quand je me rends sur leur paquet npm respectif je retrouve bien les dates de création que j’ai mises dans l’article.
      Pourrais tu me donner tes sources s’il te plait afin que je puisse regarde ? 🙂

      En tout cas je te merci pour ce beau commentaire constructif !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut