Alex Periel , CBDO
Nowadays, quite a few companies are banking on new technologies and taking on the risks that come with them. Blockchain is hyped up but expensive and precarious, mobile app development is easy to pull off but throws you into a highly competitive market, etc. There’s no shame in using trusted and effective technologies, making a choice in favor of things like Scala and its contemporaries. So to prove that Scala is a viable choice, let’s take a look at successful companies and startups using Scala for product development.
How Tech Giants Use Scala
Before we go step by step, let’s just quickly look at a general list of top companies using Scala:
Pretty impressive, right? Now, let’s see how they use it and why.
This well-know networking site announced its use of Scala in 2015 with the introduction of LinkedIn Signal. Built on the shoulders of Scala and JRuby, the system was meant to be a social search application with unique algorithms.
The company experts on Scala put it pretty concisely themselves: “if you are simply going to write Java with Scala syntax then you are not getting your money's worth”. This is very true and its one of the reasons why LinkedIn’s Scala usage is different from all others. They’ve merged it with things like Sinatra, Voldemort, and Norbert to create a mutli-functional Swiss army knife that they can use for all aspects of development.
LinkedIn, like some other companies, has supposedly raised concerns internally about Scala being too complex. However, this is refuted by the very experts that use it. They offer up the key point: Scala is only difficult on the outside. When you get into it, it’s a very easy tool to wield and the results it delivers are nothing short of outstanding.
We’ll be upfront and mention that Twitter doesn’t use Scala exclusively. They also take advantage of Ruby on Rails. However, the latter is pretty poor for long-term processes and large-scale caching. That’s where Scala steps in.
According to a Twitter engineer, they like Scala because it’s flexible and fast. This matters a lot when you’re working on a product as massive and with as many diverse features as Twitter has. They use offshoots and variations of Scala for everything including streaming, search, data transfers, and graphing data.
Scala for development wasn’t the first choice for the company as onboarding newbies can get tough with a language that multi-faceted. However, the initial time cost is made up in flexibility and subsequent ease of use. Twitter engineers have built up a collection of custom libraries and made current development more streamlined for themselves.
As a fun aside, Twitter jokes that they probably employ half of the world’s Scala experts and the other half is likely academics or working at Foursquare. Now, the SysGears team isn’t working for Foursquare or teaching at universities… So it seems like we’re a hidden treasure when it comes to Scala developers!
The streaming giant uses Scala for search algorithms, restful APIs and recommendations. Now, we could debate how well those recommendations actually work but the company is clearly satisfied. There’s an hour-long talk on the specifics of Scala use at Netflix with plenty of fascinating code examples.
Netflix borrows Groovy and Java code to rework it in Scala and add interactive elements to the service, which is part of what made it successful in the first place. For Netflix, Scala is a cornerstone upon which much of the online version of the service was built. Its capabilities for machine learning changed the way the whole architecture of Netflix existed. And Scala made the tech giant what it is today. So, yes, Scala for machine learning is a great topic in and of itself.
The company used a mix of Redis, Kafka, Scala, and a few other tools to keep scalability high. In fact, it even made its own framework - Colossus, also based on Scala. It’s intended to boost performance and keep things simple, two of the key characteristics you need if you want a service that scales well to a huge audience.
Interestingly, one of the factors that pushed Scala through at Tumblr was the availability of devs with Ruby and PHP know-how. That made onboarding easy and likely encouraged experimentation. Tumblr immediately took advantage of Finagle, a library made by Twitter (a great example of Scala usage extending beyond the company and lifting others).
Once Scala was taken on, the service slowly migrated its internal operations to it, relying more and more on Scala to do the job. Their new JVM-centric methods laid the groundwork for Tumblr to retool their architecture and handle a major shift to Scala, kind of similar to Netflix’s internal structure. However, Tumblr used Scala for scalability and not machine learning, showcasing the versatility of the programming language yet again.
It’s not as easy to find data on how and why Foursquare uses Scala. Well, the why is simple - because it’s flexible and, according to official sources, helps with automation and has a very expressive type system. That’s some great praise and it’s even been put to action in an unexpected way.
The above example of Foursquare using Scala type system is surely just one of the ways the company has utilized the programming language. However, the more interesting aspect of it is that Scala was seemingly a non-contested choice with a big stake put on it. This kind of reliance is a good sign for the language as a whole and its community. With the support from tech giants and startups (we’ll get to those soon) as well as developers like the SysGears team, the art of Scala is spreading every day.
AirBnB is a truly international service on a huge scale and the one thing that’s always going to be a problem for this kind of company is finances. Not a lack of them but rather the issue of reporting them correctly and tracking the cash flow.
This is where Scala came in for AirBnB as they decided to use the language based on its fault tolerance, type system (there it is again!) and fast data processing. And it didn’t disappoint as the new pipeline scales horizontally, works for current products, and will scale well with future ones.
The main reasons why Scala got its place under the sun in AirBnB’s architecture are these:
- Scaling without sacrificing performance
- Functional programming won over declarative programming
- Quicker runs (4-5 hours)
- A sprawling test framework
This is what we’d call very smart usage of the language, something that relies on all benefits of Scala and does so with elegance. That’s the kind of approach SysGears likes to take and the kind of approach that enriches the language itself and the community around it.
How Startups Use Scala
These are the new groundbreaking ways to use Scala, championing the technology in today’s environment.
Despite confirming that Scala is still seen as a pretty high entry barrier, this startup has been using the technology for a while. Their main reason to love the language is the way functional programming combines quality with dependability. No downtime and outages will be a problem when using Scala. At least, that’s what the eSentire team posits.
Holding the line against spam that plagues mobile devices, Hiya is using Scala as its sword and shield. According to the startup’s founder Nodir Yuldashev, they’ve already made customer-facing apps as well as internal solutions and data platforms, all with the help of Scala. This versatile approach to Scala development for startups is what sets the company apart and proves the potential of the language for future use.
This mobile advertising startup is reaching over a billion people using Scala-based data processing. And, according to the founder, they’re putting more and more stake into the language as it’s elegant, fast, and almost everybody who comes to the company is willing to learn the ropes.
This Estonian startup uses Apache Spark to build machine learning algorithms (move over, Netflix!) The company prefers Scala thanks to its flexibility and compatibility with big data solutions, which are two of the top Scala benefits.
If you’d like to join the list of companies using Scala to get quality, fault tolerance, and success - SysGears expertise is here for you. Come discuss your ideas and we’ll build a project together.