Skip to main content
Exploring ideas, sharing knowledge
Hidden Peaks Unlocked!
Looks like you found the hidden peaks! Future posts are now visible.
Peaks Hidden Again
The future posts are hidden once more. You know how to find them again.

Scala

Bet

High-level programming language that integrates object-oriented and functional programming paradigms

Dev |

Metrics

Learning UX Potential Impact Ecosystem Market Standard Maintainability
Learning UX
3/5
Potential
5/5
Impact
3/5
Ecosystem
2/5
Market Standard
1/5
Maintainability
4/5

What is it

Scala is a high-level programming language that runs on the JVM and integrates object-oriented and functional programming paradigms. It was designed by Martin Odersky to address Java’s verbosity while maintaining full interoperability with existing Java libraries. Scala powers critical infrastructure at companies like LinkedIn, Twitter, and Netflix, and is the foundation for Apache Spark and Smart Data Lake Builder.

My Opinion

Scala is my favorite language. Its design is both expressive and pragmatic—it models how humans think, not how computers execute. When I write Scala, I feel like I’m expressing intent rather than wrestling with syntax. But this power has been Scala’s curse.

The Expression Paradox

Scala lets you write code that reads like a DSL tailored to your domain. The problem? Many Scala developers can’t resist showing off. Codebases become littered with implicit conversions, type-level programming, and category theory abstractions that make simple logic impenetrable. When used judiciously, these features produce elegant solutions. When abused, they produce job security for the original author and nightmares for everyone else.

The Ecosystem Desert

This is the true pain point. While Java has Spring dominating enterprise development, Scala never produced a framework with comparable mindshare. Play Framework tried, Akka had its moment, but neither achieved critical mass. The result: fewer libraries, less documentation, smaller talent pool. When you’re stuck at 2 AM, Stack Overflow has ten Java answers for every Scala one.

The Spark Lifeline

Scala survives because of data engineering. Apache Spark was written in Scala, and for years, Scala was the first-class citizen for Spark development. Tools like Smart Data Lake Builder continue this tradition. If you’re in the data space, Scala skills remain valuable. But even here, PySpark has eaten Scala’s lunch for most use cases.

The Learning Cliff

Scala has a learning cliff, not a curve. The gap between “I can write working Scala” and “I can write idiomatic Scala” is enormous. Functional programming concepts, implicits, and the type system require fundamentally rewiring how you think about code. For teams coming from Java, this investment often doesn’t pay off.

The Scala 3 Renaissance

Scala 3 (Dotty) simplified the language significantly—removing implicits in favor of clearer given/using syntax, adding enum support, and improving type inference. It’s the language Scala should have been from the start. But the migration pain and the already-small community mean adoption is slow.

Conclusion

Scala has a special place in my heart, but I can’t recommend it for most production use cases. The ecosystem gaps and shrinking talent pool make it a risky bet for new projects. If you’re doing data engineering with Spark or maintaining existing Scala codebases, the investment still makes sense. Otherwise, consider Kotlin for JVM functional programming or stick with Java’s improving syntax.

Share this article