Générateur aléatoire : Votre avis sur les langages

Résolu/Fermé
D20-D100 Messages postés 2 Date d'inscription lundi 23 janvier 2023 Statut Membre Dernière intervention 23 janvier 2023 - Modifié le 23 janv. 2023 à 01:59
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 - 24 janv. 2023 à 16:35

Bonjour la communauté,

J'ai besoin de votre avis.

Je suis en train d'apprendre à coder et pour me faire la main, je me suis lancé comme défi de créer des générateurs aléatoires. Je viens de lancer la V1 : https://desenligne.com

Je suis parti sur du HTML/JS car ce sont les technos que je commence à maîtriser et ça tourne pas trop mal.
À votre avis, mon choix de langage est bon ou vous en conseilleriez d'autres pour une V2 ? Pour le moment c'est statique, mais j'aimerais à terme ajouter des animations (voir les dés rouler par exemple, ou une pièce tourner).

Merci pour vos avis.


Windows / Chrome 109.0.0.0


3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
23 janv. 2023 à 07:04

Bonjour

Le choix d'un langage dépend avant tout des besoins et des contraintes....

Si c'est pour du web, le javascript reste une bonne solution. (Pour les animations, il te faudra également te pencher sur le CSS)


3
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
Modifié le 23 janv. 2023 à 14:53

Bonjour,

Réponse courte

À ta place, je resterais en javascript en utilisant d3js (voir notamment cet exemple).

Réponse détaillée

Comme le dit Jordane45 #1, si ton objectif est de faire une application web (qui se lance dans le navigateur), javascript est un bon choix, en s'appuyant sur des librairies javascript qui vont te permettre de développer un code efficace et portable (indépendant du navigateur). Le calcul de l'animation doit être fait sur le client (le navigateur), pas sur le serveur web, car sinon tu auras dans l'absolu un problème de passage à l'échelle si de nombreux clients se connectes. Cela te restreins donc à tous les langages exécutés sur le navigateur.

  • Sans plugin dédié installé dans le navigateur, le seul choix possible est javascript, quitte à s'appuyer sur des librairies javascript pour faciliter le développement. Cela ne requiert aucune installation spécifique de l'utilisateur. Je pense en particulier à d3js :
  • Tu pourrais considérer l'utilisation d'un plugin, qui te permet d'envisager plein de technologies (dont de nombreuses sont aujourd'hui désuètes voire même plus supportées). Je pense notamment aux applets flash, java, silverlight, etc. Cet avis n'engage que moi, mais je pense que tout ceci va disparaître progressivement au profit de technologies comparables à d3js et WebGL.

Il y a cependant quelques "problèmes" :

  • La programmation javascript est assez ingrate, car son bon fonctionnement dépend du navigateur. Réaliser un code javascript qui marche sur l'ensemble des navigateurs est souvent assez compliqué et oblige à s'appuyer sur des librairies javascript qui vont permettre de s'affranchir du navigateur sous-jacent (d3js, jquery, etc.)
  • Je trouve que d3js est assez compliqué à prendre en main. Son utilisation suit un design assez particulier et qu'on n'est pas forcément habitué à voir dans d'autres langages de programmation.

Si l'animation doit être calculée par un programme dédié (donc typiquement lancé depuis ton explorateur de fichiers), un lancer de dé peut être réalisée correctement dans à peu près n'importe quel langage raisonnablement évolué.

  • C'est tellement "simple" que tu n'as pas besoin de faire faire le calcul par le GPU.
  • Du python, est bien plus simple à coder et suffit amplement. C'est un langage suffisamment simple à prendre en main et puissant pour débuter en programmation. Il est notamment fréquemment utilisé dans les cours de programmation à partir du lycée.
  • L'application est suffisamment simple pour ne pas nécessiter un langage aussi performant (et compliqué à prendre en main) que le C++.
    • L'utilisation du C++ n'a de sens que si on a besoin d'énormément de puissance de calcul et/ou on veut un jeu moins énergivore (que du python par exemple). C'est le cas des "gros" jeux vidéos en 3D notamment.

Bonne chance

0
D20-D100 Messages postés 2 Date d'inscription lundi 23 janvier 2023 Statut Membre Dernière intervention 23 janvier 2023
23 janv. 2023 à 19:32

Merci pour ta réponse très complète, c'est la 1ʳᵉ fois que j'entends parler de d3js, je vais me pencher dessus.
Concernant les ressources, je préfère effectivement rester sur de la ressource client plutôt que serveur :)

J'ai pas mal de lecture et de test à faire, mais merci pour tes précieux conseils, tu m'ouvres quelques pistes de réflexion pour Dés en Ligne, je sens que je vais m'amuser avec tout ça ????

0
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748 > D20-D100 Messages postés 2 Date d'inscription lundi 23 janvier 2023 Statut Membre Dernière intervention 23 janvier 2023
24 janv. 2023 à 16:35

Hum je te le souhaite, pour moi la prise en main de d3js a été... hum :-) douloureuse ;-) Il existe peut être des frameworks javascript (basés ou non sur d3js) plus facile à prendre en main, mais le javascript n'est pas ma spécialité, donc je te laisse le soin de faire ton état de l'art.

0
PierrotLeFou
23 janv. 2023 à 02:01

Je ne connais pas vraiment le JS, mais je crois que c'est un langage interprété.
Pour faire des animations, ça prend une certaine puissance de calcul. Ça prendrait du code sur un serveur.
Je le ferais en C++ car il y a plusieurs fonctions pour l'aléatoire et le graphique.
Enfin, c'est mon idée ...

-2