72 votes

Pourquoi avez-vous décidé "contre" d'utiliser Erlang?

Avez-vous réellement "essayé" (signifie programmé dans, pas seulement lire un article dessus) Erlang et décidé contre pour un projet? Si oui, pourquoi? De même, si vous avez choisi de revenir à votre ancienne langue ou d’utiliser un autre langage fonctionnel tel que F #, Haskell, Clojure, Scala ou autre chose, c’est ce qui compte aussi et de préciser pourquoi.

49voto

Edward Kmett Points 18369

Je suis retourné à Haskell pour mes projets personnels de Erlang pour la simple raison de Haskell est incroyable système de type. Erlang vous donne une tonne d'outils pour les gérer quand les choses vont mal. Haskell vous donne les outils pour vous permettre d'aller de mal en premier lieu.

Lorsque vous travaillez dans une langue avec un système de types fort vous sont effectivement prouver gratuit théorèmes sur votre code chaque fois que vous compilez.

Vous bénéficiez également d'un tas de surcharge de sucre de Haskell typeclass machines, mais c'est largement secondaire pour moi -- même si elle ne permettez-moi d'exprimer un certain nombre d'abstractions qui serait terriblement bavard ou non-idiomatiques et inutilisable en Erlang (par exemple, Haskell catégorie-les extras).

J'aime Erlang, j'aime ses canaux et son évolutivité sans effort. Je me tourne vers elle quand ce sont les choses dont j'ai besoin. Haskell n'est pas une panacée. Je donne une meilleure compréhension de la consommation d'espace. J'abandonne le magique, un passage du garbage collector. J'abandonne OTP modèles et toutes que sans effort de l'évolutivité.

Mais difficile pour moi de renoncer à la couverture de sécurité, qui, comme on le dit communément, en Haskell, si elle typechecks, il est probablement correct.

26voto

Shaun Points 2632

Nous utilisons Haskell, OCaml et (maintenant) F# donc, pour nous, il n'a rien à voir avec le manque de C-syntaxe. Plutôt nous ignorer Erlang parce que:

  • C'est dynamiquement typés (nous sommes fans de Haskell type de système)
  • Ne fournit pas un "vrai" type de chaîne (je comprends pourquoi, mais c'est ennuyeux que cela n'a pas été corrigé au niveau du langage encore)
  • A tendance à avoir une mauvaise (incomplètes ou non maintenue) pilotes de base de données
  • Il n'est pas piles incluses et ne semble pas avoir une communauté de travail sur la correction de ce. Si c'est le cas, il n'est pas très visible. Haskell au moins a Hackage, et je suppose que c'est ce qui nous a le choix de cette langue sur une autre. Dans les environnements Windows, F# est sur le point d'avoir l'avantage ultime ici.

Il y a probablement d'autres raisons que je ne peux pas penser à ce moment, mais ce sont les principaux points.

25voto

Warren Young Points 16324

La meilleure raison pour éviter d'Erlang est lorsque vous ne pouvez pas s'engager à la manière fonctionnelle de la programmation.

J'ai lu un anti-Erlang blog coup de gueule il y a quelques semaines, et l'auteur des critiques d'Erlang est qu'il ne pouvait pas comprendre comment faire une fonction retourne une valeur différente à chaque fois qu'il l'a appelé avec les mêmes arguments. Ce qu'il n'avions pas vraiment compris, c'est que Erlang est de cette façon sur le but. C'est comment Erlang parvient à très bien sur plusieurs processeurs sans autorisation explicite de verrouillage. Purement fonctionnelle, la programmation est des effets secondaires sans programmation. Vous pouvez le bras de torsion Erlang en travaillant comme nos rodomontades blogueur voulu, en ajoutant des effets secondaires, mais dans ce cas, vous jetez la valeur Erlang offre.

Pure programmation fonctionnelle n'est pas la seule bonne façon de programme. Tout ne doit pas être mathématiquement rigoureuse. Si vous déterminez votre demande serait mieux écrites dans une langue qui abuse du terme "fonction", mieux croix Erlang hors de votre liste.

16voto

Jon Gretar Points 2846

J'ai utilisé Erlang dans quelques projets déjà. J'ai souvent utiliser pour les services restful. Où je ne l'utilise pas, il est cependant complexe en front end applications web où des outils comme Ruby on Rails, qui sont beaucoup mieux. Mais pour le powerbroker derrière les scènes que je ne connais pas de meilleur outil que Erlang.

J'utilise aussi quelques applications écrites en Erlang. Je utiliser CouchDB et RabbitMQ un peu et j'ai mis en place quelques EJabberd serveurs. Ces applications sont le plus puissant, le plus simple et d'outils flexibles dans leur domaine.

Ne voulant pas utiliser Erlang, car il n'utilise pas de JVM est dans mon esprit assez ridicule. La JVM n'est pas un outil magique qui est le meilleur de tout faire dans le monde. Dans mon esprit la possibilité de choisir parmi un arsenal d'outils et de ne pas être coincé dans une seule langue ou le cadre est ce qui sépare les experts du code des singes.

PS: Après lecture de mon commentaire en contexte, j'ai remarqué il a regardé comme si j'étais l'appel de oxbow_lakes un code de singe. Je n'étais pas vraiment et m'excuse si il l'a pris comme ça. J'ai été généralisations à propos des types de programmeurs et jamais je ne voudrais appeler une personne, par exemple un nom négatif basé sur un commentaire de lui. Il est probablement un bon programmeur, même si je l'inciter à ne pas faire la JVM d'un briseur d'affaire.

9voto

Will Points 30630

Alors que je n'ai pas, d'autres sur l'internet ont, par exemple

Nous avons étudié les mérites relatifs de C++ et Erlang dans la mise en œuvre parallèle sur une acoustique de lancer de rayons algorithme pour la Marine AMÉRICAINE. Nous avons trouvé une beaucoup plus petite courbe d'apprentissage et meilleur environnement de débogage pour les en parallèle Erlang que pour pthreads base de la programmation en C++. Notre C++ mise en œuvre a surperformé l' Erlang programme d'au moins 12x. Les tentatives d'utilisation d'Erlang sur IBM Cellule ÊTRE microprocesseur ont été frustrés par Erlang de la mémoire. (Source)

Et quelque chose de plus proche de mon coeur, je me souviens de la lecture à la suite de l'ICFP concours:

Le codage a été très simple, la traduction de pseudo-code en C++. J' pourrait avoir utilisé le Java ou le C#, mais je suis à le point où la programmation à un haut niveau en C++ est tout aussi facile, et je voulu conserver la possibilité de rapidement de descendre dans certains de bas niveau peu-tourner si il est descendu à elle. Erlang est mon autre favori de la langue pour le piratage, mais était inquiet sur l'exécution dans certaines performances problème que je ne pouvais pas sortir de moi-même. (Source)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X