2010-02-25 8 views
9

Nun, der Titel ist es so ziemlich: wenn ich ein Nicht-Technikfreak/meine Mutter/Zwölfjährigen Junge/Cocker Spaniel vor Ihnen saß und Sie gebeten, actors zu ihnen zu erklären, wo würdest du anfangen? Ich frage, weil meine master's project sie zu einem ziemlich großen Grad involviert, und jeden zweiten Tag bittet mich jemand, ihnen zu sagen, was ich mache. Wenn ich mit anderen Leuten auf meinem Kurs rede, ist es nicht so schlimm - normalerweise ist das Konzept fremd, aber verständlich -, aber meine Mitbewohnerin, eine Chemikerin, hat mich vor kurzem gebeten, es ihr zu erklären, und zu sagen, dass ich damit zu kämpfen hätte Untertreibung.Wie würdest du einem Nicht-Programmierer Schauspieler erklären?

Ich bin auf der Suche nach einer Art Erklärung, die die Idee vermittelt, anstatt die technischen Grundlagen. Es kann eine Metapher sein, und es muss nicht präzise sein - ich möchte sie nur verstehen lassen, was ich mit ihnen mache. Irgendwelche Ideen?

+5

Stimmen die Menschen als "keine echte Frage", weil sie nicht sofort an eine Antwort denken können? –

+1

Warum habe ich das Gefühl, dass ich das Projekt Ihres Meisters mache? –

+4

Heh ... Ich bin mir ziemlich sicher, dass du es nicht bist, Joe. Mein Projekt besteht darin, ein Framework zu schreiben, das Akteure verwendet, um modulare Prozesse sowohl auf dem Client als auch auf dem Server zu erstellen, sowie eine Reihe von Testfällen. Es fällt mir schwer, technische Dinge auf nicht-technische Art zu erklären - darum habe ich diese Frage gestellt. –

Antwort

10
  • Es kann viele Schauspieler geben. Alle Akteure agieren "zur gleichen Zeit". Die Nebenläufigkeit ist ein Schlüsselelement dieses Modells.

  • Akteure können nicht wissen, was andere Akteure denken. Die einzige Möglichkeit, Informationen zu verschieben, ist eine Nachricht. (Kein Shared-Zustand)

  • Schauspieler können Nachrichten empfangen, und wirken auf sie durch:

    • tun Berechnung mit den Daten in ihnen

    • Senden von Nachrichten an andere Akteure

    • andere Schauspieler erschaffen.

    • Ignorieren/Verwerfen der Nachricht.

Dies macht im Grunde Schauspieler wie ... Menschen. Die Leute wissen nicht, was die anderen denken, sie müssen Nachrichten senden, um Informationen zu vermitteln, sie haben die Wahl, eingehende Nachrichten zu ignorieren, sie zu berücksichtigen oder mit anderen Menschen zu kommunizieren. Gelegentliche schlechte Dinge können Leuten passieren. Viele Leute machen alle Dinge gleichzeitig. Um mehr Last zu bewältigen, fügen Sie mehr Personen hinzu.

In Bezug auf Ihr Master-Projekt, empfehle ich herauszufinden, über das Erlang-Web-Framework. Die Programmiersprache Erlang basiert auf dem Actor-Modell und wird in skalierbaren Systemen einschließlich Telefonschaltern ... und der Facebook messaging system mit großem Erfolg eingesetzt.

+0

Das ist ziemlich genau das, was ich gesucht habe. Brillant. Zu Erlang: Ich habe etwas nachgeforscht und es sieht großartig aus. Der Rahmen, den ich schreibe, soll es einfacher machen, Schauspieler im Web zu benutzen, und das Erlernen einer neuen Sprache ist ein bisschen viel für die meisten Leute, also ging ich mit Python und habe meine eigenen Klassen gebaut, die sich wie Schauspieler benehmen. Ich bin versucht, es in Zukunft zu portieren. –

+0

Das ist wie zu sagen "Ich hörte, dass Threads großartig waren ... also müssen wir Threads ins Web portieren!" ... nun, der Webbrowser kann BEREITS als ein Akteur angesehen werden ... er sendet eine Nachricht, die er nicht teilt Zustand mit dem Server, wartet auf den Empfang einer anderen Nachricht und führt eine Berechnung durch. –

+0

Erlang nimmt Schauspieler "ganz nach unten" .... und unterstützt Millionen gleichzeitiger Akteure (Prozesse genannt) auf einem Knoten und skaliert transparent auf mehrere Knoten, während die gesamte Kommunikation automatisch gehandhabt wird. Es ist schön, diese Art von "Wurzeln" zu haben, wenn Sie wirklich versuchen, eine große gleichzeitige Aufgabe zu übernehmen. –

5

Ich werde eine einfache Metapher versuchen:

Schauspieler sind Menschen, einige Arbeit in ihren Häusern zu tun. Vor jedem Haus befindet sich ein Briefkasten. Um miteinander zu kommunizieren und Arbeit zu erledigen, werden Nachrichten zwischen den Akteuren gesendet.

+0

Dies ist im Grunde genau das Modell, das ToonTalk für Parallelität verwendet. Außer dass Sie einen "Vogel" versenden, anstatt einen Brief zu schreiben. http://www.toontalk.com/English/concur.htm –

1

Ich bin nicht sicher, dass dies gut sein wird, aber ich werde versuchen:

Lasst uns einen klassischen Mittelosten Markt vorstellen. Es gibt Käufer (angenommen, sie laufen nur Touristen) und Verkäufer. Käufer gehen durch den Markt, und Verkäufer schreien Namen ihrer Waren: Teppiche !! Spezies!!! Pferde !!! Сandies !!! Juwelen !!! und so weiter ... Manche Käufer interessieren sich nicht für bestimmte Arten von Waren und gehen zum nächsten Laden, aber einige Käufer werden interessiert und fragen: "Wie viel kostet das?", Verkäufer: "50 $", Käufer: " Können Sie mir einen Rabatt geben? ", Und so weiter ...

Akteure sind Käufer und Verkäufer hier. Verkäufer senden Nachrichten mit Arten ihrer Waren. Der Käufer kann eine Nachricht überspringen oder eine Nachricht zur Preisanfrage senden.

1

Darsteller - können wir auch Subjekt nennen. Schauspieler machen etwas mit Objekten. Schauspieler ist Anrufe, weil es jemand ist, der handelt.

0

Ich würde sagen, "Akteure sind eine einfache Möglichkeit, Computer zu sagen, mehr als eine Sache zur gleichen Zeit zu tun. Sie unterscheiden sich von anderen Möglichkeiten, Computer mehr als einer zur gleichen Zeit zu tun, weil sie weniger nehmen Ressourcen als einige der Alternativen und weil sie für Programmierer einfacher zu verwenden als einige der anderen Alternativen sind. "

+0

Wenn mein Publikum tatsächlich wissen möchte * wie * Schauspieler arbeiten, dann würde ich mit dem Beispiel von Menschen in verschiedenen Häusern gehen, die nur miteinander reden, indem sie Briefe in Briefkästen stecken, wie @Dario bereits vorgeschlagen hat. Meistens denke ich aber nicht, dass meine Frau/Mutter/Nachbar/wer eigentlich so viel Detail will. ;-) –