Acting lessons, by Steven Seagal. :)
Dart Isolates give you a way to perform real multi-threading in Dart applications, the ability to truly run code on another thread. (For more information on that statement, see Dart futures are NOT run in a separate thread.)
When I first read that Isolates were like actors I was very interested in them, but then I was surprised to see that (IMHO) they are implemented in a more low-level/primitive way than something like the Akka Actors library. (The entrepreneur out there might see this as an opportunity to create an Akka-like port for Dart and Flutter.)
The Dancer Upstairs may be a little slow for most other people, but it’s one of my favorite movies (except for the dog parts).
Released in 2002, it was the first or second movie I saw Javier Bardem in, and when you watch it not knowing who he is, you say to yourself, “This guy has it,” that special something that makes you want to watch. As a friend once said, Tom Hanks is like that; if they made a movie about a guy stranded on an island and he was the only one in the movie, she’d watch the movie just because it was him (as did many other people).
This is an excerpt from my book, Hello, Scala. In this lesson I’ll show two examples of applications that use Akka actors, both of which can help you get started with my larger “Alexa written with Akka” = Aleka application.Back to top
An Akka “Hello, world” example
First, let’s look at an example of how to write a “Hello, world” application using Akka.
Writing a “Hello” actor
An actor is an instance of the
akka.actor.Actor class, and once it’s created it starts running on a parallel thread, and all it does is respond to messages that are sent to it. For this “Hello, world” example I want an actor that responds to “hello” messages, so I start with code like this:
I watched an episode of Northern Exposure recently and at the end of it I was surprised to see that Stuart Margolin directed the episode. I always enjoyed his characters on The Rockford Files and M*A*S*H, and I remembered seeing him on Magnum, P.I., but I didn’t know anything else about his career, including that he was a director. After reading his Wikipedia entry I hope at some point to see the episode of 30 Rock he did with Alan Alda.
Way back in 2013 — before my first fake heart attack followed by learning that I had thyroid cancer — I thought I was about to go “back to work”, and I decided to try to write another visual demo of Akka Actors before I went back to work. I gave myself 10 hours to write something, and at first I decided to just create some bubbles that would move about randomly on screen. But I got that working so fast that I decided to do something else.
Eventually I came up with the idea of a little “kill the bubbles” game, which turned into a “kill the characters” game. This video shows how it works:
The source code for Beginning Java Game Development with LibGDX is at the URL shown.
“In Erlang, processes share no memory and can interact with each other only by sending messages. This is exactly how objects in the real world behave.”
“In Erlang (Akka), it’s OK to mutate state within an individual process (actor), but not for one process to tinker with the state of another process.”
“Async is not about performance – it’s about scalability.”
From this tweet by Viktor Klang, Lightbend