2011-03-25 4 views
4

Il semble qu'il y ait beaucoup de choses intéressantes à propos du framework Akka (je ne comprends pas vraiment le framework, j'espère y aller bientôt).
Est-il recommandé d'utiliser Akka dans Clojure? Est-il sensé d'utiliser Akka comme modèle de concurrence dans les projets Clojure et d'abandonner les installations intégrées?Akka en tant que modèle de concurrence pour Clojure

Répondre

11

Clojure a beaucoup de support intégré pour gérer la concurrence. Il n'est pas nécessaire d'intégrer un acteur libéral dans votre projet, sauf si vous avez réellement besoin d'acteurs. Votre question ne détaille pas l'architecture ou la conception de votre système, donc je ne peux pas vraiment dire si les acteurs sont nécessaires pour votre projet, mais je ne vais certainement pas y aller directement. Jetez un coup d'œil aux agents de Clojure et aux autres primitives de concurrence. Ils devraient répondre à vos besoins tout à fait bien.

En ce qui concerne Akka (ou toute bibliothèque d'acteur) comme modèle de concurrence pour Clojure, ce n'est pas la façon dont le langage a été conçu. Vous pouvez choisir d'utiliser une bibliothèque d'acteurs pour votre application, mais ce n'est pas l'approche que le langage Clojure a adopté.

+3

Clojure n'a aucun support pour la distribution, non? Donc, si vous voulez passer à plus d'une machine, que faites-vous dans Clojure? –

+0

il existe une "bibliothèque d'acteurs pour Clojure modélisée d'après la plate-forme Erlang OTP". (et erlang était une source d'inspiration pour akka ??) https://github.com/antoniogarrote/jobim et http://antoniogarrote.wordpress.com/2010/09/03/jobim-an-actors-library-for-clojure/ – jneira

+12

C'est vrai, il n'y a pas de support pour la distribution. La plupart du temps, les gens pensent qu'ils ont besoin de distribution et se retrouvent dans un tas d'acteurs enchevêtrés quand tout ce dont ils avaient vraiment besoin était une file d'attente ou quelque chose de simple. Ce n'est pas le cas pour tout le monde, mais c'est le cas courant :) – abedra

4

Cela dépend si votre projet utilise déjà les fonctions intégrées. Cela dépend aussi si votre entreprise/projet tolère l'idée en premier lieu, tolère les conditions de licence de la bibliothèque, et si vous/votre groupe êtes disposé à vivre avec le soutien de la communauté ou à payer pour le support commercial.

Voir:

En outre, il descendra de préférence pour les développeurs de votre projet, maintenabilité du code que vous écrirait vs la norme installations, niveau de soutien à la bibliothèque, acceptation de la bibliothèque au sein de la communauté de développement logiciel Clojure, etc.

Mon conseil est de l'évaluer et de réaliser des prototypes de preuve de concept comparatifs avec toutes les technologies que vous envisagez.

Ce type de conseil est applicable lors de l'ajout de tout code tiers à un projet.

Accepter aveuglément l'avis de quelqu'un d'autre pourrait vous coûter beaucoup de temps, d'efforts, d'argent et de soutien de la part d'autres développeurs.

+0

Notez que je ne connais pas grand-chose de Clojure, ou de cette bibliothèque, mais j'ai évangélisé et obtenu l'acceptation de bibliothèques tierces dans plusieurs projets/entreprises. J'espère que cela aide :) –

+0

C'est l'un des conseils les plus professionnels et pragmatiques de tous les temps. – Chiron

1

Pulsar projets apporte des threads légers, CSP et des acteurs de type Erlang pour Clojure.

Questions connexes