I understand that Typeface is a company that provides support for both Scala and Akka framework. Are these 2 different flavors of the Play framework or each are totally different framework for different purposes ?
Scala is a programming language while Akka is a framework / toolkit to write thread safe concurrent applications. In fact Akka is written using Scala.
Actually typesafe is the company behind Scala programming language. Just like how Apache Software Foundation offers software libraries / frameworks which are mostly based on Java, typesafe offers a base framework to build web applications using Play and Akka with Scala as the programming language.
SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
Senthil B Kumar
posted 5 years ago
Are there version of Play & Akka which supports plain Java programming language as well?
Work like you don't need the money. Love like you've never been hated. Dance like nobody's watching. Sing like nobody's listening. Live like it's Heaven on Earth.
Currently I Reside HereWEBlog
Scala's language features are a beast. While you could easily pick up the basics, it will definitely take a lot of time (I'd say years) to really become proficient with it. You have to understand the fact that with Scala you have to cover the whole spectrum of Object oriented and Functional programming!
2. Scalability & performance
Scala and the tools around it are meant to be scalable and performance oriented. My definition of Scalability here would be scaling on relatively cheap commodity hardware and my definition of performance would be that I get the same response time for any sort of load. Scala and the tools surrounding Scala are built with this in mind
This is something which is not so specific to Scala as one could come up with a resilient system even writing Java. With a functional programming approach, you are much more inclined to write resilient applications!
4. Industry feedback and adoption rate.
I really can't comment on this, but at this point in time industry adoption for Scala is less as compared to that of Java, but I strongly believe that it will improve in the coming years
5. Modularity and cloud readiness.
Modularity is something that lies in the developer / architect to design his or her systems modular enough. This is not specific to Scala or Java whatever! Define cloud readiness?
A number of Scala frameworks and libraries, including Play and Spark, are increasingly implemented with Akka underneath to support concurrency and scalability. Akka, Play and Spark all have Java APIs as well as Scala, although in the case of Spark the Java API might not offer all the functionality provided by Scala. It's up to you which one you choose. If your focus is on applying these tools in an existing Java application, then you might prefer to use the Java APIs.
But if you're interested in taking full advantage of the benefits of Scala together with these tools, then you can go straight for the Scala versions. It will mean you have to learn some Scala, but this will help you to understand the functional programming paradigm much better, and it's FP that really provides the key benefits of these tools.
Personally, unless you have to use Java for your experiments e.g. to interface to a legacy application, I think Scala is the way to go.