Can anyone explain what is Akka framework?
Pain. Akka framework is a pain.
Ehm… Not using it? I’m not aware of better actors library in the JVM world, but no one forces me to use actors at all, so I’m free to choose any other tool and approach according to my preferences
Just to make things clear: I am completely biased against whole Scala ecosystem, as these guys value theoretical perfection more than any rational reasoning, which raises many issues like constant absence of backwards compatibility in Scala-based tools and frameworks (“hey, this API does not seem correct and sound anymore, let’s break it and remove as soon as we can” - this is a typical approach to solving the issues in the Scala world).
Due to this, supporting any Scala-based stuff in the production is a horrific experience (I had it once with Play + Akka services…) which I would not recommend to anyone except the type theory professors, whose “production” are the books/papers about type theory/programming languages and not the real-world systems which have to be supported and updated decades and decades after the initial development.
That is a valid point of critic. I still like Scala very much, but I did not use it in a professional production environment dedicated to run years.
On the other side I even like that Scala is not carrying mistakes around for as long as maybe some other languages do. I am able to afford this, maybe in contrast to longtime productive projects.
My last usage of Akka is years ago. It helped me to build a simple game / simulation engine and to significantly increase speed while keeping a good structured architecture. I think Akka has moved forward since then. Are there typesafe actors now? I don’t really know.
Also it’s worth mentioning that Scala 3 is upcoming. The blog on https://scala-lang.org should tell the current state. I think they will do some further changes with Scala 3.1 so that developers can migrate com 2.x to 3.0 first. As far as I am aware Scala always delivered a prepared migrations path with migration tools to easy migration. That should be said for fairness.
I have read two, maybe three times over the years that Scala language developers want to target a more stable compatibility of future Scala development. One of that statements was about post 3.0 or 3.1 Scala. To be fair again, I did not have have the feeling that these where official statements. But it shows that Scala language developers are aware of the problem. Future has to tell if Scala gets more stable.
Like @prolog, I liked scala, certainly more than java, but never had to maintain it across upgrades.
Actors, intellectually at least, seem an attractive way to scale a system.
I have come across an article that speaks about the basic concept behind Akka. The blog says, Akka supports the model of actor-based programming to solve problems in competition.
We have multi-core CPUs for processing today, but we need to use multiple cores simultaneously in
order to maximize the efficiency of a program, which means that we have to use multiple threads.
The use of threads can cause some problems with concurrency. The actor model is one of the
programming models for the resolution of these problems.