My Thoughts on Scala

My Thoughts on Scala

I love the Scala programming language! I've been developing software for more than 37 years and Scala is by far the most enjoyable language I've ever programmed with. I also love that the Scala compiler generates Java byte-code and runs in a JVM. This leverages the entire existing Java ecosystem while executing in a highly mature and well tested container.

With the advent and proliferation of multi-core computers, virtualization, and cloud computing we need to architect and develop applications to specifically take advantage of these capabilities by building distributed / reactive applications. Given this, developers need to learn how to think in a different way. First, they need to learn to write code to execute asynchronously (non-blocking). In my experience, I found that this is not usually easy for experienced programmers to grasp and do well. Second, developers need to learn how to break up linear solutions into a series of asynchronous code blocks that can execute in parallel whenever possible. To that end my favorite two features of Scala are “futures” and “for comprehensions.” Leveraging these Scala features removes the need to manually manage threads as we must do in Java which is very prone to error.

I'm happy to see Lightbend's involvement with Scala Center http://buff.ly/1YRddZd because great Scala developers are hard to find. Hopefully, there will be many more new Scala developers coming on board because of Scala Center.

I'm here in Orange County, CA and when I started building my last team I gave up on hiring Scala developers and decided to start training them myself. At the time I asked our copywriter to find a little humor and put together this opening paragraph for our job postings:

“ ... we are looking for a Java, Python, or C# developer that wants to learn how to build cutting edge web applications written in Scala. When we looked out of our window we began to realize that Scala Developers aren't lining up around the block with their resumes in-hand. WHY NOT? Apparently, there are none. That's why we've decided to hire a developer with a little experience, who is excited to learn new cutting-edge technologies. We'll teach you how to write, maintain, and correct coding in Scala, Play, Akka, and NoSQL databases such as Elasticsearch and Cassandra. Our friendly Software Architects and other team members are excited to teach you. In return, you'll get to work for a fun and dynamic company, while also acquiring a whole new skillset.”

I think this says it all. Because of the lack of Scala developers many companies are hesitant to build new applications using the Scala technology stack. I've even seen some companies that have made investments in Scala but are moving away from them. I personally think this is a mistake.

I look forward to continuing with Scala and being part of the ecosystem that builds tomorrow's distributed applications. In the coming months I plan to provide some open source projects to the community that will address required infrastructure when building microservices and reactive applications with Scala. Long live Scala!

To view or add a comment, sign in

More articles by Michael Read

  • Streaming Data Pipelines Simplified

    For me, streaming data in motion is much more interesting than data at rest. Whether you’re building an Internet of…

  • Cure your "Split Brains"

    In honor of Lightbend’s release of Akka’s Split Brain Resolver as OSS, I’ve updated my blog's repository on “How To…

  • How To Distribute Application State with Akka Cluster

    Building, testing, containerizing, deploying, and monitoring distributed microservices is difficult, but using…

    2 Comments
  • How to Create a Non-Stop Microservices Platform using Akka

    Introduction If you have interest in Scala / Akka and how to create a non-stop (“always available”) microservices…

    13 Comments

Others also viewed

Explore content categories