J'envisage les deux mêmes solutions que vous, gotts, pour plusieurs projets.
Jusqu'à présent, le meilleur outil que j'ai trouvé pour les départager dans le cadre d'un projet donné est de savoir si je dois utiliser Javascript. Un système existant que je cherche à migrer est déjà écrit en Javascript, donc sa prochaine version sera probablement réalisée en node.js. D'autres projets seront réalisés dans un framework web Erlang car il n'y a pas de base de code existante à migrer.
Il faut également tenir compte du fait qu'Erlang ne se limite pas à plusieurs cœurs, mais peut s'étendre à un centre de données entier. Je ne vois pas de mécanisme intégré dans node.js qui me permette d'envoyer un message à un autre processus JS sans me soucier de la machine sur laquelle il se trouve, mais cela est intégré dans Erlang aux niveaux les plus bas. Si votre problème n'est pas assez important pour nécessiter plusieurs machines ou s'il ne nécessite pas plusieurs processus coopératifs, cet avantage n'est pas susceptible d'avoir de l'importance et vous devriez donc l'ignorer.
Erlang est en effet une piscine profonde dans laquelle il faut plonger. Je vous suggère d'écrire d'abord un programme fonctionnel autonome avant de commencer à créer des applications Web. Une première étape encore plus facile, puisque vous semblez à l'aise avec Javascript, est d'essayer de programmer JS dans un style plus fonctionnel. Si vous utilisez jQuery ou Prototype, vous êtes déjà engagé dans cette voie. Essayez de rebondir entre la programmation fonctionnelle pure en Erlang ou l'un de ses proches (Haskell, F#, Scala...) et le JS fonctionnel.
Une fois que vous êtes à l'aise avec la programmation fonctionnelle, cherchez l'un des nombreux frameworks web Erlang ; vous ne devriez probablement pas écrire votre application directement dans quelque chose de bas niveau comme inets
à ce stade avancé. Regardez quelque chose comme Azote par exemple.
0 votes
Vous pouvez utiliser JavaScript comme un langage fonctionnel avec underscorejs.org
2 votes
@ToddMoses êtes-vous sûr d'avoir commenté la bonne question ?
2 votes
Pommes et Oranges. Node.JS (à sa base) est libevent (C) + interop Javascript. Erlang est une implémentation IO totalement personnalisée. Node.JS est fait pour les applications monofilaires. Votre dilemme est de savoir si vous voulez un emploi chez Facebook/Google, ou si vous voulez faire des logiciels qui déchirent.
0 votes
@VansS Kickass, bien sûr. Mais je ne suis pas sûr qu'Erlang soit aussi rapide qu'un backend basé sur JS. Un processus Erlang travaille sur une copie des données qui lui sont transmises, pour des raisons de sécurité. Et la copie prend du temps (par rapport aux références). Une application de dossier médical électronique basée sur Erlang (en fait, une application d'entreprise) peut-elle gérer 1000 utilisateurs simultanés dans un hôpital ? Si oui, j'aimerais recommander à mon patron de commencer à porter notre ancienne application EMR basée sur JavaEE vers Erlang :-)