9
votes

Comment expliqueriez-vous les acteurs à un non programmeur?

Eh bien, le titre est à peu près: si je me suis assis une île non-Techie / My My / My Maman / Cocker Spaniel Boy / Cocker devant vous et vous a demandé d'expliquer Acteurs à eux, où commenceriez-vous? Je demande parce que mon Le projet de maîtrise les implique à une assez grande grande mesure, Et chaque jour, quelqu'un me demande de leur dire ce que je fais. Quand je parle à d'autres personnes sur mon parcours, ce n'est pas si mauvais - généralement le concept est étranger mais compréhensible - mais récemment mon colocataire, un chimiste, m'a demandé de l'expliquer à elle et de dire que je me suis battue serait un joli humustueux euphémisme.

Je recherche une sorte d'explication qui transmet l'idée, plutôt que les fondements techniques. Cela peut être une métaphore et il ne faut pas être précis: je veux juste leur faire comprendre ce que je fais avec eux. Des idées?


4 commentaires

Les gens votent-ils à la fermeture de «pas une vraie question» simplement parce qu'ils ne peuvent pas penser immédiatement à une réponse?


Pourquoi ai-je l'impression de faire votre projet de maîtrise?


Heh ... Je suis assez sûr que vous n'êtes pas, Joe. Mon projet consiste à écrire un cadre qui utilise des acteurs pour créer des processus modulaires exécutés sur le client et le serveur, ainsi qu'un certain nombre de cas de test. J'ai du mal à expliquer des choses techniques de manière non technique, c'est pourquoi j'ai posé cette question.


Cette question semble être hors sujets car il n'est pas dans les limites de la discussion décrite dans le centre d'aide.


5 Réponses :


5
votes

Je vais essayer une simple métaphore:

Les acteurs sont des gens qui font du travail dans leurs maisons. Devant chaque maison, il y a une boîte aux lettres. Afin de communiquer les uns avec les autres et de faire du travail, les messages sont envoyés entre les acteurs.


1 commentaires

Ceci est essentiellement exactement le modèle ToonTalk utilise pour la concurrence. Sauf que vous envoyez un "oiseau" au lieu de maillonner une lettre. toonTalk.com/english/concur.htm



1
votes

Je ne suis pas sûr que cela sera bon, mais je vais essayer:

Imaginons un marché du Moyen-Orient classique. Il y a des acheteurs (supposons qu'ils ne font que marcher des touristes) et des vendeurs. Les acheteurs se promenent à travers le marché et les vendeurs criminalisent les noms de leurs produits: tapis !! Espèce!!! Les chevaux!!! Tanies !!! Bijoux !!! Et ainsi de suite ... Certains acheteurs ne sont pas intéressés par un type de marchandises spécifiques et d'aller au magasin suivant, mais certains acheteurs s'intéressent et demandent: "Combien c'est?", Vendeur: "50 $", acheteur: " Pouvez-vous me donner un rabais? ", Et ainsi de suite ...

Les acteurs sont des acheteurs et des vendeurs ici. Les vendeurs envoient des messages avec des types de leurs biens. L'acheteur peut sauter un message ou peut envoyer un message pour demander le prix.


0 commentaires

10
votes
  • Il peut y avoir de nombreux acteurs. Tous les acteurs agissent "en même temps". La concurrence est une partie clé de ce modèle.

  • Les acteurs ne peuvent pas savoir ce que pensent les autres acteurs. Le seul moyen de déplacer des informations est avec un message. (Aucun État partagé)

  • Les acteurs peuvent recevoir des messages et agir sur eux par:

    • faire calcul avec les données en eux

    • Envoi de messages à d'autres acteurs

    • Création d'autres acteurs.

    • ignorer / jeter le message.

      Ceci fait fondamentalement les acteurs comme ... des gens. Les gens ne savent pas ce que l'autre pensent, ils doivent envoyer des messages pour transmettre des informations, ils ont le choix d'ignorer les messages entrants, de les envisager ou de communiquer avec d'autres personnes. Les mauvaises choses aléatoires peuvent arriver aux gens. Beaucoup de gens font tous les choses en même temps. Pour gérer plus de charge, ajoutez plus de personnes.

      En ce qui concerne votre projet Masters, je vous suggère de découvrir le cadre Web Erlang. Le langage de programmation Erlang est basé sur le modèle de l'acteur et est utilisé pour un grand effet Dans les systèmes évolutifs, y compris les commutateurs téléphoniques ... et le Système de messagerie Facebook .


4 commentaires

C'est à peu près exactement ce que je cherchais. Brillant. Concernant Erlang: J'ai fait des recherches et ça a fière allure. Cependant, le cadre que j'écris est destiné à faciliter l'utilisation des acteurs sur le Web et à apprendre une nouvelle langue est un peu beaucoup pour la plupart des gens, alors je suis allé avec Python et j'ai construit mes propres classes qui se comportent comme des acteurs. Je suis tenté de le porter dans l'avenir cependant.


C'est comme dire "j'ai entendu des threads étaient géniaux ... nous devons donc nous avoir besoin de porter des threads sur le Web!" ... bien le navigateur Web peut déjà être considéré comme un acteur ... il envoie un message, ne partage pas l'État Avec le serveur, attend la réception en attente d'un autre message et le calcul de l'ordinateur.


Erlang prend des acteurs "tout le long" ... et prend en charge des millions d'acteurs simultanés (appelés processus) sur un nœud et de transparence à plusieurs nœuds tout en manipulant automatiquement toute la communication. C'est bien d'avoir ce genre de "racines" lorsque vous essayez vraiment de prendre une grande tâche simultanée.


Le navigateur Web partage absolument les caractéristiques avec les acteurs. Ce que je veux faire, c'est créer un environnement permettant aux utilisateurs de créer des extensions sur des sites Web pouvant facilement interfacer avec le reste du site, sur le client et le serveur. Ce que je veux, c'est beaucoup de minuscules petits processus qui font une chose, et je veux que l'utilisateur puisse les éteindre et éteindre. Je n'ai pas besoin de la tolérance et de l'évolutivité de l'Erlang - j'ai besoin d'acteurs qui fonctionnent dans JavaScript ainsi que sur le serveur. J'ai certainement besoin de lire plus sur Erlang si je pense que je pourrais apprendre beaucoup de jouer avec elle.



1
votes

acteur - est quelque chose que nous pouvons aussi appeler sujet. Les acteurs font quelque chose avec des objets. L'acteur est des appels, car c'est quelqu'un qui agit.


0 commentaires

0
votes

Je dirais: "Les acteurs sont un moyen simple de dire aux ordinateurs de faire plus d'une chose en même temps. Ils sont différents des autres moyens de dire aux ordinateurs de faire plus d'une fois en même temps parce qu'ils prennent moins de ressources que certaines des alternatives et parce qu'ils sont plus faciles à utiliser les programmeurs à utiliser correctement que certaines des autres alternatives. "


1 commentaires

Si mon public veut réellement savoir Comment fonctionne les acteurs, j'irais ensuite avec l'exemple de personnes dans différentes maisons qui ne se parlent que par la mise en place de lettres dans des boîtes aux lettres, comme @Dario déjà suggéré. Cependant, la plupart du temps, je ne pense pas que ma femme / mère / voisin / voisin veuille réellement autant de détails. ;-)