Scala logo

Scala

A pure-bred object-oriented language that runs on the JVM
7.4K
5.6K
+ 1
1.5K

What is Scala?

Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems, as many companies, including Twitter, LinkedIn, or Intel do. To some, Scala feels like a scripting language. Its syntax is concise and low ceremony; its types get out of the way because the compiler can infer them.
Scala is a tool in the Languages category of a tech stack.
Scala is an open source tool with 13.5K GitHub stars and 3.1K GitHub forks. Here’s a link to Scala's open source repository on GitHub

Who uses Scala?

Companies
900 companies reportedly use Scala in their tech stacks, including Twitter, Delivery Hero, and Nubank.

Developers
6089 developers on StackShare have stated that they use Scala.

Scala Integrations

Java, Sentry, Slick, Auth0, and Jupyter are some of the popular tools that integrate with Scala. Here's a list of all 46 tools that integrate with Scala.
Pros of Scala
188
Static typing
179
Pattern-matching
177
Jvm
171
Scala is fun
138
Types
95
Concurrency
88
Actor library
86
Solve functional problems
83
Open source
80
Solve concurrency in a safer way
44
Functional
23
Generics
23
Fast
17
Syntactic sugar
17
It makes me a better engineer
13
Scalable
10
Type safety
10
First-class functions
9
Interactive REPL
8
Expressive
7
SBT
6
Case classes
6
Implicit parameters
4
JVM, OOP and Functional programming, and static typing
4
Object-oriented
4
Rapid and Safe Development using Functional Programming
4
Used by Twitter
3
Functional Proframming
2
Spark
2
Beautiful Code
2
Safety
2
Growing Community
1
Akka
1
Reactive Streams
1
Easy embedded DSLs
1
Mill build tool
1
DSL
1
Rich Static Types System and great Concurrency support
1
Naturally enforce high code quality
1
Akka Streams
0
Freedom to choose the right tools for a job
Decisions about Scala

Here are some stack decisions, common use cases and reviews by companies and developers who chose Scala in their tech stack.

Shared insights
on
Java
Scala
Apache Spark

I am new to Apache Spark and Scala both. I am basically a Java developer and have around 10 years of experience in Java.

I wish to work on some Machine learning or AI tech stacks. Please assist me in the tech stack and help make a clear Road Map. Any feedback is welcome.

Technologies apart from Scala and Spark are also welcome. Please note that the tools should be relevant to Machine Learning or Artificial Intelligence.

See more
Shared insights
on
Scala
SBT
Gradle

What are the advantages of using Gradle over SBT for Scala projects? Currently, I am doing POC between Gradle and SBT.

See more
Leonardo Viada
Project manager and web developer at Revo Digital · | 4 upvotes · 23.6K views

In the past few months, a project we're working on grew up quite fast. Since we're adding more and more features, I'm considering migrating my Express/TS REST API towards a more solid and more "enterprise-like" framework. Since I am experienced with TypeScript but not so much with Rails nor Play (Scala), I'd like to have some advice on which one could provide the best development experience, and most importantly, the smoothest paradigm transition from the JS/TS world. I've worked on some personal project with Rails, but I've found the Ruby language really distant from what the TypeScript ecosystem and syntax are, whereas on the opposite - during the brief tours I've taken in the past weeks - it's been a pleasure coding in Scala. Obviously, there are some key differences between the two languages - and the two frameworks consequently - but despite all the ROR automation and ease of use I don't despise at all Scala's pragmatic and great features such as static typing, pattern matching, and type inference. So... Please help me out with the choice! Regards

See more

Blog Posts

Aug 28 2019 at 3:10AM

Segment

+16
5
2107
+8
6
2214

Scala Alternatives & Comparisons

What are some alternatives to Scala?
Kotlin
Kotlin is a statically typed programming language for the JVM, Android and the browser, 100% interoperable with Java
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
Clojure
Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
Go
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
See all alternatives

Scala's Followers
5577 developers follow Scala to keep up with related blogs and decisions.