Scala is emerging as a very popular programming language today although it’s been introduced in 2004. It has helped the programmers find the perfect balance between object-oriented programming and functional programming. Scala allows efficient code reuse and extensibility, and its ability to handle data in real-time has made it a popular choice for Big Data projects.
Scala offers the advantage of building on the Java programming language and platform. Not only you can use all the familiar Java libraries directly in your Scala code, you can also intermingle Scala with existing or new Java code. When combined with the open source Spark, Akka toolkit it also allows you to easily spread your application across multiple 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.
If you are optimizing for easy product iterations, while building scalable infrastructure. Scala’s powerful type system, functional idioms, and concise patterns allow your team to quickly model the business solution. The first class immutable data structures and safe asynchronous/parallelized constructs allow you to easily build distributed systems.Over the past several years, Scala has been used by multiple organizations(like LinkedIn, Twitter, Sony, Siemens, Xerox) in the construction of large scale data stores and analytics platforms.
Companies and individuals using Scala to build their own new ideas, they also utilizing other excellent tools like Play Framework, Akka, Apache Spark and Kafka etc which are not only some of the hottest tools and projects on the market right now, but also intentionally built in Scala.
Spark is a fast and general-purpose engine for large-scale data processing. Developed in the AMPLab at UC Berkeley.
Akka is an extremely concurrent framework for building distributed applications.
Apache Kafka is a publish-subscribe messaging system written in Scala and Java.
Salesforce introduced Thunder at Dreamforce 2015. Thunder is Salesforce’s big data processing engine. It is designed to capture, filter and respond to events in real time. It is built on open source technologies like Apache Spark, Apache Kafka, Apache Storm, Apache Cassandra, Heroku.
Thunder is optimized for Machine-to-Machine(M2M) and Internet of Things(IoT) environments.