|
| 1 | +--- |
| 2 | +layout: blog-detail |
| 3 | +post-type: blog |
| 4 | +by: Martin Odersky |
| 5 | +title: "Community and Communication" |
| 6 | +--- |
| 7 | + |
| 8 | +The Scala language is a big tent. It supports object-oriented and |
| 9 | +functional code working together. The point of Scala was always to |
| 10 | +show that these paradigms can be combined in a compact set of unified |
| 11 | +language features. But while the language design stresses unification, |
| 12 | +the same can not (yet?) be said about the community of Scala |
| 13 | +programmers. |
| 14 | + |
| 15 | +In fact, Scala is used in many different ways. There are the people who |
| 16 | +use it as a "better Java" with more powerful object-oriented features, |
| 17 | +and there are the people who use it as a "poor man's Haskell", |
| 18 | +concentrating on the purely functional language subset. And then there |
| 19 | +are the many in between who use it in a predominantly |
| 20 | +functional style with an object-oriented module structure, without |
| 21 | +being too dogmatic about it. |
| 22 | + |
| 23 | +I see this difference of approaches as a big opportunity. There are so |
| 24 | +many great ideas to debate and opportunities to learn from each other! |
| 25 | +Lots of these ideas feed into the design of Scala 3, with the overall |
| 26 | +goal to make Scala's integration of paradigms even tighter than it is |
| 27 | +now, as well as making it simpler and safer. |
| 28 | + |
| 29 | +Unfortunately, sometimes a competition between ideas becomes a fight |
| 30 | +between people promoting them. This can happen in the heat of debate, |
| 31 | +but we have to draw a line where personal attacks become persistent, |
| 32 | +where others are ridiculed or where statements are distorted intentionally. |
| 33 | + |
| 34 | +None of this should be controversial. But if such behavior occurs |
| 35 | +what should we do about it? And who even is "we"? If we take all |
| 36 | +Scala users together, the answer is: there's nothing to be |
| 37 | +done. Everybody can use a programming language and communicate about |
| 38 | +it in the way they see fit. If we take us as individuals, the answer |
| 39 | +is that we can and will stop interacting with people whose behavior we |
| 40 | +object to. If we talk about organizations such as the Scala Center, or |
| 41 | +Lightbend, or Typelevel, I believe they also have the right and |
| 42 | +sometimes the obligation to take a stand. First, they are ultimately |
| 43 | +made up of individuals, and cannot be disassociated from them. Second, |
| 44 | +they are tasked to safeguard the health of the projects and |
| 45 | +communication channels that they own, and that means they should not |
| 46 | +look away when norms are violated. |
| 47 | + |
| 48 | +This is painful for everyone involved, and tends to be done only in |
| 49 | +exceptional cases. I take this as a challenge for us to develop |
| 50 | +better ways of conflict resolution that are inclusive, consensual, and |
| 51 | +respectful of one another. I also believe it's important not to let |
| 52 | +the past hold us up forever. Individuals and their organizations |
| 53 | +change and decisions should take that into account. The goal must be |
| 54 | +to resolve controversies of that nature quickly and get back to an |
| 55 | +intense and friendly competition of ideas in Scala. |
| 56 | + |
0 commit comments