When aspired programmers and well-established engineers consider learning a new technology, they take into account various factors. The most important things usually include technical benefits of the language, the size of the community, the learning curve, the industry adoption, the salary, the number of available jobs etc. Of course, all people have different motivations and priorities so we’ve decided to compile a list of the key aspects that might influence your decision. All the developers in N-iX Scala team have different stories about how and why they adopted this technology. Today they share their top reasons to learn Scala. Maybe, you’ll even give it a try and join our Scala team.
Key facts about Scala:
- Scala is an acronym for “Scalable Language”;
- It was designed at the École Polytechnique Fédérale de Lausanne (EPFL) by Martin Odersky in the early 2000s;
- Scala was released in early 2004 on the Java platform;
- The fusion of object-oriented and functional programming is the key to Scala’s scalability;
- Many famous companies such as LinkedIn, Twitter, Netflix, Walmart, Coursera, Amazon, The Guardian, Novell, Xerox, Sony, Siemens, Swiss Bank adopted Scala;
- Github statistics show that Scala is one of the top 20 languages used for open-source projects.
Reasons to learn Scala:
-
Scala is one of the most loved programming languages
Scala is the 4th most loved tech on Stack Overflow after Rust, Swift and F# (69.4% of engineers who are developing with Scala have expressed interest in continuing to work with this technology). Another research, which unifies data from Stack Overflow, Redmonk and Github and Reddit indicates that in terms of happiness, functional programming languages like Scala, Lisp, Clojure and Haskell are high in the happiness quotient.
-
It’s one of the best paying technologies
Scala and Spark are 2 top paying technologies in the US, according to Stack Overflow. Scala developer in the US earns around $125,000 a year. What’s more, engineers with mathematics backgrounds (including Data Scientists and Machine Learning Developers) who know Scala have bigger salaries than other programmers in this field (around $140,000). Other surveys also indicate that if you want to boost your salary, Scala is the best way to go.
-
Scala developers are in great demand
The market is really hungry for Scala developers. We at N-iX have personally faced the challenge of finding specialists in this technology. Although there isn’t much data on Ukrainian Scala labour market, we may assess the demand by looking at worldwide trends. Only on gooroo.io, there are more than 1,000 jobs advertised and the average salary reaches $116,000. If we take the UK, the demand for these developers has increased by 65% recently.
In Ukraine, hiring Scala developers is also really difficult, that’s why the companies offer these specialists good salaries, many perks and more importantly, the most interesting projects.
-
Learning Scala is not so difficult as it seems
When talking about how difficult it is to learn this language, opinions differ. Some people say that the barrier to entry is steep and you have to spend quite some time to master Scala. On the other hand, many programmers point out that learning Scala takes as much time as any other language. The challenge mostly lies in transition you need to make when starting functional programming. It’s a different paradigm, which is both complicated and interesting to try. In any case, this is a great investment which will definitely pay back in the future.
To get started on Scala, you should definitely use the activator. Using this browser-based tool you can build Reactive applications as it works on Lightbend Reactive Platform. You also get access to numerous templates, sample code and tutorials. What’s more, Lightbend provides and develops huge Scala and reactive ecosystem. So there are plenty of tools which simplify the development process.
-
Coding in Scala you become a better programmer
Programmers who write a quality code are happy programmers. While Scala is a bit hard to learn, it’s also easy to use. Ultimately, your code becomes more concise, more efficient, and faster than with other technologies. It’s all possible because Scala is an academic well-organized language. Also, functional programming helps you make your code safer and more stable.
-
There are great Scala frameworks
Scala has a diverse toolset with libraries and frameworks for different purposes. For a web interface, you could use Play framework and for the low-level interfaces like TCP and UDP, you have Akka. If you need to develop a high load system where you need to perform many operations, you can make use of Akka as well. In Big Data projects you can work with Spark framework. Finally, for database access you employ Slick.
As for the libraries, the most popular ones include ScalaZ, Cats, Slick, Lift, Monocle, Dispatch and more. In addition, most of the tools, and especially Cats, have really well-formed documentation.
Another point in favour of Scala is Lightbend resources. They provide an open source platform for building Reactive applications. Besides useful Scala toolkits, Lightbend offers training, consulting and commercial support on the platform.
-
It’s cross-compatible with Java
Scala is easily integrated with Java as it runs on JVM and compiles to Java bytecode. This means it can easily use classes written in Java. Thus, you get access to multiple third-party libraries and frameworks. This is especially useful for Java developers who have decided to learn Scala.
-
Easy transition from Java
Your Scala learning curve is going to be much lower if you already know Java. As we’ve already mentioned, both languages run on JVM so you may use Java resources when coding in Scala. Although Scala is partly a functional language, it has many features of object-oriented programming. Also, these are both statically-typed languages with many similar features in syntax. Therefore, learning Scala is often a very natural step for Java developers who want to extend their skill set and give a new boost to their career.
-
Clean and concise syntax
Scala is a perfect technology if you want to migrate to functional programming from the object-oriented language like Java, Ruby or Python. As soon as you are comfortable with coding in Scala, you’ll truly appreciate the benefits of this technology. You don’t need to type a lot in Scala. Its great syntax can replace simpler but verbose lines you’d have to write in Java.
-
You can achieve great performance
Scala is an incredibly scalable technology. Its integration with Reactive Manifesto enables you to process big loads of data. Moreover, it’s built with concurrency in mind, which goes with the ideas of massive parallelism and reactive programming. Concurrency allows you to execute the units of your algorithm out-of-order and the final outcome remains the same. Writing asynchronous software, you will know how to deal with massive inflows of new users. As a result, you can build highly performant systems that can scale really fast.
-
It’s a great technology for Big Data
Many companies that need to operate on big amounts of data choose Scala for building their back-end systems. Twitter, Foursquare and Linkedin adopted Scala for a reason. So if you’re interested in this sphere, Scala is the most logical choice. Scala powers Apache Spark and Apache Kafka – 2 major Big Data frameworks.
-
You can work in game development
The language is often employed as a server-side technology in game development due to its great performance. It’s perfect for managing high-load systems like games where speed is a key factor in the success of the product. Therefore, the clients of our VR and game development studio often opt for Scala when they choose the back-end technology for their products. So if you’d like to work in this industry, this programming language is a great choice.
-
Great Scala community
Scala is a modern language and its popularity is on the rise right now. Its speed and efficiency, opportunities to work on big interesting projects and good salaries attract more programmers every year. Of course, Scala community is not the biggest but the developers that have gathered around Lightbend platform are always there to help. You can easily contact Lightbend when you have some questions concerning their stack. What’s more, there are some great Scala conferences like Scalar, Scala World, Reactive Summit, Scala Days etc.
The community in Ukraine is growing as well. There are regular meetups in Kyiv and other cities, this year you could attend ScalaUA, the first big conference on Scala in Ukraine.
-
Impressive industry adoption
If we look at major programming surveys and rankings, we’ll see that Scala is constantly improving its positions. According to RedMonk Programming Language Ranking 2016, which analyzes the correlation of language discussion on Stack Overflow and its usage on GitHub, Scala holds the 14th place, which is 3 positions higher than Swift. If we take GitHub statistics, we’ll also see continuous growth. However, the most convincing argument in favour of Scala is that it’s used by such prominent brands as The Guardian, Walmart, Intel, Samsung, Twitter, Linkedin etc. These adoption trends demonstrate that Scala has great prospects for the future so it’s definitely worth joining this wave.
-
Opportunity to work on challenging projects
Scala is a programming language that can be applied to a variety of tasks. However, from our own experience we can say that Scala projects are always interesting and challenging. You can never be bored, you always need to collaborate with your colleagues, come up with some interesting hacks and develop your programming skills. So if you want to develop as a professional and have fun on the way, Scala is definitely for you.
Wrap-up
Whether you have already started learning Scala or just consider adding this technology to your skill set, we hope we’ve reinforced your determination to master it. Scala meets all the needs of the modern world, so the demand for this programming language is only going to rise. If you want to work on interesting projects using the most efficient and best-paying technology, Scala is definitely your best bet.