JeuWeb - Crée ton jeu par navigateur
Au sujet de Erlang - 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 : Au sujet de Erlang (/showthread.php?tid=5324)



Au sujet de Erlang - srm - 26-03-2011

Quelqu'un peut me vendre Erlang ?
Me montrer des trucs cool avec, pourquoi il est si bien etc ?

Merci Smile


RE: Au sujet de Erlang - niahoo - 26-03-2011

Hum la dernière fois que je t'a montré un bout de code erlang tu as pris peur rappelle toi !


RE: Au sujet de Erlang - srm - 26-03-2011

Oui, tu n'y a pas montré des forces hein Smile
Moi je veux des trucs cool et puissant en Erlang, comme ce que j'ai déjà montré en Scala.

J'ai été sur le channel #erlang de freenode pour leur demander ce qu'il y avait de trop cool dans ce language, des exemples etc.
Visiblement il y a deux choses surtout de super cool, c'est ça vm et ça gestion des nodes (donc interconnecter entre elles les vm) et la couche OTP, à part ça je ne vois pas.


RE: Au sujet de Erlang - niahoo - 26-03-2011

La communauté. Elle est trop petit mais on les loin des ayatollah du ruby qui veulent convaincre la terre entière que leur langage est le meilleur, et loin des boulets du php qui vont appeller le créateur du langage "Dieu".

Quand tu bosses sur te soft erlang, genre yaws, tu discutes directement avec les mecs qui ont créé ça. C'est pratique et ils sont cool. Mais ne soyont pas hypocrites, c'est justement le fait qu'erlang n'est pas connu qui permet ça.

Des trucs puissants j'ei envie de dire teste par toi même ! Scala a pompé sur erlang son système de messages pour la concurrence. Y a moyen de s'amuser avec ça. Tu peux te faire un chat web sans base de données en une après midi ! (serveur web compris même si tu prendras plutot un framework pour la couche HTTP)

Essaie d'installer ejabberd, le serveur jabber en erlang. Je pense que c'est un must dans un jeu web d'utiliser ça plutôt qu'une solution maison moisie.

Ensuite, fais des calculs mathématiques difficiles, et utilises tes coeurs de processeur pour les résourdre en parallèle.

C'est un tout petit langage,à l'inverse de ruby il n'y a pas 50 symboles et constructions à retenir ([{}]|->fonction() atom Variable, if case of catch end ,;.#record), par contre à l'inverse de ruby c'est pas très lisible. mais le code est court.
Sublime text sais le colorer,
l'IDE officiel est emacs, faut aimer.

Et puis surtout c'est de la programmation fonctionnelle. Le concept d'objet n'est plus appliqué à chaque chose, (mais tu peux en créer quand même -- en quelque sorte...).
Tu as une base de données incluse, mnesia, qui a ses qualités et ses défauts, un ou deux pilotes pour postgresql, un pilote odbc, jinterface pour utiliser les librairies java, et une librairie standard bien faite mais très spécialisée. En ce sens, erlang est parfait pour un serveur de jeu en arrière plan, servi aux joueurs par Rails ou un site php.


RE: Au sujet de Erlang - srm - 26-03-2011

D'accord merci Smile
Pour le système de message par concurrence oui je sais, d'ailleurs Scala ne s'en cache pas Smile

Tu peux me faire l'exemple du chat web que je vois à quoi ressemblerait le code ?
Car clairement si c'était 100% objet plutôt que 100% fonctionnel j'accrocherais plus rapidement Smile


RE: Au sujet de Erlang - niahoo - 27-03-2011

Hmm j'ai pas vraiment le temps. Comme je te l'ai dit il te faudra une bonne bonne aprem pour tout construire.

ensuite il te faut oublier le concept d'objet tel qu'il existe en ruby ou en java. Tu ne peux pas vouloir accrocher si erlang était orienté objet, ça n'a pas de sens, il ne l'est pas un point c'est tout.

J'ai envie de dire, les langages fonctionnels ne s'embarrassent pas des notions d'objet mais ça serait du troll. Ils sont "fonctionnels" (vive la langue française) ; tu n'écris pas comment ton programme se déroule, tu décris plutot ce qu'il doit faire en écrivant des suites de règles A --> B, B --> C