Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Paul Clapham
  • Bear Bibeault
  • Jeanne Boyarsky
Sheriffs:
  • Ron McLeod
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Jj Roberts
  • Stephan van Hulst
  • Carey Brown
Bartenders:
  • salvin francis
  • Scott Selikoff
  • fred rosenberger

What is the relation between Scala and Akka ?

 
Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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 ?


 
Ranch Hand
Posts: 10192
3
Mac PPC Eclipse IDE Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Senthil B Kumar
Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Are there version of Play & Akka which supports plain Java programming language as well?
 
Joe Harry
Ranch Hand
Posts: 10192
3
Mac PPC Eclipse IDE Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes it does:

Play for Java https://www.playframework.com/documentation/2.3.x/JavaHome

Akka for Java http://doc.akka.io/docs/akka/2.0.2/intro/getting-started-first-java.html
 
Senthil B Kumar
Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One last question on this line, are there any differences between the Scala implementation & Java implementation in terms of the following attributes ?

1) Ease of adoption & learning curve.
2) Scalability & performance
3) Resiliency
4) Industry feedback and adoption rate.
5) Modularity and cloud readiness.
 
Joe Harry
Ranch Hand
Posts: 10192
3
Mac PPC Eclipse IDE Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here are my thoughts:

1. Ease of adoption & learning curve:

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



3. Resiliency

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?



Have a look at this! http://www.reactivemanifesto.org/
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
My cellmate was this tiny ad:
Thread Boost feature
https://coderanch.com/t/674455/Thread-Boost-feature
reply
    Bookmark Topic Watch Topic
  • New Topic