CMV: Elm would be better off without Slack

Just gonna throw my 2 cents in here - Zulip is the best messenger for big communities hands down.

  • open source
  • thread model makes digesting async content a breeze. no more wading through 10s or 100s of messages you don’t care about just to see what you missed. no more of your question/comment getting no attention because it got buried before anyone responded to it.
  • they give free standard plans (infinite history) to open source communities
5 Likes

Slackbot intermittently posts to #beginners. Should the community wish to promote SO usage (or something else) this message could easily be modified to include that.

Reminder: Newcomers are often frustrated. Imagine how you feel when you spend 4hrs on something annoying! Here are some tips on how to be supportive in addition to helping with their technical problem: community/chat-tips

3 Likes

For Zulip there is Zulip Archive used by e.g. the functional programming zulip archive

1 Like

Here are the admins of the Slack:

https://elmlang.slack.com/account/workspace-settings#admins

Admins, if any of you are reading this, two questions:

  1. Did you know the 30 day message limit applies to everyone (unless we pay 100s of k’s a month)?
  2. What do you think about the bot nudging people to post on Stack Overflow?
1 Like

I joined a new company 2 months ago. Again, I have to convince most of my new co-workers Elm is the best option for front-end development, and I already know it will be difficult, to say the least. It required a lot of energy in my previous company. And in this new one, we already have a front-end lead dev using React :frowning:

Some of the difficulties are inherent to Elm’s nature: the paradigm and the syntax are unusual for most of developers. Other obstacles to overcome are accidental, and related to the tools we are discussing here.

  • the low number of questions on S.O. is a major disadvantage when talking of language adoption and visibility. All “studies” about programming language popularity use it as a KPI => low ranking mean lot of developers just do not consider using Elm at work (“Elm is a toy language”, rings any bell?). And I know developers who use this themselves as a criteria to adopt a language, independently of what says these “studies”.
  • The loss of message on Slack is a PIA for my own use. Sometimes I would get faster answers if I had access to it. And it means serendipity is limited.

I think @cmart questions are very interesting and we should try to answer them:

I think S.O. and Slack serve different purposes. S.O. helps for discoverability and language visibility, and Slack to build a friendly community.

The rare times I went on r/elm were mostly really bad experiences. There are some very vocal Elm haters on this platform. I 'm pretty sure Reddit does more harm than good to the language and community.

I have no current answer to the rest of these questions, but I encourage you to answer them if you have.

4 Likes

Could an archiving bot be installed into slack, which collects all public channels and threads into an markdown based directory structure?

Once a day it creates a commit to an archive repository on GitHub. It begins every day a new file per channel, everything should be easy to handle. You can then search, view and navigate through the archive on the GitHub site. Threads are created in a separate file besides the channel. The channel markdown file links to the specific thread markdown file. I think it is important to keep the attachments. There are sometimes nice recordings for creative work projects.

The files could be organized as followed:

  • Attachments
    • Screenshot.jpg/png…
    • Recording.gif/mp4…
  • Channels
    • Channels
      • YYYY-MM-DD.md
      • YYYY-MM-DD-ThreadId.md

If the markdown files are nicely structured and annotated within comments, other people could write more tools to make it easier to find new information. Grouping questions on specific keywords or something else. Also it is important that it is machine readable, because threads could be started at a later time. The bot should be able to insert the links to the created thread file. Also maybe we want the reactions stored as well? Often a question is answered only with a thumbs up reaction.

Advantages:

  • Having everything accessible forever
  • Easy backup with git clone
  • Everyone can clone it locally for some analysis, e.g. FAQ?
  • Ability to link to discussions for GitHub issues
  • Because GitHub is a website, it can be found with Google
  • GitHub can display markdown with media and syntax highlighting
  • Using GitHub enables us to have it usable really quick - later someone could create a special website, if GitHub is not handy enough
  • We do not need to replace slack with StackOverflow or other chat platforms

Disadvantages:

  • Someone need to write the slack bot
  • The elm team must install the slack bot and prepare a server which collects and uploads the archive to GitHub
  • Private threads and direct messages will not be archivable, because everything would get public when uploaded
  • Someone need to maintain the bot implementation and server - slack may change some api details or replace it with a newer version

Open questions:

  • Should every document file have a version header? Newer tools could then switch the implementation for very old chats.
  • Could an archiving bot be against the terms of slack?
  • Is it possible to follow the conversation of longer threads? At least the current slackbot is able to react on messages within threads.
  • What happens if the slackbot is offline for some time? Will it miss some messages or can it continue at the point of the last received message? Can it also continue on the threads?
  • Is it possible to style the contents of the markdown, so it looks almost like the chat history of the slack app?

Difficulties:

  • The markdown file must be machine readable, so it can edit it later. So, we need a spec for the markdown file to ensure everything is written and read correctly. Also specific chat messages should not be able to corrupt the file. We should be safe, if we escape messages and put the metadata inside html comments.

There is already an archiving bot for slack: GitHub - docmarionum1/slack-archive-bot: A bot that will archive your slack messages and make them searchable. No more 10,000 message search limit.
It does not store the attachments and puts the messages into a sqlite database. Also it does not connect automatically to new channels. The project has about 900 lines of python code. Using sqlite makes it hard to access the data, because then we need to write all the queries and endpoints, which is not necessary if the chat is stored with a document format in directories.

Do you think the archiving bot could be written, installed and the created archive be put on GitHub?

2 Likes

I remember there being a bot way back when. I don’t know what happened to it.

1 Like

It’s against slacks terms of service to circumvent their pricing model.

3 Likes

Why would you even consider this? Is it more questions equals better language? Is it more answeres equals better language? How can you compare a language that is large with a language that is focused? Say Java against Basic? Do you need to consider LLOC of each language to make any sense of this? How can this be statistically relevant? Help me understand this please?

Also are more questions good, as they needed to ask the question? Or would less questions be better, as the language has less problems?

3 Likes

In this case it’s not that there’s fewer questions. You can log into Slack and see that people are asking the sort of technical questions that SO is suitable for. The answers just disappear in 30 days ish, so everyone has to ask the same thing.

At this point we have a range of things that’d be helpful, from easy (a Slack bot that prompts people to cross post to SO) to medium (a survey) to difficult (everyone switch to Zulip) to illegal (install a bot that scrapes slack history).

I’m confident this is going to go nowhere unless there is some buy in at the top.

I think this blog post about project management and the role of an executive is a useful framing:

http://www.arnoldkling.com/blog/vaccine-distribution-and-the-obamacare-web-site/

“In business, a project needs a strong project manager and a project executive who is powerful and involved. The project manager figures out how to solve every problem in getting the project done, and the project executive knocks over everyone who the project manager says is standing in the way.”

“The project executive should be the governor… The project manager in this case should be somebody with experience in solving a logistical crisis.”

Especially with how top heavy Elm is, we can flail around in this thread suggesting alternatives and survey questions and things that would help (which past threads have done too), but unless someone with more clout (or at least someone with admin rights in slack who can program a bot) takes an interest my prediction is it will lead to nothing.

2 Likes

I personally don’t care about these questions, or I wouldn’t have chosen Elm for all of my Front End development since a few years.

However I’m not alone. And a lot of people consider the community size and the available resources before choosing to use a language. The number of questions on S.O. is an indicator for both.
It obviously has nothing to do with the intrinsic quality of the language itself. It’s rarely the better product who wins the jackpot.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.