Majority of my co-workers and acquaintances associate me (and my professional work) with the .NET stack. This association is so strong that when I tell them about my recent works with Scala/Akka, they think I'm nuts (or close to):
What's the point of learning another stack if you've committed so much time and effort to master the previous one?
Don't worry - I'm not going through the whole learning thing again in this post - this time I'd like to focus on something I hear pretty frequently from the fellow codecrafters:
Yes, this Akka thingie looks decent and Scala is quite impressive as a language, but learning all that from the very beginning would take ages - imagine the time to set all things up from scratch - compiler, IDE, unit tests, etc. - NIGHTMARE!
Personally, I found it a nice learning excercise ;D (real men don't eat honey, they chew bees...), but if you really want to skip this part and start with the meat itself ASAP, I have good news for you - there's a (free) product that will suit your needs:
Typesafe Activator
As you may already know, Typesafe is known as "the company behind Scala & Akka" - investing in wide adoption of these products is in their interest, so they've come up with the idea of creating the all-in-one tutorial bundle for newbies: The Activator.
What is Activator EXACTLY?
It's a Play web application embedded in one, big JAR :) Once you run it, you'll get access to in-browser menu that contains the list of tutorials and seeds for core Scala & Akka ecosystem techs:
- bare Scala
- Akka
- Play
- Slick
- Spray
Pretty much like MSFT All-in-one, right?
Not really. All-in-1 provides a very vast list of samples, but when you get them, you're pretty much on your own. Activator is slightly different, the number of tutorials is limited, but:
- tutorials are enhanced with a very nice, detailed descriptions
- you can freely browse & modify code using a simple in-browser text editor
- you can compile the code directly within the Activator app (!)
- you can run the unit tests for the tutorial directly as well
- you can run the application & monitor its internals (!!) in Activator - this covers the actor activity monitoring as well (!!!)
- Activator can create the project files for your favourite IDE as well
Theory VS Practice
The tool is available & present for about a year, but I've checked it just recently - the overall idea is brilliant, but what about execution?
- I had some problems with retrieving the dependencies (twice), but it was possible to fix without editing any project files.
- Some operations (like creating project from template or creating project files for the particular IDE) don't have their progress reported in a reasonable way:
- sometimes it's not clear if the process has hung op or not
- you never know how much time more it will take (you just see logs)
- Code editor is very simple, but personally I don't find it a big problem - it's sufficient for basic browsing and I use dedicated IDE for everything else.
- I like the examples I've seen - they are very well documented and concise enough to be truly understandable and readable. But don't expected million of test or something like that -> this content is intended to be a starter.
- As Activator is an embedded Play app, it doesn't have any additional dependencies - for instance on the web server's presence. It doesn't generate trash in your filesystem / OS either.
Honestly, I like the final effect
Activator is a great learning resource - it covers pretty much all what was needed to get the basic idea of Akka or Play. Even if you've already written few applications using those frameworks, you'll still enjoy the content.
But keep in mind, that you have to know some Scala to benefit trying Activator - otherwise it doesn't make sense.
There's no excuse - the world of Scala & Akka is your oyster now.