Alternatives to IRC

I know there has been some discussion recently about moving from IRC to Slack, and we have a couple Slack groups set up. I love Slack, but I'm not sure if it's the best option for a chat platform, especially after coming across this issue: https://github.com/reactiflux/volunteers/issues/17#issuecomment-147300333

Mentioned here is a service called Gitter, which sounds like a perfect fit: "Gitter is built on top of GitHub and is tightly integrated with your organisations, repositories, issues and activity." also "Get unlimited public rooms and one-to-one chats, free forever."

I have not tried Gitter, so I'm curious if anyone else has used it that could offer an opinion.

Then of course there is also the root question, do we need an alternative to IRC?

To answer your last question: No.

Slack seems also more the closed-group approach (invites needed) and is not suited for open discussions and newbies.

If I start thinking about an alternatives, a jabber/xmpp based solution would be something that could be interesting, because of its openness and good availability of clients on all platforms.

OTOH: Shouldn't we develop Plone instead of fighting/discussing tools? At least with IRC: It just works, there are lots of clients and tons of documentation, why replace?

2 Likes

I think it's better to keep the discussion going with a certain timeframe & objectives. I'm fairly open to other options, and don't even mind staying on IRC, but I think we should come to a conclusion as a community on something to serve us for the next 3 years or so.
Reactiflux had a big discussion in a relatively short timespan on options - but that starts with a great comparison of the services available.

And it also includes a link to a useful looking comparison chart which we could apply our own weightings to.

2 Likes

