|
| 1 | +--- |
| 2 | +layout: blog-detail |
| 3 | +post-type: blog |
| 4 | +by: Seth Tisue |
| 5 | +title: "Scala Chat: Hello Discord (So Long, Gitter)" |
| 6 | +--- |
| 7 | + |
| 8 | +On behalf of the Scala organization, I am pleased to announce that we |
| 9 | +have adopted **Discord** as our official chat platform. |
| 10 | + |
| 11 | +## Join us! |
| 12 | + |
| 13 | +**Please join us** for live text-based chat on the Scala Discord |
| 14 | +server, via this link: |
| 15 | + |
| 16 | +* https://discord.com/invite/scala |
| 17 | + |
| 18 | +The server has existed for several years now and is already |
| 19 | +busy and well-established. It is actively moderated under the |
| 20 | +[Scala Code of Conduct](https://www.scala-lang.org/conduct/). |
| 21 | + |
| 22 | +Popular channels on the server include \#scala-users, |
| 23 | +\#scala-contributors, \#announcements, \#jobs, \#tooling, \#scala-js, |
| 24 | +\#scala-native, and others. New channels can be proposed on \#admin. |
| 25 | + |
| 26 | +## What about Gitter? |
| 27 | + |
| 28 | +Adopting Discord means we have moved away from Gitter. Most of our |
| 29 | +old Gitter rooms are now closed. The main room remains open, but |
| 30 | +mainly so we can help people find us on Discord. |
| 31 | + |
| 32 | +Gitter served the Scala community extremely well for more than six |
| 33 | +years. We applaud the Gitter team for their pioneering efforts, which |
| 34 | +revolutionized public online chat for programmers. We also thank |
| 35 | +Gitter for providing us with free, high-quality service for so long. |
| 36 | + |
| 37 | +## How is Discord different? |
| 38 | + |
| 39 | +A Discord "server" may contain many "channels", also called rooms. |
| 40 | + |
| 41 | +When you join a Discord server, all of the public channels on that |
| 42 | +server are immediately visible to you. Unlike Gitter, you don't have |
| 43 | +to join each channel individually. (But you can individually mute |
| 44 | +channels that don't interest you.) |
| 45 | + |
| 46 | +There is a desktop client and a mobile client (for iOS and Android). |
| 47 | +Both are high quality. |
| 48 | + |
| 49 | +Former Gitter users will notice a number of quality-of-life |
| 50 | +and user-interface improvements such as reactions and replies. |
| 51 | + |
| 52 | +## What other chat servers exist? |
| 53 | + |
| 54 | +Scala enthusiasts might also be interested in joining the following |
| 55 | +Discord servers: |
| 56 | + |
| 57 | +* **[Scalameta](https://discord.gg/RFpSVth)**: Scalameta-based tooling: Metals, Scalameta, Scalafix, Scalafmt, and Mdoc |
| 58 | +* **[Typelevel](https://discord.gg/XF3CXcMzqD)**: the Typelevel ecosystem for pure-functional programming in Scala |
| 59 | +* **[ZIO](https://discord.gg/2ccFBr4)**: Type-safe, composable asynchronous and concurrent programming for Scala |
| 60 | +* **[Functional Programming](https://discord.gg/K6XHBSh)**: not Scala-specific, but includes a Scala channel |
| 61 | + |
| 62 | +And although we have closed down all but one of the official Scala |
| 63 | +Gitter rooms, as of December 2021 there are still some active Gitter |
| 64 | +rooms out there devoted to particular libraries or topics, for example |
| 65 | +[playframework/playframework](https://gitter.im/playframework/playframework). |
| 66 | + |
| 67 | +## What about non-English languages? |
| 68 | + |
| 69 | +Our website's [community |
| 70 | +page](https://www.scala-lang.org/community/#chat-rooms) lists chat |
| 71 | +rooms and servers for many other languages besides English. Discord, |
| 72 | +Gitter, and Telegram are all represented. |
| 73 | + |
| 74 | +As of December 2021, the list is probably not very up-to-date. We |
| 75 | +invite the community to submit pull requests that will make it more |
| 76 | +current, one language at a time. The file to edit on GitHub is |
| 77 | +[community/index.md](https://github.com/scala/scala-lang/blob/main/community/index.md). |
| 78 | + |
| 79 | +## Are other clients supported? |
| 80 | + |
| 81 | +Yes, via [Matrix](https://matrix.org). You can connect to |
| 82 | +`#scala-lang:matrix.org` over the bridge, using your Matrix client of |
| 83 | +choice (perhaps [Element](https://element.io)). Not all Discord features |
| 84 | +are supported. |
| 85 | + |
| 86 | +## How did we decide to switch to Discord? |
| 87 | + |
| 88 | +The community discussion of record on this began in October 2019 |
| 89 | +on the following Discourse thread: |
| 90 | + |
| 91 | +* https://users.scala-lang.org/t/can-we-have-an-official-scala-discord-server/5157 |
| 92 | + |
| 93 | +Among the objections raised were: |
| 94 | + |
| 95 | +* Discord is a proprietary, closed-source platform. |
| 96 | +* The contents of Discord rooms are not indexed on the public web. |
| 97 | + |
| 98 | +But in the end, Discord's feature set and its sheer popularity decided |
| 99 | +the matter. By the time we officially switched over in December 2021, |
| 100 | +most of the community had already voted with their feet and our |
| 101 | +Discord server had become much more active than our Gitter rooms. |
| 102 | + |
| 103 | +Slack was considered as an option, but we decided it is best suited |
| 104 | +for private companies and groups, but not so well suited for |
| 105 | +open-ended public communities like ours. |
| 106 | + |
| 107 | +## Tell us more history. |
| 108 | + |
| 109 | +Okay, let's take a trip down memory lane. |
| 110 | + |
| 111 | +During Scala's earliest days (at least since 2007, perhaps earlier), |
| 112 | +the main chat platform for Scala was IRC. In those early years, when |
| 113 | +the community was still small and there weren't that many Scala |
| 114 | +conferences and meetups yet, the IRC channel (along with the Google |
| 115 | +Groups mailing lists) was an important place where community members |
| 116 | +got to know each other and, one might even say, became a community. |
| 117 | + |
| 118 | +Later, the IRC channel declined in popularity. In my personal view, |
| 119 | +this was due to a lack of moderation and lack of any code of conduct. |
| 120 | +It became essential to have these once the Scala community had become |
| 121 | +larger. |
| 122 | + |
| 123 | +The IRC channel still exists to this day, now on |
| 124 | +[Libera](https://libera.chat) instead of Freenode, but traffic there |
| 125 | +has slowed to a trickle in recent years. |
| 126 | + |
| 127 | +Gitter launched in 2014 and was widely adopted by the Scala community |
| 128 | +in 2015. The major advantages of Gitter over IRC include: |
| 129 | + |
| 130 | +* Scrollback: you can log out, log back on, and still see what |
| 131 | + people were saying while you were away. (On IRC, this was only |
| 132 | + possible if you used special software.) |
| 133 | +* Markdown support, including syntax-highlighting of Scala code. |
| 134 | +* Messages can be edited (within a limited time frame) and |
| 135 | + deleted. |
| 136 | +* More features supporting effective content moderation. |
| 137 | + |
| 138 | +Discord shares these advantages as well. |
| 139 | + |
| 140 | +Some advantages of Gitter that Discord _doesn't_ share: |
| 141 | + |
| 142 | +* GitHub integration, including GitHub-based login. (No need to |
| 143 | + make a separate account.) |
| 144 | +* Easy, decentralized, room creation, with room names based on GitHub |
| 145 | + repo names, making it a no-brainer for an open source maintainer to |
| 146 | + create a room specifically for their library. |
| 147 | + |
| 148 | +However, in recent years, the Gitter platform largely stopped |
| 149 | +advancing and eventually came to feel stale. After Gitter was |
| 150 | +acquired by GitLab in 2017, some features were added such as |
| 151 | +threading, but the implementation of threading was unpopular with |
| 152 | +users. The quality and feature set of the mobile client fell behind |
| 153 | +those of the desktop client. New Vector Limited acquired Gitter in |
| 154 | +2020 and added Matrix support, but otherwise has not advanced the |
| 155 | +platform. |
| 156 | + |
| 157 | +Meanwhile, Discord was becoming extremely popular in the video gaming |
| 158 | +community, then crossed over into programming communities. |
| 159 | + |
| 160 | +## Are the old Gitter rooms archived? |
| 161 | + |
| 162 | +The main Gitter room for Scala, |
| 163 | +[scala/scala](https://gitter.im/scala/scala) remains online and |
| 164 | +searchable. We'll probably leave it online indefinitely. |
| 165 | + |
| 166 | +The other Gitter rooms under the scala/* organization have been |
| 167 | +deleted and their contents archived; the Scala Center retains the |
| 168 | +archives. |
| 169 | + |
| 170 | +## Credits |
| 171 | + |
| 172 | +[Salar Rahmanian](https://twitter.com/salarrahmanian) created the |
| 173 | +Scala Discord server initially and administered it until recently. |
| 174 | +We are grateful to him for leading the way. Thank you, Salar! |
| 175 | + |
| 176 | +Personally, I would also like to applaud and thank everyone who's ever |
| 177 | +been helpful and kind to a Scala newcomer arriving in one of our chat |
| 178 | +rooms for the first time. You keep my faith in humanity alive. ❤️ |
0 commit comments