JeuWeb - Crée ton jeu par navigateur
Elixir - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Elixir (/showthread.php?tid=7319)



Elixir - niahoo - 12-02-2015

Hello,


Je suis en ce moment en train d'implémenter la partie web de mon jeu avec un langage nommé Elixir. Je le surveille depuis un petit moment, mais réticent au départ, ce n'est que depuis une semaine que je me suis laissé happer. Je ne le regrette pas. On a vraiment là quelque chose à la fois sympathique (hormis la syntaxe ruby-like qui me saoule mais c'est la mode ...) et puissant.

Voici donc le site officiel : http://elixir-lang.org/

C'est un Functional Programming language qui excelle dans les programmes concurrents et distribués, donc parfait pour faire des serveurs de jeux web multijoueurs.

Pour ceux qui connaissent Erlang, Elixir un langage qui compile en bytecode pour la Erlang Virtual Machine (EVM ou BEAM/HiPE pour les intimes). On a donc toutes les fonctionnalités d'Erlang mais avec des capacités plus poussées pour avoir un code encore plus simple et court. L'interopérabilité avec les librairies Erlang est d'ailleurs de 100%, les types de données (listes, tuples, process) sont les mêmes. Plus d'infos à ce sujet : http://www.theerlangelist.com/2014/01/why-elixir.html


Bon je sais qu'ici c'est PHP qui est roi, mais si jamais vous vous intéressez à Erlang ou Elixir faites moi signe Wink


RE: Elixir - Sephi-Chan - 12-02-2015

Moi aussi ça m'attire à fond. Il faut dire que j'avais des prédispositions puisque j'aime beaucoup Erlang.

J'attends 2 choses de l'engouement pour Elixir a 2 :

- Apporter un peu de beauté au monde de Erlang, où les sites sont plutôt vilains, pénibles à utiliser ou inadaptés aux nouveaux venus, etc. C'est dommage car le contenu est riche et là, mais difficile d'accès (à quelques exceptions genre Learn you some Erlang) .
- Montrer aux gens ce qu'on peut faire, comment le faire et pourquoi le faire ainsi. Dans la communauté Erlang, on est très peu guidé. Exemple : Rebar, on t'explique comment utiliser chaque commande, mais personne ne te dit pourquoi utiliser quelle commande.

De manière générale, j'ai encore aujourd'hui du mal à imaginer la façon dont je développerais un jeu avec Elixir/Erlang. J'ai du mal à imaginer ce qui doit se passer quand je lance ou arrête l'application : relancer tous les process depuis un état ? Si oui, comment j'ai stocké ça ? Du Mnesia ou du bon vieux SQL, etc.

En somme c'est vraiment un changement technologique énorme pour nous autres développeurs Web. On passe d'un modèle où finalement on construit à chaque requête Web un snapshot de notre système, sur lequel on intervient avant de le gêler à nouveau à un modèle où le système vit en permanence et avec lequel on interagit.

J'adorerais vraiment construire mon jeu avec un tel système ; je n'en suis pas si éloigné avec Seelies, où tout se fait dans des background jobs mais j'aurais besoin d'un coach. pour me guider dans l'élaboration des quelques systèmes de base (pour prendre le pli).


RE: Elixir - niahoo - 12-02-2015

Je pourrais essayer de décrire l'architecture de mon jeu si je m'accorde un peu de temps. Ça pourrait être pas mal. Ensuite je suis pas super expérimenté non plus donc ça serait pas un truc à suivre à la lettre, mais je pourrais expliquer mes choix ce qui donnerait matière à réflexion.

Ensuite pour Erlang j'ai pas trop de mal à trouver de la doc. Et puis il y a un avantage certain : les développeurs connus sont peu nombreux, et le code est facile à lire. Ce qui fait que simplement lire du code t'apprend énormément.

C'est vraiment un avantage du langage : tu est perdu dans mille fonctions, tu codes tout un soir et comme après toute soirée de code ton cerveau est rempli d'informations. Le lendemain, ou même six mois plus tard, tu ouvres ton module, tu te rends compte qu'il fait même pas 400 lignes de fonctions simples et courtes, et tu remontes tout dans ta tête très rapidement.

Avec Elixir c'est différent, grâce aux macros et au fonctionnalités comme "use", "require", le code est encore plus court, mais tu dois un peu jongler avec les fichiers pour t'y retrouver dans les librairies (surtout quand tu essaies de piger comment c'es monté). Mais je pense qu'après plus de temps sur Elixir ça devient plus naturel, puisque c'est quelque chose dont j'ai l'habitude en PHP par exemple. Je parle de l'héritage, des méthodes magiques, etc.


RE: Elixir - niahoo - 12-02-2015

Bon allez je me motive pour écrire un ou deux articles sur mon jeu. Est-ce que tu as des points qui t'intéresseraient que j'évoque (un cookie à qui me refait cette phrase de façon grammaticalement correcte).


RE: Elixir - Aedius - 12-02-2015

Je connais pas du tout Elixir, ni Erlang ...

quelqu'un saurait me dire les différences avec nodejs ? ( je chercherais à midi si je trouve des articles à ce propos )


RE: Elixir - niahoo - 12-02-2015

Ben, pour faire très court car tu trouveras pas mal de lecture en ligne à ce sujet, en termes de langages, les différences avec Node reviennent aux différences entre Erlang/Elixir et Javascript bien sûr. Donc d'un côté programmation concurrente avec des processus, de l'autre programmation monothread orientée Objet/Prototype.

En termes de plateformes, la principale différence est que la plateforme Erlang est en tous points conçue pour être fiable et résister aux problèmes d'un système en production : bugs, hardware qui pète, serveur qui s'éteint, etc. Node, je ne connais pas assez, mais bon de mon point de vue c'est juste ... ben un runtime javascript quoi, conçu pour pouvoir proposer javascript ailleurs que dans un browser ; ce qui est d'ailleurs très pratique : j'utilise Node tous les jours avec gulp, bower, npm, etc, et je trouve que ça marche très bien !


RE: Elixir - Aedius - 12-02-2015

Okiii

Merci, je vais me renseigner davantage sur Erlang via Elixir Big Grin


RE: Elixir - niahoo - 18-08-2015

Wala j'ai pondu un petit article, y en aura d'autres qui viendront au fur et à mesure de mon développement. Mais pas très rapidement Smile Pour le moment c'est juste une présentation très générale des frameworks que j'utilise

http://ooha.in/article/2015/08/18/elixir-et-phoenix-pour-un-jeu


RE: Elixir - niahoo - 30-08-2015

Le framework web pour Elixir, Phoenix, vient de sortir en version 1.0.