Scalability is a crucial aspect of modern application development. Depending on your platform, scalability can take different forms. On devices and personal systems, applications need to scale up to use multiple cores efficiently in order to deliver a quality user experience. On servers, applications also need to scale out to distribute work across systems.
The Scala programming language is designed around scalability. It gives you the tools you need to spread work across multiple cores with minimal impact on your application design. When combined with the open source Akka toolkit it also allows you to easily spread your application across multiple systems.
Scala additionally offers the advantage of building on the Java™ programming language and platform. Not only can you use all the familiar Java libraries directly in your Scala code, you can also intermingle Scala with existing or new Java code. Akka also works with both Scala and Java code, and although it's been easier to use Akka with Scala in the past the new Java 8 lambdas feature is bringing the two languages to a more equal footing.
The site name emphasizes the Scala language since that's central to my view of developing scalable applications, but the site is actually devoted to helping developers learn about building scalable applications with Java, Scala, and Akka, with other toolkits and extensions to come in the future.
Looking for help with scalability or performance issues, in Java or Scala? Email me to find out about my consulting, training, or mentoring services.
My new IBM developerWorks® JVM Concurrency series is just getting started, with the first two articles now online (along with a companion article to the second one):
- JVM concurrency: Java and Scala concurrency basics
- Java 8 language changes
- JVM concurrency: Java 8 concurrency basics
The Scalable Scala blog on this site includes background and added information on the articles.
Akka Concurrency: How Java, Scala, and Akka support concurrent programming – and why you need to use it is my presentation to the Wellington Java Users Group meeting on 18 December 2013. You can view the full video on Vimeo as Part 1 and Part 2. Click the image below to view the slide set (use mouse clicks or arrow keys to move through the slides, or scroll with your mouse wheel).