typelevel / general

Repository for general Typelevel information, activity and issues
19 stars 8 forks source link

New Gitter chatrooms for alternate FP discussions #53

Closed adelbertc closed 7 years ago

adelbertc commented 7 years ago

Yesterday in the Cats Gitter channel some of us started talking about topics not strictly related to the Cats project, but still about functional programming in general (e.g. algebraic effects, Free, derivative parsers). There were some concerns around this perhaps being too off-putting for a channel like typelevel/cats and after brief discussion typelevel/oleg was created.

That created another concern which is that the naming of the channel might seem too clique-y and in general can come off as unwelcoming - a sort of typelevel/cool-kids.

This issue is to discuss if such an alternate room needs to be created at all, and if so what to name it. Potential names that have come up:

djspiewak commented 7 years ago

Some relevant discussion markers:

And a relevant meme:

take it to Oleg

larsrh commented 7 years ago

Whatever you decide on (I don't have an opinion), please ping me so that I can archive the new channel.

tpolecat commented 7 years ago

I'm concerned about using fp as the label because the whole premise here is that FP is approachable and practical and ultimately easier than the alternative. I think using an fp room to discuss advanced stuff may undermine that idea.

To me theory is a good neutral name. In FP theory and practice are the same thing so I don't think it implies that you can't have "practical" discussions there, but it does imply to beginners that maybe it's not where you go to ask about foldRight.

As I said on Gitter my goal is to get people to ask the question instead of closing the tab. So as long as a beginner is unlikely to land in the middle of a hurricane of advanced type theory any solution is fine with me.

dwijnand commented 7 years ago

@tpolecat Indeed. fp wouldn't be the replacement for the current oleg room, it's for an additional room for non-project specific chat. Currently that chat would probably be in the cats room, but that's quite a big and high-volume room, so I propose another room is created.

fanf commented 7 years ago

I think somehow the naming scheme was lost. The idea was to have:

(I don't know if the name are OK, I'm just quoting the two which were proposed initially)

My concern was that I don't know where to ask question like (quoting from the chan):

when everybody is talking about chan and topics... Where do I shall go to ask general question on Scala, where I want a FP answer ? example: I have more and more case clases representing different use case for domain objects. Typically what is, say, an User in my JSON API / Backend / DB. These things mostly overlap, but not exactly due to maintenance along times - typically, the update life cycles of API must be extremelly well managed, whereas I want to have backend domain class evolution directed by need (in algo, app, etc). So, just to say: I spend more and more time copying between case classes. Which should be mostly automatic (perhaps with shapeless? But I don't know). What's the best place to ask that? I had the same problem when I wanted to have information about using case class for identifier (for semantic) but how to limit boilerplate and gc pressure. On scala general chan, the answers were out of scope (more like: why using a "final case class UserId(value: String)" at all, not just a String?), and the question was not really for typelevel/cats either

milessabin commented 7 years ago

I think we need to have an informal poll to move this forward.

Could people add comments following this one, (headed Poll entry, so that they can be distinguished from general discussion) with the (name, purpose, short channel topic text) of one or more additional Typelevel gitter rooms. I will add an entry comment for "No change, leave things as they are".

Then could all interested parties give a :+1: to all the options that they would be happy with.

We'll leave the poll open until the 27th and then go with the option that has the most :+1:'s.

milessabin commented 7 years ago

Poll entry

No change, leave things as they are.

milessabin commented 7 years ago

Poll entry

Name: typelevel/general Purpose: General non-technical discussion around Typelevel policy, events, admin. This is a slight refocusing of the existing channel. Topic line: "General topics relating to the Typelevel projects"

Name: typelevel/general-technical Purpose: Non-project-specific technical discussion. The expectation is that people will come here with general questions and answers around functional programming in the Typelevel style which aren't directly related to any particular project, or which cut across multiple projects. Posted code snippets should be mainly Scala (exceptions should be made for questions along the lines of "how do I translate this piece of Haskell into Scala" and such like). People of all levels of experience with Scala or functional programming are welcome. In some cases people will be directed to project-specific channels if their questions would be better answered there. Discussions which move in a more theoretical direction (ie. require in depth discussion of literature which is not generally accessible, or which would benefit from extensive snippets of Agda/Idris/Coq/Haskell etc.) should migrate to typelevel/general-theory. Topic line: "General technical topics relating to the Typelevel style of functional programming in Scala"

Name: typelevel/general-theory Purpose: Non-project-specific discussion of a more theoretical nature, requiring in depth discussion of literature which is not generally accessible, or which would benefit from extensive snippets of Agda/Idris/Coq/Haskell etc. Discussion here isn't constrained by the current state of specific projects, or Actually Existing Scala, however there should be a clear desire to feed back concretely and accessibly into Typelevel projects and the language. Topic line: Technical discussion of a more theoretical nature. In depth discussion of not generally accessible literature and snippets of Agda/Idris/Coq/Haskell etc. welcome."

mandubian commented 7 years ago

good compromise to me

fanf commented 7 years ago

What @milessabin proposes seems perfect for me. With that, the disctinction between general and general-technical is clear, and general-technical is a welcoming entry and indirection point !

Thanks @milessabin !

ShaneDelmore commented 7 years ago

I like what @milessabin is proposing in general. My only small concern is that TypeLevel/Scala doesn't map up to the TypeLevel version of Scala/Scala. I see people going into TypeLevel /Scala frequently hoping they can ask the same type of question they would ask in Scala/Scala when they want an answer that doesn't involve a var and a while loop, only to be told the question is not appropriate. Is there some way to make this more obvious?

dwijnand commented 7 years ago

The alternative is to follow suite and make the duo typelevel/scala and typelevel/contributors to mirror scala/scala and scala/contributors. I do see your point but I'm not convinced it's a problem that needs solving.

etorreborre commented 7 years ago

Poll entry

I think that it is a bit too much to separate typelevel/general-technical and typelevel/general-theory

In theory, theory and practice are the same. In practice, they are not

I would just add to the existing typelevel/general dedicated to organisational matters and add

Name: typelevel/discuss

Purpose: Discussions around Typelevel projects whether purely technical ("how to use cats with http4s?") or theoretical ("could we use a proof assistant to help with typeclass resolution?")

Topic line: "Technical or theoretical discussions around Typelevel projects"

dwhitney commented 7 years ago

Poll entry

Get rid of typelevel/oleg and add no additional channels

dwhitney commented 7 years ago

Regarding my comment above - I've got channel fatigue. Please no more channels! Also what happens if you have an innocent discussion going on in cats that evolves into something more "intimidating"? Are you just supposed to switch channels? When is the appropriate moment to make that switch? Will there be guidelines (this seems silly to me)? When @johndoe comes into a channel and begins discussing something "inappropriate" for the channel should someone stop him and tell him to move his comments to another channel? Seems uninviting to me, and so does telling someone to read the guidelines.

I think you guys have done a tremendous job of creating an inviting community, and I think @tpolecat's gut-check on the discussion being had was a clear indication of how inviting you guys are. But I really don't see the need to stop whatever discussion is being had in any of the channels, and yeah typelevel/oleg is a bit too "cool kids". My 2 cents

milessabin commented 7 years ago

@dwhitney I take your option as equivalent to "no change, leave things as they are".

milessabin commented 7 years ago

FWIW, I don't think it's a problem politely redirecting conversations to more appropriate channels if they veer too far off topic. If someone is asking a question on the Cats channel which is clearly related to shapeless I don't think it's unwelcoming to politely suggest discussing in the shapeless channel.

mjhopkins commented 7 years ago

Poll entry

Rename oleg to indepth.

It's clear what it's about. If you just want to find out enough to get something working, you can see it's not the channel you're after at this time.

It's not cultivating an off-putting elitist "cool kids" image. It's just stating what it is: a place for more in-depth conversations.

At the same time, it's not cutting off the discussion. After all, this kind of discussion is likely to be where the next big insights spring from.

milessabin commented 7 years ago

Summarising the above, my two-channel proposal is the marginal winner with 13 votes, with the "No change, leave things as they are"/@dwhitney proposal (which I take to be equivalent, ie. delete typelevel/oleg and stick to the prior channels with no additions) on 12 after deduplicating the votes split between the two choices.

On balance and on reflection I think I prefer the "no change" option (ie. delete typelevel/oleg with no replacement and return to the status quo ex ante), so I'll withdraw my own vote for the two-channel option, making it a dead heat. In which case I think the "no change" option wins in virtue of being the status quo.

Any more thoughts before I close this?

etorreborre commented 7 years ago

I think that's a valid conclusion :-).

larsrh commented 7 years ago

@milessabin Fine with me.

milessabin commented 7 years ago

typelevel/oleg deleted ...

larsrh commented 7 years ago

Archives are here, in case anybody is wondering.