I’ve been keeping my eye on Scala, Akka, and the Actor Model since I listened to a podcast on Software Engineering Radio with Jonas Boner a few years ago:Episode 178: Akka With Jonas Boner. I’ve read Jamie Allen’s Effective Akka book as well as taken a couple of courses on Coursera involving functional programming and reactive programming: Functional Programming Principles in Scala and Principles of Reactive Programming.
I’m really excited about the release of Akka.NET 1.0 as I’ve been working in C# as my day job for the past 7+ years and this will give me a chance to integrate it into some production code soon!
I remember finding this conversation with Carl Hewitt, the inventor of the Actor Model, online at MSDN Channel 9 after the podcast and suggest this as something people might want to take a look at to find out more on the Actor Model.
The Actor Model was created back in 1973 and it is not a new concept. It is, however, fairly new to the world of Java and C# where a lot of us have been the past decade. Basically an actor is defined as a ‘unit of computation’. Data is not shared between actors and all interactions is done through message-passing. If you’ve ever done any threading and concurrency programming I think you’ll appreciate the model.
An Actor can do several basic things:
1. Receive a message
2. Send a message to another Actor
3. Create new Actors
4. Change state
Petabridge.com has a really nice series of tutorials for Akka.NET named Akka Bootcamp. They will send you an email lesson a day for a few weeks or you can go to the web site and pick and choose which ones to work on. I prefer the email task per day as it keeps me going and on track. I’m a little over halfway through them currently and think it’s a great way to get started.
I’ll write more on this later as I get farther down the road.
I’m planning on contributing some code samples on github if all goes well.