"Beginner's" Gitter channel?


Seth and I were chatting about this privately; at his suggestion, I’m taking it over here for a little brainstorming.

Over on scala/scala this morning, one of the newer folks was remarking about how the channel was kind of overwhelming – I got the vibe that they felt that it was a little discouraging. I think it’s worth taking that seriously, because I can easily see how it would come across that way.

Being the “general” channel, it includes conversations of wildly varying depth, and the (nearly constant) meaty language-theory debates can get really voluble. The result is fairly frequent periods when the newbie questions can easily get lost in the noise, and that go way over their heads. For someone who is just starting out, that feels a little unfriendly and unhelpful, even if everyone is behaving themselves well.

The newbie in question suggested the creation of a “beginner’s” channel; I think that’s worth considering. Having a “safer space” for new folks, who just want to ask for pointers and find out why their code doesn’t work, is likely to be helpful, especially for those who aren’t already hardcore code junkies and are less confident about this stuff. (Yes, users.scala-lang occupies this niche, but I suspect we should have something cognate on the Gitter side of the fence as well.)

I don’t propose channel splits casually, and there are some obvious problems here – not least that scala/scala is probably always going to be the easiest to find. I’m by no means sure of the right way to handle this. But I do think it’s a real problem, so I’d like to encourage a little brainstorming and discussion…


The downside is that you might have fewer advanced people in the channel.
Also, do you want that if a beginner asks a basic question in the main
room, people should tell them to go to the other room? That doesn’t sound

Maybe a better idea would be to have more focused rooms. Like scala/debate,
for instance. Or scala/concurrency.

Maybe we should determine what the ideal amount of traffic is for a room,
and when necessary create more rooms based on that. You don’t want rooms
that are too quiet or too noisy…


I’m not sure there is a good solution.

On the one hand, I’m sympathetic to new users and often try to help them with their questions.

On the other hand, there is exactly zero chance that I will hang out in a beginner-focused room because I won’t benefit from it. While I like helping new users, if I never learn things from the room myself, I can’t justify hanging out there.

I would be surprised if I was the only one in this situation.


Having a specific place to welcome beginners sounds like a great idea!

As @Ichoran mentioned, such room would need dedicated mentors (or grooms) who would be able to answer beginner’s question and/or pointing them toward more specific rooms and resources.

Personally, I’d be happy to volunteer some time to that.

To mitigate the downside mentioned by @nafg, we can make sure that beginners are first oriented to this dedicated place (from scala-lang.org and other typical entry points) rather than to scala/scala (in the case we decide to keep scala/scala as the main forum).

We should also try to keep the number of different rooms as small as possible. It’s often frustrating to ask a question in one channel and wait for a while before someone answers to ask in another more specific channel.

So IMO, a minimal solution would be :

  • keep scala/scala as the central channel of discussion about Scala
  • create a scala/welcome (or scala/beginner or scala/whatever) dedicated to bootstrap new members of the community
  • advertise that this new channel is the best place to ask beginners questions (on scala-lang.org, etc)


I’m concerned about that as well. I think beginner questions in scala/scala would have to still be allowed and encouraged, with the beginner room being only an alternative for those who want it.


We went through a similar discussion in Typelevel and briefly had a channel for “advanced” conversation, but decided to remove it.

I’m generally :-1: on splitting the channel. It’s hard to avoid the “cool kids” thing. My wishy-washy suggestion is for regulars to be more vigilant about asking people to move conversations elsewhere if they’re flooding the channel and are unlikely to be helping casual readers. This is a fuzzy line obviously but I think it’s usually pretty clear when something is off the rails.


Perhaps, but I have to say, I don’t think we are doing a good job with this. Extremely busy threads are pretty common, and newbie questions are often lost. (I often find them and try to answer when I can, but it’s often been hours by then, and I’m sure I miss tons.)

And the thing is, traffic is massive. I work hard at following scala/scala, and often can’t. That’s the circumstance when I start to think that a split may be appropriate.

Like I said, I’m not sure of the best approach, and I’m sure that everything has problems. But IMO the problem is pretty real…


I would endorse scala/debate as a less-focused room. Like the old mailing list, it could also be more forgiving about tone of voice.

Gitter lets you see activity in other rooms through icons and notifications, but it would be a useful feature if Ichoran (for instance) could hang out in the opium haze of scala/den but also see clearly into scala/scala, perhaps with interleaved messages. Replies to messages originating in scala/scala would appear there.

Alternatively, Scala gitter could be structured like an adventure game, as a series of winding passages, and eventually the stout of heart can discover the room where a wizard waits to answer their question.


I think its part of Gitter, stuff gets lost. In fact I’'d say Gitter is working as designed. If you want to avoid stuff getting lost the people should use Discourse. I doubt this is possible technically but my ideal would be for all posts on discourse to be automatically published on a matching Gitter channel. So:

Discourse: considered, focussed, medium / long term posts.

Gitter informal, free wheeling, social, quick posts, where you don’t have to worry about saying something stupid because it’ll have disappeared down the Gitter river in a few hours. Again I don’t know about the technical practicality, but it would be nice if Stackoverflow questions tags triggered a post in the most appropriate Gitter channel.

The other thing to consider is Stackoverflow. I rarely use it these days. Are we as a community committed to maintaining three types of information channel? Again I don’t know if its technically possible but it would be nuce if Stackoverflow questions tags triggered an alert in the most appropriate Gitter channel.


I don’t think Gitter is a good place to ask most of questions. I would suggest StackOverflow if we want questions to be searchable.


In all channels I’ve found valuable over the years, discussion about subjects still too advanced for me has always been one of the most valuable learning tools. Just reading discussions, questions and answers helped me broaden horizons and get a better idea of the depth and the breadth of the subject.

Splitting out a “beginners” channel for beginners may deprive beginners from that experience, which I would consider a loss.

Further, I have doubts about spreading the “answerers” too thin. In practice, in scala/scala the vast majority of questions that come in are answered by a relatively small group of people. Splitting out a “beginners” channel will likely reduce the amount of people equipped to actually answer questions per channel. Questions may go unanswered for a longer amount of time, and the quality of answers may degrade. If that happens, scala/beginners would effectively become a dead channel, which would be a net negative.

While we have survivor bias in that we can only see the people who are not “intimidated away” from the channel, my personal impression is that the downsides of splitting out a beginners channel outweigh the possible upside of people being intimidated by the channel and driving away people who otherwise might not have.

I can see more merit in a scala/debate channel. I think it’d also be a dead channel, and that the phrase “please take this to scala/debate” in effect will mean “this discussion is now over” - but I’m not sure that would be a terrible thing per se.

In the end, I would suggest avoiding splitting the channel until the volume of parallel discussions seriously degrades the usability of the channel - and that point is not now.


Although I don’t actively participate in most of the conversations on the gitter channel, I follow most of them. Like @martijnhoekstra mentioned, I’ve learned a lot over the years as well just by reading through the discussions and running the posted sample code.
I really like the way the channel treats the newcomers, a new channel could wait IMHO.

NOTE: I am a beginner myself.


I don’t see sufficient consensus on a change, so I guess we’ll leave things alone, for now anyway.