Big reasons for NOT using Slack:

  • it's closed to Google searching, so if we moved to Slack, suddenly our visibility as a project and our community activity would disappear from the public eye, something equivalent to cutting our own throat

  • the searchability WITHIN Slack for past messages is severely limited after 10,000 messages, because we are non-paying

  • to have searchability WITHIN Slack (again, no Google visibility), we would have to pay a lot of money (it's per user per month) or we would have to request Slack's non-profit plan, which again limits the number of users to the low hundreds

  • as @cdw9 points out, at least one other large open source community is trying hard to GET OFF SLACK for related reasons

  • Slack's invitation model is the opposite of our open community's model of just letting someone jump in and participate... with Slack you need to know someone who can send you an invitation

So while I use Slack for my work with Wildcard and for small project teams, I think we should definitely not use Slack as a community.

+1 for not using Slack, but IRC alos don't fill all needs.
I would like to have something like slack, but more open.
Maybe based an XMPP which i really like too. But we have to look what is available.
I don't think that we will disable IRC in the future, but it would be nice to have a platform to which we can jump over and have richer content.

XMPP is also more realtime communication, because of the existing and well integrated clients.
XMPP combines for me all good things in chat communication, which are some times missing in IRC.
Like server side archive, offline messages and encryption if needed.

1 Like

What is there were a Slackbot that archives the conversations in the open?

I have used gitter for classes I've taught, and found it pretty much useless. For the needs of that particular community, Slack was a much better fit (the groups were small, the lifespan of the channels short, and the materials largely of interest only to those in the group). For us, I think IRC, or something equally open is vital.

1 Like

I agree, IRC works and is free for us as in no infrastructure or maintenance costs, apart from maybe a few bots. Good clients exist, even for mobile with irccloud (5$ per month) and probably many others. For me being able to scroll back in history and a mobile app with push notifications on mentions are great features in slack, and I get that with irccloud. The only thing slack has is file sharing, and we don't really need or want that for our channels.

For internal discussions in some of the teams like the the board, marketing or the AI team we might want to use other tools, maybe something like slack but we are hoping to try out the Plone Intranet project when they have push notifications. We want to have as much of our discussions in public open to all so it is easy to join and easy to see what we do.

2 Likes

So what would be the arguments against XMPP / Jabber?

Btw, any alternative needs to have the same low entry barrier that IRC has. Anonymous users can access us via a webapp without the need to register for anything. This should thin out many alternatives :slight_smile:

2 Likes

For our purposes it's not enough to ask "why not" a given tool or service or technology; we need to ask "why" move off irc...

Could those of you talking up xmpp say which software you really mean on the front and back ends? It's otherwise just a protocol. Might as well say that TCP would be good :wink:

1 Like

+100

+100

But, since this is among friends, I can go a few rounds:

  1. It is not more user-friendly for newbies then IRC, possibly worse, no idea about anonymous web clients
  2. Clients are optimised for 1-1 chat, not group chat
  3. That someone has to install and maintain a server
1 Like

Implement http://rauchg.com/slackin/ ( https://github.com/rauchg/slackin ) to have very easy access.

I think anonymous users posting a message into the void has very low value. To make this worth something, people need to be watching and answering. In reality, getting a useful answer that is not rude out of an IRC channel is an art. Getting it in a timely manner is a matter of luck and timezone coincidence. With Slack, a user will be notified to their email address when someone answers.

For what it's worth... we're working on a Slack inviter integration for Plone 5 in a PythonJamaica sprint in mid November http://pythonjam.org.jm/blog/how-we-built-the-pythonjamaica-slack-inviter

Firstly... I know there are other issues with Slack... but maybe we can fix them.
Secondly... I'm absolutely uncommitted to Slack but it got some traction at PythonJamaica, younger users are just not on IRC.

1 Like

Slack signup can be opened as desired: GitHub - rauchg/slackin: Public Slack organizations made easy

On that note, it looks like admin access has been locked down to only tkimnguyen (owner) and vangheem. That does seem like a closed-group approach, but it's a user decision, not something enforced by Slack.

XMPP-based would be great, but no one has built anything halfway as good as Slack on XMPP. Here I'm with @cewing -- I've tried plenty of chat apps, including gitter, and Slack wins.
One can host git repos on sourceforge or a dreamhost server, but Github makes it 1000 times more useful. I think same is true for Slack for chats.

I don't like that Slack is closed source, but the conversation export is complete and documented.

IRC/XMPP clients work with Slack: https://slack.zendesk.com/hc/en-us/articles/201727913-Connecting-to-Slack-over-IRC-and-XMPP

Slack is much more friendly to newbies than IRC .. avatars, inline images, attached files, emojis .. who does any client communication at all on IRC? All my clients have a Slack team.

I agree that arguing about using Slack is a waste of time. We all use many communication channels: email, Skype, WhatsApp, HipChat, IRC, Github issues, iMessage, Google Hangouts, etc. The Plone project uses quite a lot of Google Docs which is usually absolutely horrible except for the fact that they're very useful for certain jobs. We use twitter (and some even still try to have conversations on twitter).

I just pointed out a truly very useful tool that became available and said hey let's use this, in addition to all the other wonderful new things becoming normal, like github, jenkins, docker, AWS services, etc. We all use what we need and what suits us. We don't all have to use it. (I agree with @MrTango: certainly don't disable IRC.) It doesn't have to exclude those who don't use it: import archives publically.

In my experience, IRC is very wasteful: a lot of knowledge is shared there, but it has not been archived. There are many missed connections because the right people aren't online at the same time, and there aren't @notifications (that go to email if you are not online). If more than one conversation is going on at once, it becomes a hard to read tangle -- at least in Slack there are topic channels.

We should be careful in our choices and be aware of tradeoffs and compromises: the github issue tracker is not open source, AWS is a proprietary platform, etc. I do keep these in mind when looking at technologies and don't recommend any shiny new thing that comes along.

I believe for the people who like it, Slack will make developing Plone a more efficient and enjoyable experience.

Here's a page that makes some of the same points as I tried to: WordPress Chat

The WordPress project is testing out Slack as our main real-time communication platform, replacing IRC and ad hoc Skype chats

Yes, there's only one thing missing --- someone building (something as good as) Slack on XMPP.

  • Where we don't have to run a server,
  • where everyone else is already using it, and have a team there (network effect, like github),
  • where everyone is writing integrations with it,
  • which has all the useful extensions integrated (e.g. syntax highlighting, long-form snippets, inline images & files) ..

I think it would be easier building on the JSON export, but for realtime export a Slackbot would be great. Perhaps the XMPP gateway can be used for that also.

It was very convenient during the training, see e.g. https://plone.slack.com/archives/training/p1444639657000007 (that id corresponds to a timestamp in the JSON export; the JSON contains a comment, a preview of the file, various metadata, and links to the file snippet, which would also have to be imported if desired. In IRC, links to pastebins are mostly considered transient, I think).

  • If we used Slack, we would certainly be exporting the conversation archive and importing it somewhere public to make it searchable. The export is very straightforward JSON. We would be doing this anyway to deal with the 10,000 message archive limit in the free version.

  • The searchabiltiy within IRC for past messages is absent unless you have web archives, which we don't.

  • The community in question (I believe reactiflux) had a single Slack team of about 8000 people. Have 8000 different people used the #plone channel on IRC over its entire existence? Normally we're about 100-200 people. I really think when we're into the thousands of people, it will make more sense to have different teams.

  • As I've been pointing out, there are tons of open-invite Slack communities out there. Here's an incomplete list (both open and closed teams): https://medium.com/@angiecois/an-incomplete-list-of-communities-on-slack-1b1b6f157bda#.upuf6h59w

The existence of slackin you point out @jean certainly goes a long way toward helping slack be useful in my opinion. If we had a button on plone.org that let folks get themselves into the channel, that'd help a lot.

And the idea of setting up an automated archiving process also seems quite nice.

I will say that the search, notification, and asynchronous comms support in slack is superior by far to IRC, so that's good.

I also agree that the argument that large communities are not supported (a la React) is specious until we have a large community to worry about

I think I'm starting to tip a bit in the direction of supporting it.

I guess the question is whether we have the community resources (time, energy, etc) to support the archiving and maintenance needed to manage a Slack presence.

Anyone are free to introduce new ways of doing things in the community, it happens all the time, first you build it, then make people come, then it is thew new way. This is how we have gotten such great docs, CI. That is how we moved to github, and how we moved to Discourse.

I have always used IRC in a screen, always being on, so I can understand that if you don't do that it can be frustrating. I now use irccloud, that is always on, automatically marks you away and has iOS apps and push notifications to both desktop and phone on mentions and pms, so I already have most of what slack offers.

Keep in mind:

  1. Startups change the way their services work all the time, and pricing models or features can make slack a lot worse or unusable for us.
  2. The AI team wants to run as few services as possible, so we are not going to jump at the opportunity to install and manage complicated stacks of software.

Agreed. Getting the archives can be an hourly (or daily, or weekly) cronned wget. Importing to e.g. a PloneBoard instance or a rapido app might be a 100 or so lines of Python for something basic. The import script would need to be run on new exports, find the last timestamp imported and process everything later than that. The export remains as authoritative source.

I'll give the import script a try as soon as I have a bit of time ..

I have mostly "mind-issues" with using Slack. I'll try to explain:

  • I make a mental separation between public and team communications. At the moment, Slack is used for some teams in the Plone community. That works fine: you know the members of the team, you can talk to them as the people you know.
  • on public channels, you behave differently. You are acutely aware that this is for eternity, and for consumption by world+dog.

The separation of tools makes this easier in my (admittedly feeble) mind. Using the same tool for both controlled-group conversation and world+dog communication would have to make me think. Now all remember Nielsen's famous don't make me think motto ;-). So that's why I like this separation of concerns, and that would pose a serious challenge. In what channel can I use shorthand cultural codes and count on a shared history of people, and in what channel can I assume none of the above...

And, as mentioned in this thread before, for world-open communication, I think having Google/Bing/whatever-other-countries-use indexing and archiving is key.

Plus of course, I'm quite emotionally attached to the sheer retro charm of IRC, but hey I'm old...