Scala in a Nutshell
click the boxes below to see Scala in action!
Run Scala in your browser
Scastie is Scala + sbt in your browser! You can use any version of Scala, or even alternate backends such as Dotty, Scala.js, Scala Native, and Typelevel Scala. You can use any published library. You can save and share Scala programs/builds with anybody.
BLOGThursday, May 2, 2019
The Scala language is a big tent. It supports object-oriented and functional code working together. The point of Scala was always to show that these paradigms can be combined in a compact set of unified language features. But while the language design stresses unification, the same can not (yet?) be said about the community of Scala programmers.
In fact, Scala is used in many different ways. There are the people who use it as a “better Java” with more powerful object-oriented features, and there are the people who use it as a “poor man’s Haskell”, concentrating on the purely functional language subset. And then there are the many in between who use it in a predominantly functional style with an object-oriented module structure, without being too dogmatic about it.
I see this difference of approaches as a big opportunity. There are so many great ideas to debate and opportunities to learn from each other! Lots of these ideas feed into the design of Scala 3, with the overall goal to make Scala’s integration of paradigms even tighter than it is now, as well as making it simpler and safer.
Unfortunately, sometimes a competition between ideas becomes a fight between people promoting them. This can happen in the heat of debate, but we have to draw a line where personal attacks become persistent, where others are ridiculed or where statements are distorted intentionally.
None of this should be controversial. But if such behavior occurs what should we do about it? And who even is “we”? If we take all Scala users together, the answer is: there’s nothing to be done. Everybody can use a programming language and communicate about it in the way they see fit. If we take us as individuals, the answer is that we can and will stop interacting with people whose behavior we object to. If we talk about organizations such as the Scala Center, or Lightbend, or Typelevel, I believe they also have the right and sometimes the obligation to take a stand. First, they are ultimately made up of individuals, and cannot be disassociated from them. Second, they are tasked to safeguard the health of the projects and communication channels that they own, and that means they should not look away when norms are violated.
This is painful for everyone involved, and tends to be done only in exceptional cases. I take this as a challenge for us to develop better ways of conflict resolution that are inclusive, consensual, and respectful of one another. I also believe it’s important not to let the past hold us up forever. Individuals and their organizations change and decisions should take that into account. The goal must be to resolve controversies of that nature quickly and get back to an intense and friendly competition of ideas in Scala.
Write Scala in VS Code, Vim, Emacs, Atom and Sublime Text with Metals
- Tuesday, April 16, 2019
- Ólafur Páll Geirsson, Gabriele Petronella, Jorge Vicente Cantero
We are excited to announce the release of Metals v0.5. Metals is a Scala language server that supports code completions, type at point, g...
Scala 2.13.0-RC1 is now available!
- Monday, April 8, 2019
Scala 2.13.0-RC1 further refines and polishes the new collections API, among other improvements. If no major problems are found in this ...
Rob Norris joins Scala Center’s Advisory Board as a new Community Representative
- Monday, March 18, 2019
- Darja Jovanovic
The Scala Center Advisory Board welcomes Rob Norris as a Community Representative. Rob succeeds Lars Hupel in the Community Representati...
Talk to us!
for general Scala questions, discussion and library announcements.
for Scala contributions, language evolution discussions, standard library, Scala platform evolution discussions and more.
More chat rooms are listed on the Community page
See more tweets, orFollow Scala on twitter