Please don't use Slack for FOSS projects
drewdevault.com
drewdevault.com
The "IRC Features" section bugs me, too. Unless you run a private IRC server IRC has a long, tortured history of design-based security difficulties. Gone are the days of netsplits permanently owning channels, but the so called "distributed" design of IRC makes it very brittle and easy to deny service.
Oh, and did you know that with modest, low volume channels (>200 <1000, some networks tolerate more) you can make IRC networks struggle? Turns out that their lousy distributed design hurts more than helps when single channels get heavy.
Slack also offers a logging service that, for what it's worth, is configured correctly and secured by default. For organizations with 1-3 technical staff, maintaining and securing a reasonable approximation of Slack's feature is probably time better spent working on your product.
IRC is a classic example of the "it's broke but we don't fix it because it's familiar" mentality of old school services. While it may be a good choice for running low-volume (<500 users) public communication. Most tooling around it is woefully inadequate and often tedious to use for small software-oriented teams where Slack thrives.
But if you're genuinely concerned about security, HipChat will sell you a whitelabel product you can host and monitor and its setup is quite good for what it is.
So run a private IRC server? This is a weird caveat, like complaining that angelfire is an insufficient web platform and you have to run your own http server to do well. There are a billion IRC clients, libraries, and bots out there. There are IRC servers in most distros. There are JS servers in NPM. Why not use them?
We'd rather not manage that ourselves. It's just one more thing we can screw up.
This is different than the FOSS subject of the article, but it true that convenience is compelling.
I think we migrated to Slack for connectivity reasons, fonts and general user interface, and the bigger list of integrations. Are these worth $6 per user per month? If you've got the money then maybe. But it's by no means a given.
Originally, we were using Campfire.
As needs grew beyond just putting out fires, we looked at Hipchat, Flowdock, and Slack. We probably would have gone with Hipchat (because of the price), if they had SSO, or better JIRA integration. Slack had both.
I hope you have a repeatable provision, AMI, static IP linked to a tcp loadbalancer and autoscaling group in the event AWS rotates out your instance.
And of course, the same goes for your logging and search and file sharing infrastructure. And of course, similar caveats exist for the database said features use.
This is the realm of systems administrators, if you can't read a 20 line config file then sure, run slack..
but for a biggish company that values security and publishes NDA's like mine, an IRC server is a better solution.
however, Project Managers fucking -love- emoji and sending word documents across the planet.
And you'd take on the burden of constellation of comparable services as opposed to a white label hipchat because....?
Slack isn't a file sharing platform, it's a communication platform. As such, they try to make communicating about, discovery and grouping of files in dedicated file sharing platforms easier.
I'm guessing it does not, and setting this server up was considerably more irritating than just spawning off another t1.micro and apt installing IRC onto it.
And even then, they'd further need to exploit some vulnerability in your IRC server to do it unnoticed.
Given A and B, if A were good enough, people would use A... What if B is better? What if both are good enough?
You go on as if your first sentence stands up on it's own. It makes no sense at all.
Prior to Slack existing, lots of people who now use Slack weren't using IRC, because Slack offers a lot more.
Everyone I know working in academia or on a startup that uses any kind of instant chat uses Slack. None of them previously used IRC for the same purpose.
And it's just _obvious_ why, once you've used Slack for a while. They're quite different -- IRC is a protocol for real-time discussion on the internet. Slack is a business tool that incorporates real-time discussion.
Wow, going off the deep end here. Unless you are a time traveler, there is no way to not use IRC because of slack, 'prior to slack existing.'
Uh, nope. Most people use communication platforms due to network effects: because they were invited to use it, because their friends/coleagues use it. Slack is no different.
I mean, Slack appeared on scene after many other technologies existed. People recommend it for their friends because it works well. There is no global network effect at play.
I don't know if Slack is better or worse (I've never used it, I thought the title was talking about Slackware linux which seemed odd) but you draw a much bleaker portrait of IRC than what I experience day to day using it extensively.
Now if you want to talk about mailing lists I might side with you...
I'm being brutally real. IRC is a brittle, aged, poorly designed protocol even by the standards of 1988 academia. You could design a more robust centralized service just by using off the shelf components today.
Seriously. Use off the shelf Google Container Engine stuff along with some modest websocket work and even relative neophyte will end up with a more robust service with better scaling characteristics.
Really, that's why stuff like Slack and Hipchat exist. Becuase it's not really all that hard to do a much better implementation than what IRC can feasibly do.
But I think if we asked your IRC network how ma you nets plots they experienced in the last 2 years the number would be >1.
I guess it's down to personal preference whether you prefer being able to talk with a partial group knowing that some people are absent, and not being able to communicate at all.
I would much prefer clear indication that there is a problem communicating with others so I can fall back to an alternative method of communication.
* The ability to directly send files and images to channels is an objective benefit Slack has over IRC, which has even less ability to do that than MIME email (at least MIME lets you post the base64'd file contents of your image, rather than just a clickable link).
* The ability to send long messages or whole source files is an objective benefit Slack has over IRC.
* The ability to, by default and without running a secondary service that can crash or lose connectivity, log and search channels is an objective Benefit Slack has over IRC, which can support that feature only by using bots, and only by tunneling results through privmsgs or forcing users to leave the IRC protocol itself and visit ancillary web sites.
* The ability to edit and delete messages is an objective benefit Slack has over IRC.
There's probably a bunch more. Don't get me wrong: I don't think Slack is amazing; it's good for what it is, but in 2015 it's pretty unremarkable. The issue is that IRC is so. bad.
There are probably still people making fun of poseurs and hipsters who use IRC instead of ICB. The OpenBSD team used to be like that.
Interpreting and displaying those DCC'ed files or cutting longer messages into sub messages and recombining them is something that you could implement via the IRC client just as easily as it was implemented in Slack (not to say that it would be easy, it'd be a lot of work, but it likely would not be much more work than what took to make that function in slack).
If you're modifying IRC anyway, you can modify the server to record logs and make those available to clients.
Same goes for editing.
IRC is not as bad as you think it is, and it wouldn't be an insurmountable effort to make it as good as slack, but open sourced rather than proprietary, which was the entire point of the original article.
Given the problem of sharing a diagram with a team of developers on a group message channel, I'm sure there's someone here who would say they prefer the DCC option of receiving a named file and then opening it with a file viewer, rather than simply dragging the file into the chat window and having it appear instantly to everyone on the channel. The existence of that person is not interesting to me.
I have IRSSI always running in a remote screen session. I read many mailing lists. It's not just my personal preference, it's part of my workflow. When I hit a problem, my immediate reaction after consulting the docs or google is to ask a question on a relevant IRC channel or hit up a mailing list. I don't think I'm the only one that works like this, either.
So asking me to use hipsterchat or slack or gitter or trello or whatever means another another client, and not one that's going to replace my other client, but in addition to it. That's not good. If it had some amazing features other than emoji and fluff, I'd be open to it. But they really don't. People get work done with IRC and a listserv, and that's all that matters.
Let's be honest, Trello and Slack have taken off because young developers aren't familiar with this system and are taking to a new one. And maybe in a few years they will become the norm and my argument will no longer be valid because my workflow will change.
But until that point comes, I agree wholeheartedly that it's a bad choice for FOSS communities, on top of the fact that these are paid services and you're locked out of control of your communications if they decide it's better for their bottom line. That alone seems antithetical to the idea of free software.
I completely disagree with you. My entire team is ~30 or older, and we all used IRC "back in the day". Slack is simply better for communicating with your team because of all the features mentioned elsewhere in this thread.
To suggest ignorance is the only reason Slack and HipChat have taken off is offensive to the people using it because they like it better.
I still use IRC for open source projects I use or contribute to. For the record, I agree with the article insofar as that OSS projects should probably continue to use IRC rather than Slack despite the persistence and team based features. Purely because it's unfair to expect all of your users and contributors to use yet another system for communication that isn't relatively open.
http://royal.pingdom.com/2012/04/24/irc-is-dead-long-live-ir...
The worst that can happen to IRC is something like Usenet's death - growing too popular to scale. But scaling isn't of primary importance because a network hosting 100,000 channels is only mildly more convenient than 100 networks hosting 1,000 channels each. Nobody wants a chat stream that looks like a popular Twitch channel, because there is no longer any signal when that happens, so big channels are outliers. (And Twitch chat is IRC-based itself - demonstrating how much this technology is a commodity.)
IRC isn't going to stagnate completely until people decide to give up on text-based chat. The main thing it has trouble with is new client features like inline images.
When most people will do all their chatting in Facebook or Slack, OSS developers will still use IRC.
source? or at least names of networks/IRCds?
freenode at least has 19 channels with more than 1000 users currently, and one with just barely more than 2000.
##linux 2072 :It's official! We're now Linux.Chat! | Channel website: http://linux.chat | Pastebin: http://paste.linux.chat | Spammers or trolls? use !ops <troll's nick> <reason>". | For op assistance, join ##linux-ops | Feel at home and enjoy your stay
#ubuntu 1798 :Official Ubuntu Support Channel | IRC Guidelines: http://ubottu.com/y/gl | IRC info: http://ubottu.com/y/irc | Pastes to http://paste.ubuntu.com/ | Download: http://ubottu.com/y/dl | Currently supported: 12.04 LTS, 14.04 LTS, 15.04, 15.10
#python 1763 :Don't paste, use https://bpaste.net/+python | http://bit.ly/psf-coc | NO LOL | Tutorial: http://bit.ly/MCAhYx | New programmer? http://goo.gl/c170V | Specify 2.x or 3.x in your question | Find your local User Group: http://goo.gl/S1Zsq | #python-fr #python.de #python-es #python.tw #python.pl #python-br #python-nl #python-ir #python.it #python-ro #python-india #python-hu #python-dev
#debian 1707 :Debian 8 Jessie released! /msg dpkg jessie ; /msg dpkg wheezy->jessie ; /msg dpkg install jessie | current point releases: /msg dpkg 8.2; /msg dpkg 7.9 | NO FLOOD: /msg dpkg paste | /msg bots NOT people | offtopic: #debian-offtopic | testing/unstable: #debian-next (irc.oftc.net) | chanlogs: /msg dpkg irclog
#archlinux 1655 :Welcome to Arch Linux World Domination, Inc. <+> Be kind to the people who are helping you. Be kind to the people you are trying to help. <+> FOSDEM 2016 participation! https://lists.archlinux.org/pipermail/arch-events/2015-October/000544.html <+> Yes we know about Twitch
#freenode 1566 :Welcome to #freenode | tor-sasl is offline until further notice | Staff are voiced; some may also be on /stats p -- you can /msg us at any time | FAQ: https://freenode.net/faq.shtml | Channel guidelines: https://freenode.net/poundfreenode.shtml | Blog: https://blog.freenode.net | Be nice!
#haskell 1505 :http://www.haskell.org/ | https://wiki.haskell.org/IRC_channel | Paste code/errors: http://lpaste.net/new/haskell | Logs: http://tunes.org/~nef/logs/haskell/?C=M;O=D http://ircbrowse.net/day/haskell/today?mode=recent | http://reddit.com/r/haskell | Administrative issues: #haskell-ops | Hackage status? http://status.haskell.org | http://downloads.haskell.org
#Node.js 1252 :Can't talk? Get registered on freenode (http://freenode.net/faq.shtml#nicksetup ) | Current Stable v5.0.0 (LTS: Argon v4.2.1) | Mission Statement: http://bit.ly/node-irc-mission-statement | Info: http://nodeirc.info | Logs: http://logs.nodejs.org/node.js/index | On codes of conduct: http://j.mp/1RFlyvr http://blog.izs.me/post/30036893703/policy-on-trolling
#go-nuts 1242 :isgo1point5.outyet.org | golang.org | known issues: golang.org/issue | channel log: botbot.me/5/log | don't ask to ask; just ask | ʕ◔ϖ◔ʔ | gophercon2015 videos: https://goo.gl/vKWB3Q
##javascript 1207 :Can't talk? Get registered on freenode (HOWTO: http://freenode.net/faq.shtml#nicksetup ). | ECMAScript, JavaScript. JS *not* Java. | Say "!help" (or ask and wait). | Say "!mdn abc" for docs on "abc". | Don't paste code in the channel.
#git 1169 :We use git, but don't be a git. Help given and wanted, or just gorge on candy | Current stable version: 2.6.2 | Start here: http://jk.gs/git | Getting "cannot send to channel"? /msg gitinfo .voice | Beware the git-reaper this Hallow's Eve: he comes for your rebases
##security 1152 :Computer & Physical Security http://fnsecurity.org/ http://ow.ly/gsVTo | Type !op to summon staff - Be nice or GTFO. -- Toothe is seeking his stalker from a security presentation on Oct 27!
#bitcoin 1126 :Current v0.11.1 | DO NOT POST ADDRESSES | uPnP vuln: https://bitcoin.org/upnp-vulnerability | https://bitcoin.org/ | bitcoin.com is SCAMMY | https://en.bitcoin.it/wiki/Faq | No pricetalk (#bitcoin-pricetalk), ads, trading (#bitcoin-otc), begging, altcoins | Web wallets will probably steal your money | URLs are often MALWARE
#ansible 1123 :Ansible - http://docs.ansible.com *** 1.9.4-1 has been released - https://groups.google.com/forum/#!topic/ansible-announce/r_uNM1lWlAE *** Ansible 2.0.0 beta 2 is ready for testing - https://groups.google.com/forum/#!topic/ansible-project/krpeTwi3mpo
#gentoo 1103 : Gentoo Linux Support | Can't speak? /j #gentoo-ops | long pastes: dpaste.org | masked by license? http://x.vu/WgxYLs | | Unworking hibernate and suspend? emerge -1 upower-pm-utils | firmware not loading? http://goo.gl/MzVLBN | perl conflicts? http://goo.gl/n1FMk8 | Be nice! http://xrl.us/kftd
#bash 1082 :FAQ: http://mywiki.wooledge.org/BashFAQ | Guide: http://mywiki.wooledge.org/BashGuide | Ref: http://gnu.org/s/bash/manual | http://wiki.bash-hackers.org/ | http://mywiki.wooledge.org/Quotes | Check your script: http://www.shellcheck.net/ | Mailing list: https://lists.gnu.org/mailman/listinfo/help-bash | Devel: http://xrl.us/bmodjy
##networking 1074 :Computer Networking | If you have a question, just ask it! | Please don't paste - http://paste.debian.net | M = mega = (10^6). m = milli = (10^-3). Mi = mebi = (2^20). B = bytes. b = bits. | Vendor Help = #$vendor | pastebin iptables-save | Why aren't you using IPv6 yet? | IP address classes died in 1993 | VPNs were not designed for anonymity https://goo.gl/iLyXUP
#vim 1050 :Can't Talk? Get Registered on freenode (HOWTO: http://ur1.ca/90niw) | Vim 7.4.900 http://www.vim.org | Don't ask to ask! | Use :help and :helpgrep | WIKI: http://vim.wikia.com | PASTE: http://vpaste.net/?ft=vim | DONATE: http://www.vim.org/sponsor
#puppet 1000 :Puppet Enterprise 2015.2: http://puppetlabs.com/puppet/whats-new | Puppet 4: http://bit.ly/1fCLbPX | Help: http://{ask,docs}.puppetlabs.com | Beaker users read this! http://bit.ly/1zE2DYU | Bugs/Improvements: https://tickets.puppetlabs.com/ | Logged http://bit.ly/11ifvbU | Community guidelines: http://bit.ly/1wTNy65 | PuppetConf Videos http://bit.ly/1NWiHQb
now, the volume of chat may be too much to read for some people, but that's not an issue with the protocol.The problem is that all traffic has to be carried to all nodes brokering connections for a channel. When you have a LOT of traffic this gets onerous.
You CAN scale these channels. But it requires some experience and most people never even consider that there might need to be action taken. The Freenode admins know what they're doing, and I respect them enormously for keeping freenode as responsive as it is on what amounts of a 25 year old, bad implementation of a distributed algorithm.
But that's not what we were told. Another admin from espernet basically had us kill the project because they said the way Eirc was using the system constituted a "significant load" and "would not scale well". We were growing really fast and proxying maybe 3-10 users per bot connection on average. I think your team came to us with the problem right as we were really exploding with users.
We basically massively scaled back that deployment of a really cool and interesting feature. Because we didn't want to be an undue burden on our gracious hosts. Now you tell me that this was just some admin giving us an exaggeration?
That's a very frustrating detail to learn. Probably not your fault, but thanks for the clarification I guess.
Additionally, we hesitate to cater to this use-case as it often ends up turning into "we want your network to relay messages between our bots" instead of "we want to talk to other people". We've found that channels used for such bots are typically not sufficiently staffed and frequently a target of abuse, which ends up taking network staff time to resolve.
Lastly, we've had a number of technical issues supporting certain pieces of IRC client software. Older versions of EiraIRC in particular have some nasty bugs; the worst of which is that they tend to get stuck in some state where they hold multiple connections to the network open while continuing to attempt to connect again and again, with no delay. While this doesn't impose load that our servers can't handle, it does generate a lot of administrative log traffic that is bogus and dilutes important log traffic.
Many of these use cases can be covered by IRC, but our network isn't configured to handle such use easily as it often looks very similar to the sort of abuse we usually deal with. The common denominator in most cases like this is that it's taking too much of the staff's time and attention to support the channel and its clients. Our time is finite, and for the health of our network, we'd rather say "no" to a few channels than to make all channels suffer from thinner network staff resources.
"Your use case would basically break EsperNet (but it's because of our implementation! We have a lot of issues with our implementation but they're not because IRC can't handle it!)."
If the protocol's limitations mean that their use case is not viable due to the strain it places on the administrative side, it's still a limitation.
It certainly is a limitation, but any kind of service needs DDOS mitigation.
Personally, I think that you're describing a lot of limitations that we nearly crashed into with the specific implementations of EsperNet at the time. I think if a more modern system were brought to bear on the problem, they wouldn't exist. But that's all speculation; I don't know EsperNet's current or previous software well enough to say with certainty.
I don't want to sound ungrateful. What we had, and what we still do have to a lesser extent, was amazing. I wish we could have scaled it, because it was well on its way to being a 40000-user-a-day connected gaming chat network expressed via the in-game chat of Minecraft.
Sadly, that's the nature of prototypes and free software. I was willing to work on EiraIRC, but the author... seemed uncomfortable with the idea when we approached them. It's... a strange corner of the world that Minecraft modders live in.
I'd just like to point out that this argument ("if <x> were so great, everyone would already use/do <x>") is just a slightly different form of the ancient appeal to popularity argument and is entirely fallacious.
I still use Slack for internal use, and for our students.
What makes Slack (and its ilk, though the title of the post makes a bias against Slack clear) so great is that it's simple, easy, full-featured and has a low barrier to entry to the non-HN crowd that is being asked, in many cases, to use it.
I can promise you, out of experience and out of just plain statistics, that Slack and IRC have different audiences, and those audiences will not likely prefer the other.
Also, I'd guess that IRC is actually the more popular choice. But the majority of the IRC using audience is too busy getting work done in IRC to comment on an HN post.
CTCP and then SEND bots?
Freenode isn't the only network out there =)
No one denies IRC's continued popularity as a protocol for broadcasting text over a network. Slack itself uses it. But it's dying out as measured by the number of people who say to their colleagues e.g. "get on IRC, I have something to tell you."
From the parent post I replied to, "IRC's user base is declining". Every single person watching a Twitch stream is an IRC user, whether they know it or not.
How do you determine the popularity of something? How many people use it.
Android is extremely popular. Do most of the folks realize they're using an Android phone? Nope.
Does it mean Android isn't popular? Nope.
If you don't have a similar understanding, we'll have to agree to disagree.
> The point is more that it's dying out as measured by people who say to their colleagues e.g. "jump on IRC, I've got something to tell you."
Of course they wouldn't, you're already speaking with them. Slack is fine for trusted networks of peers (businesses), but not much else. I won't start chatting with any my friends using it, nor would I bother to sign up somewhere to get access to a random Slack channel/community instead of using IRC, where I also coincidentally wouldn't need any of Slack's features.
> Of course they wouldn't, you're already speaking with them. Slack is fine for trusted networks of peers (businesses), but not much else. I won't start chatting with any my friends using it, nor would I bother to sign up somewhere to get access to a random Slack channel/community instead of using IRC, where I also coincidentally wouldn't need any of Slack's features.
No, what I meant was, people no longer think of IRC as the tool to use to talk about projects and communities. They used to. That was its primary use case. That use case is shrinking, so IRC is becoming less popular.
> How do you determine the popularity of something? How many people use it. Android is extremely popular. Do most of the folks realize they're using an Android phone? Nope.
This isn't quite true, is it? Most Android users seem to know they're using Android. I could be wrong.
> No, what I meant was, people no longer think of IRC as the tool to use to talk about projects and communities. They used to. That was its primary use case. That use case is shrinking, so IRC is becoming less popular.
There's plenty of other avenues to use these days, so the numbers have diluted, absolutely. EDIT: There was no social media, very few IM clients... But the channels I'm in have been steadily rising (Freenode). http://tctechcrunch2011.files.wordpress.com/2013/01/irc-002....
Quakenet took a huge drop once it stopped being used to find CS matches.
> This isn't quite true, is it? Most Android users seem to know they're using Android. I could be wrong.
Obviously this is going to be anecdotal, but with the ~20 people I know who aren't technologically savvy, they'd only be able to tell you if they're using an Apple phone or not. My mother, for instance, has no clue that she's using a Windows phone. EDIT: I guess that really goes to show something about the success of Apple's marketing.
I think this has quite a bit to do with what class of phone they buy. Android is marketed very heavily in certain contexts when buying a phone, just as iPhone is. Walk into Best Buy and ask for help on buying a smartphone that isn't basic and Android or iPhone (or Windows phone even) will be part of the pitch. Similar to how if you buy a sports car you are probably going to know something about the engine, if not when going into it, you probably will by the time the salesman is done. If you are buying a commuter car, they may or may not distinguish the engine, and you may or may not care enough to remember.
Saying if Twitch disabled IRC is like saying if Slack changed to an IRC core..., which is not meaningful when discussing how many users Slack and IRC have. Twitch has several millions of users of influence. If they didn't use IRC, IRC would have millions fewer users, yet, Twitch chose IRC. Some of Twitch is IRC, and some of IRC is now Twitch, and millions of people use Twitch consciously. Twitch is the IRC client.
That doesn't seem like a really fantastic outcome for IRC. I guess if you're looking to come up with a conclusion that IRC has more users it is a useful tool. If you're looking to see what the future of distributed and local FOSS and corporate software team communication is? Less so.
Also, in this context I think it's pretty relevant. My personal opinion is that if Slack was just an IRC client instead of having its own propertiary backend, it would have been a better product.
I hate that argument. If decentralized was so great, then it'd be more popular, but it's not. More and more centralized stuff is exploding in popularity.
That is, the network can be decentralized but still administered by a single business entity, in which case you theoretically get a network more robust to outages, or the network can be composed of many separate entities, in which case you are theoretically protected from the bad behavior of any one administering entity, since there are many others (as in your example).
The other reason it may be harder to build a business atop a decentralized network is that the costs associated extra hardware, software, and locations and troubleshooting required to achieve the gains of a decentralized network may outweigh the gains achieved by doing so.
Decentralized systems, and peer-to-peer systems, and even centralized systems designed around computers designed to sit next to a wall outlet and draw power from a practically unlimited source are all being replaced by systems that are more centralized and better equipped to talk to mobile. AOL Instant Messenger is dying because it was built around an older paradigm and, at least last time I bothered to try it, is an incredible battery drain on Android devices. Newer messenger apps that are built mobile first or at least make mobile an equal partner to PCs are winning instead. And it's the same for group chat -- IRC is built for old-fashioned PCs, Slack is built with mobile in mind.
Such facilities are bolted onto IRC, but never truly integrate with it the way other solutions have offered.
It's also nice that I don't have to signup anywhere to use most IRC servers.
Don't get me wrong—Slack is the perfect tool for businesses, but not for much else.
It doesn't make it a logical fallacy to say something is popular because it's superior for its audience.
Which is the horse and which is the cart? Slack is easy because it got resources to be easy. Those same resource could have invested time to make IRC just as easy.
There is no inherent reason why IRC cannot be just as simple.
The reason slack is popular is because it got pushed hard and lots of money went into making it easy and popular.
There is nothing inherent about IRC that would have prevented it to be just as easy as slack if the same resources were put for that work.
http://www.engadget.com/2013/11/04/apples-advertising-budget...
The entire sports drink industry.
The supplement industry.
These are the same people that are now confused as to why Slack has risen in popularity despite the existence of IRC, which (in their eyes) is technically superior.
Please don't say that Apple products "just work". We've got an office full of them.
I'd rather have "easier to debug when it doesn't work" than "just works, most of the times"
It reminds me of Raspberry Pi. There are lots of more powerful boards that you can buy cheaper, but people still mostly buy RPi because it is the brand.
that's just the nature of the beast, x.509 is also very old- but old things should be fixed or replaced with better alternatives, slack just fixes a usability problem.. but trades all privacy and freedom for that.
Personally it's not enough, but google has a massive market share because normal people do not consider that their data or freedom has any worth.
at least google is pro-free market in the way that you can extract data out later and migrate, I don't see slack being able to offer that reasonably. (or their incentive to allow it)
2. Using cloud services in exchange for contributing to aggregate data seems like a pretty clear understanding of personal value.
The stuff IrcCloud, Slack and HipChat undo? That's the stuff that seems to be alluring to the steadfast IRC users. Inscrutable commands, nick and chanserv and unencrypted passwords sent via a command that could very easily be typo'd to broadcast in a channel, obscure partitioning behavior that is very much not what most businesses want, a lack of accountability or verifiability, a lack of robust logging and search...
I say these in a negative way, because that's my perspective. For many people they'd list many of these in positive ways like, "improved anonymity", "off the record by default", "network robustness", etc.
Similarly here, you could argue that the popularity argument is stronger because the tools are relatively easy to switch between and people are constantly re-evaluating this choice as new projects are created. Lock in and other switching costs bolster the concern of relying on popularity, but those don't come into play very strongly here.
Whatever gave you the impression I think this is causal?
Anyway, it's all hypothetical. We don't have a free market with all participants being well-informed.
Why does gchat, snapchat, whatsapp, fb messenger exist if AIM had been fulfilling the need of the market?
gchat & fb messenger are backed by huge companies trying to sew up the communications of a large community for the purposes of selling marketing services. The need they were created to fill is a corporate need, not a popular one.
Whatsapp was primarily popular because it made it cheap to text on your phone. I don't know the history of snapchat, never used it.
No one's arguing against using it for your company. Ok, the article is for some reason, but that doesn't invalidate the main point.
https://blogs.dropbox.com/tech/2015/09/open-sourcing-zulip-a...
1. Slack is a well-designed interface for allowing teams to communicate via chat.
2. Slack is easy to install is use on Mac, PC, iOS, and Android. It Just Works™.
3. Slack doesn't require me to install IRC somewhere. Which also means I don't have to worry about how people gain connectivity to said server when outside the office.
4. Slack has whimsy. Fun colors, messaging, emoticon, bots, etc.
All of this is what folks in this thread seem to be missing. I've used IRC for a very long time, but have NEVER been successful at getting wide adoption of IRC for communication.
I am well aware that I'm trusting a third party with out information. I'm aware that alternatives exist and you can get them to work. That doesn't matter when I have to try to explain to my CEO how to /join #channel.
There is a reason why IRC, a widely-available, chat solution that has been available for decades didn't catch on. It has nothing to do with how well the software moves messages from one computer to another.
</rant>
subjective. I consider a bloated web interface taking several tens to hundreds of megabytes of RAM compared to a text-based interface taking less than 100 kB to be poorly designed.
> 2. Slack is easy to install is use on Mac, PC, iOS, and Android. It Just Works™.
spelled wrong, and IRC clients are harder to configure only because there are so many options for servers, whereas Slack only supports one server.
> 3. Slack doesn't require me to install IRC somewhere. Which also means I don't have to worry about how people gain connectivity to said server when outside the office.
webchat was invented for a reason
> 4. Slack has whimsy. Fun colors, messaging, emoticon, bots, etc.
IRC has had mIRC-style colors supported and even adjustable by the majority of clients for at least 10 years. I don't know what "messaging" means. If you mean "private messaging", pretty much every chat software in the world has that. AOL and ICQ have that. You can put emoticons in your text manually if you want. It was on IRC that the concept of chat bots was invented, not on Slack.
> There is a reason why IRC, a widely-available, chat solution that has been available for decades didn't catch on. It has nothing to do with how well the software moves messages from one computer to another.
Yes, it is about how much money a for-profit company has to spend on marketing and copy as opposed to a standards organization.
I like slack, I think it's a great product. On finally watching their video and installing it, I immediately saw the draw, it's basically IRC with lots of usability enhancements and a lot of easy-to-configure bots available with a click or two. That said, it took me months or ads to finally take a look, but I did because the advertisements let me know that it was a possible solution for the problem I was dealing with.
It may have spread because they built a good product, but I think it's equally important that they actually exposed a lot of people to information about it. Your great product will die if nobody ever sees how great it is.
Slack has its fair share of flaws but design and ease of use are not among them.
Your comparison of what amounts to ASCII art versus Slack's rich-media embedding reads like it is straight out of a Fortran developer's "I'm still relevant" handbook. You even offer up AOL and ICQ as counter examples!
If we're going there, I guess we should simply assign everyone a GUID and be done with it, right?
HMU on ICQ: 110339943
everyone thinks memory is free but machines are still shipping with 8G in the mid-high end.
ISTR a -now undoubtedly outdated- answer to a question that was very much like "Why will there not be a real Photoshop clone for mobile devices in the near future?". One of the striking things to come out of the analysis was that -absolute best case- you got something like ~300MB of RAM (and -common case- ~100MB) to work with before you got unceremoniously killed.
I would hope that now you can reliably consume ~500MB of RAM per app, but... that's still a far cry from what you can use on a "real" PC.
Unfortunately, memory usage still matters. :(
I often find myself needing to establish a line of communication between people who aren't particularly tech-savvy. Slack works excellently for this: I make a new team, fire off some invites, and everyone just understands how it works. I can only imagine that, say, coordinating dev, corporate, and sales over IRC would be like living in the same circle of hell cardinally occupied by people who talk at the theater. If IRC works well for your team (whatever it is), excellent! Don't try to fix something that isn't broken. Slack isn't flawless, but it does have its usecases, and it fills them very nicely.
We have learned absolutely nothing. Let's all jump on the bandwagon of another closed-source, proprietary, walled-garden service and hand over all of our private intra-company communications to a private third-party in another country. GREAT IDEA.
https://plus.google.com/u/0/+JeromeLeclanche/posts/icC6gDToB...
The reason Slack exists and can be so successful yet entirely proprietary is a symptom that IRC is not good enough and that has to be fixed. It is the manifestation of the papercuts we, IRC users, have been having for a long time now. (late edit: If you are interested in fixing this problem, email me, see my profile.)
There are very promising efforts on IRCv3 (http://ircv3.net/) ongoing. I hope they eventually go live to the bigger clients and networks so that we may actually have a good foss alternative to slack (and I don't mean something like Mattermost. Like SirCmpwn said some comments below, having one browser tab per project REALLY SUCKS when you contribute to a lot of projects. I'm in over 20 channels myself, and I do my best to keep that number low...).
They need help, go check them out.
http://www.matrix.org/
There's also Zulip, which as far as I can gather, is battle-tested, but does not have a strong story for federated servers, nor a good out-of-box experience for really small servers: https://github.com/zulip/zulip
Finnaly there's https://tox.chat -- which doesn't have a lot of the things IRC/Slack has (it's focused around p2p chat) -- but extensions are planned, for eg. persistent group chat. Perhaps most excitingly "new" of the three, which predictably is both a good and a bad thing: https://wiki.tox.chat/users/faq#what_is_tox
For those that "want Slack", but self-hosted, open/free software server -- I think Matrix is the most viable alternative -- if IRC is seen as not good enough.I've not included any XMPP servers, although eg. Prosody should be simple to set up and use -- because, apparently like IRC, it has too many problems for people to actually embrace out-of-the box XMPP for team chat. The fact that most big public services that host XMPP tend to favour anonymity probably has something to do with the fact that getting reliable server-side message logging and off-line messaging is still not as easy as one would expect, for any(?) of the big free XMMP daemons (or indeed support client side).
[ed: Matrix also have some support through bots/plugins for IRC bridging: https://github.com/matrix-org/matrix-appservice-irc ]
* IRC (https://github.com/matrix-org/matrix-appservice-irc)
* Slack (https://github.com/matrix-org/matrix-appservice-slack)
* Verto (https://github.com/matrix-org/matrix-appservice-verto) (for talking VoIP with FreeSWITCHes)
* Respoke (https://github.com/matrix-org/matrix-appservice-respoke) (for talking VoIP with Asterisks)
* Purple (https://github.com/matrix-org/node-purple/tree/master/appser...) (for talking through to Skype, Facebook, XMPP, ICQ, AIM... and anything else that libpurple supports)
...and a whole bunch of 3rd party ones too like https://github.com/SkaveRat/xmpptrix. Some of these are pretty beta, but they're all headed in the right direction. The IRC and Slack ones are the most mature.
Glad to hear that you think we are on the right track! [Disclaimer; i work on Matrix]
Every time it loses another user to a proprietary platform, it loses another battle. Is that what "battle-tested" means?
No competent person setting out to design a group communications protocol in 2015 could honestly say they'd use IRC as a starting point.
The rest of what you've said is pretty much true.
I haven't seen unicode messages on IRC channels, but I don't spend much time on IRC anymore, and so this is interesting new information for me --- but there's more to being 8-bit clean than simply supporting internationalized character sets.
This is not possible on a technical level, having nothing to do with IRC itself, but instead written into the encoding design of UTF8.
First of all "7 bit" physical communication never really existed in the age of TCP - the protocol has always moved 8 bits at a time around. The "7 bit" era refers to nobody actually agreeing what codepoints within x80 ~ xFF actually mean. This is even partially true today - not everything has agreed on speaking UTF8 (hi Win32 APIs).
On the actual point of why neither 0x0D nor 0x0A will ever "manage to collide".
In a single-byte encoding (called codepages, https://en.wikipedia.org/wiki/Code_page#Noteworthy_code_page...) 0x0D always means just that, as pretty much all ASCII-derived codepages do... well, respect ASCII ( note - this does not touch on the horror of EBCDIC, which is alive and well today (2015) too ).
In the case of UTF8 any continuation byte can only carry values in the range of \x80 ~ \xBF, and any leading byte can carry values in the range \xC0 ~ \xF7. So no matter how you slice and dice things, the resulting UTF8 will have every ASCII character meaning itself (this includex \x0D and \x0A ), and the only ambiguity when mistakenly treated as any single-byte encoding would be in the "what do we do with the upper 7bit range" part ( \x80 ~ \xFF ). More info here: https://en.wikipedia.org/wiki/UTF-8#Description
True, other multibyte encodings are not so convenient: for example \N{MALAYALAM LETTER UU} ( http://graphemica.com/%E0%B4%8A ) looks really bad CRLF-wise in both UTF16/UCS2 an UTF32.
But this is why UTF8 "won" for all intents and purposes. And this is also why "escaping" is not necessary under virtually any modern environment, so IRC lacking any such mechanism is not really relevant.
( No opinion worth sharing on the rest of the article/discussion ;)
If you're running your own irc server, you'll probably never notice anything. If you do, it's as simple as adding a server password (or maybe even changing the default port among some other settings), and anything unwanted will likely be a thing of the past (assuming you don't have dedicated people attacking you).
On your comment about IRC bots and services, networks don't see that as something that is up to them. If something requires a U:line or other network privileges, then it's up to the network staff to implement that, sure, but anything else is for their users to do. If IRC networks were for-profit, maybe you could expect them to have things like this and advertise how amazing all of their features are to potential clients. But IRC is nothing but a money sink for everyone involved, and there's therefore often little incentive for networks to implement and integrate a lot of bots and functionality that aren't integral to network operation.
Apart from this, spam is a really hard problem if there are resourceful people dedicated to it. Email has existed for even longer than IRC, and despite absurd amounts of work into anti-spam systems and functionality with it, it's not too surprising when spam manages to finds its way into your mailbox.
I still agree there's a lot of room for improvement, both at the protocol level and at the user level, though.
is there a way for me to, instead of using a server password, use something like OAuth so that I can grant access to the server based on my companies central login database? otherwise, every time someone leaves the project, we have to rotate the server password...
A lot of the other deficiencies are a consequence of any decentralized, open resource, due to "tragedy of the commons" effects. Those will always require active admin participation to resolve.
If you have a single person that is even slightly technical, it should be trivial to set up your own IRC server, and then you get complete control over all of your own information.
Even with that, you still can choose from a multitude of servers, services, clients, bots, client scripts, bouncers, and so on. Anything common you want to add on after that point has likely already been written for what your purposes (and is of course open-source), whether it's a git commit bot, a logging/relay bot, or even end-to-end encryption (even after TLS). It's even quick to write custom IRC bots for arbitrary purposes if you use a framework or copy some example code (even without that, it is only so bad).
The article does not even discuss the fact that projects that opened a slack community with a big increase in their audience. Apparently audience is much less important than purity.
I want to spend my time working on React, not be a sysadmin for the irc bot. I switched to botbot.me and it's been always up and with a much better interface :)
That's a pretty narrow view of 'slightly technical'.
These days, we've got generations of people who can manage their own email account setup, install web apps and mysql databases, configure zapier to connect multiple apps together within a few minutes. I know dozens of people who do things like this all day long for their clients.
I'd call all these people more than "slightly technical", but there's no way on earth they'd be qualified to set up and administer an IRC server.
You need far more than "slightly technical". "Slightly technical" sets you up for disaster. And... it's not 'trivial' to understand what's going on and how to manage it.
I agree, though, it should be trivial. It's just not.
Technology isn't easy. Pretending it should be causes problems.
I'm "slightly" technical and I have absolutely no interest in setting up an IRC server for my project or company. That's time better spent on developing our offerings. While I have no doubt I could set up a server, I also have no doubt that setting it up and maintaining it would drain time unnecessarily.
It's the same reason that I don't advocate for most people to maintain their own servers in 2015.
http://www.tricksofthetrades.net/2015/09/10/slack-irssi-conn...
I feel like that has to diminish the walled-garden, proprietary weight at least a little bit if slack & irssi can communicate. And it works over SSL too. Once I started doing that, I didn't mind using slack. You have to "/ignore" certain server messages though or your whole screen will be spammed with them and you'll barely see the stuff people are saying.
https://slack.zendesk.com/hc/en-us/articles/201727913-Connec...
For everything else, including at work, I/we use privately hosted solutions like GitLab, where we control our own data.
Amen to that. Our company yet to transition away from using Salesforce, but we greatly restrict its use for the reasons above, and one day will move completely away from it.
So don't use AWS or Google App Engine or Heroku? etc. Why?
I use Facebook for a lot of my communications. Seems to be working out OK so far.
Use the tools that help you get your work done efficiently. Consider the long-term consequences, of course, but if someone took all of my Slack team messages and told me I couldn't have them back, I'd be annoyed but it wouldn't affect my productivity much.
OTOH, losing the ability to coordinate via Slack, as you're suggesting, would certainly lower my productivity.
Leaving aside that there are extremely valid reasons not to use those services, communication is a huge deal. Can you imagine if email was a walled garden?
Completely different situations. Neither of your examples could sanely be described as shady or underhanded - neither of them gave the producer a business advantage it wouldn't otherwise have. FOSS developers don't owe anything to you - they don't have to continue to develop your favourite feature for the rest of their lives. They do however give you the freedom to do that yourself.
I really don't get this, 99% of the stuff you use everyday is closed-source and proprietary. Most often the tradeoff in something bad happening (which has yet to be with Slack) versus having a functional and productive system is more than worth it.
Or do you also build your own computer from raw silicon and communicate with pirated radio signals?
This is Hacker News; I expect the average to be around 20%
If some basic programming chat about an open source project isn't safe then we should all throw away our phones and turn off the internet immediately, but I don't see that happening. This is basically bikeshedding on how to run open source projects.
Well said, I chuckled. Let me just add something...
If you want a paper trail of anything, use an email you own.
I have a friend who was locked out of a startup's Slack right before he was due to be paid for three months of work. He had been discussing business inside of Slack, and instantly lost access to all of those messages.
Could this have happened if the startup used a private email server, or a private IRC server? Of course. But if they were using more open protocols, he would have at least been able to back up the messages. Slack provides an easy tool for backups to admins, but not for normal team members. Slack provides an API for all users, but team admins can disable the API. Slack also allows team members to connect over IRC and XMPP, if team admins turn on that feature (https://slack.zendesk.com/hc/en-us/articles/201727913-Connec...).
Slack is great, I love using it. Just remember who owns the data. Always use your own personal email if you want to create a papertrail, as my friend found out.
I think your argument is somewhat null....
* Rocket.Chat (https://rocket.chat/)
* Zulip (https://zulip.org/)
* Mattermost (http://www.mattermost.org/)
* Let's Chat (http://sdelements.github.io/lets-chat/)
Oh, and by the way, you could have your own Rocket.Chat instance running in Sandstorm in about 30 seconds: https://sandstorm.io/apps
Update. And I would love to see a modern federated chat protocol to take off. Something like http://matrix.org/.
Don't know others yet, thanks for the list.
I don't get the point of complaining about Slack. It works great, it's simple to use and it has an amazing feature set. IRC is pretty terrible. Try doing a drag and drop file transfer. Try using markdown. Try displaying images inline.
I don't get what the problem is with closed source Slack. Do we avoid the phone company because their software is closed source? There comes a point where this FOSS obsession sort of jumps the shark. Worrying about a 'walled garden' for a chat tool is kind of silly. If it bothers people so much, create a FOSS Slack with the ease of use and setup and maybe people would be more interested. But anything that requires me to 'self host' something that amounts to a service means that is a bad use of time. I can pay the Slack guys to maintain chat while my devs work on maintaining our products. IRC is terrible. Try and get someone from your marketing department to use IRC. The neck beard and almost hipster pontification about the 'bloat' of Slack is kind of ridiculous. We have better things to worry about. Slack works on all my devices perfectly. I have a searchable log of everything. I don't have to think or worry about anything. It's simple and works. Until there's a viable alternative that exceeds Slack's ease of use, that's what I recommend people use.
Because you work in an industry were security matters. Such as banking, healthcare, government, government contracting, or any business with more than a couple hundred folks.
Because you provide support and want to customize / integrate that with rest of your data/systems to provide superior service to customers.
I didn't mention IRC in my comment :)
It's interesting how you compare Slack with a phone company. There are important differences between Slack and a phone company. 1. If you give me your phone number I could be talking with you in a few seconds without me even knowing the name of our phone company. 2. You could decide to change your phone service provider and (in some countries) even keep your number.
How would you do these things with Slack? Slack is great, and I like it, but it could stop being great at some point in the future.
(Yes, I realize that Rocket.Chat user couldn't chat with Zulip user, for example. That's why I'm excited about efforts like https://matrix.org/.)
I agree with you: it's expensive to self-host. [1] But when it is possible to self-host, you could hire a specialized company to host the chat system for you. And - if you are careful - you can later switch your chat-system-hosting provider if you want.
[1]: That's what https://sandstorm.io is trying to fix, by the way.
That's an interesting parallel. I suppose it would technically be possible for a company to out-source their internal phone system to an external third-party using VOIP. But I've never seen it done and I don't know how I would persuade a CTO that it's a good idea to make internal communication reliant on the Internet.
Yet companies are falling over themselves to out-source internal IM... why?
XMPP?
And I would add Facebook to your "until recently" example.
XMPP is an awful soup of incompatible servers and clients, though.
As for XMPP, I think it is still entirely viable as an alternative to using a brand new protocol and brand new clients and servers. But if you want solid off-line messaging, server-side logging and scalable group chat -- there aren't any out-of-the box combination of free/open servers and clients that will work, as far as I've been able to figure out. I assume one would want a solid command line client, solid gui clients for Windows, OSX, Linux/BSD, Android, iOS and Windows phone, along with a good web client.
I don't think you can pick-and-choose a XMPP server and clients that will provide all that, today. It is certainly possible to make that, standing on the shoulders of various open projects -- but the effort would be anything but trivial. I'd be happy to be proved wrong, though!
However, I am 25 and largely missed the boat on irc. I decided to start using it ~1 year ago. It is hard to use, but we will look at that in a minute. Often, we assume people have as clear an idea of what we are talking about as we do. That is often not the case. Let's explore IRC now.
* Integration has never been a problem ... build bots.
I feel silly and naive, should I know how to set this up? Maybe it is really easy and well documented, and I am an edge case here, but i don't know how to do this. I clicked 3 buttons to setup github for slack. It was very easy and I didn't haystack through building a solution to something that exists. Scope creep on tooling is dangerous as an aside. Thos takes that off the table.
* persistence
again, I have to set up an alternate tool to download the content. i assume this would backup the whole channel so any user could reference it, but it comes by default for free with slack. if each user must have a seperate tool, or go to a seperate place to see a conversation (which may be less searchable) it adds friction.
* code snippets
actually super reasonable to use pastebin. slack is at least as annoying for code as pastebin, if not more.
* etc
The point is, not everyone lnows as much as the author about IRC who is likely quite a talented developer who grew up on it. An 18 year old likely won't have used irc as much as older generations given the plethora of tools and chat clients.
FOSS is a choice and a philosophy and that should be given some degree of consideration. Utility, workflow and getting new devs onboard and contributing is important. I agree with the author that it bears consideration, but slack or hipchat are much easier than IRC.
Instead of using slack, use IRC Cloud.
1. Have a bot that's in the channel from the start
2. cd into the bot's log directory and type python -m SimpleHTTPServer
3. put the url into the channel topic
How do some developers fail to rise up to this level of problem solving? I am amazed.
We use Slack because "it just works". You get invited, you join, and BAM! You're done. There is one uniform client for all platforms and a bazillion integrations already developed for you. And creating your own is usually a simple matter of sending a POST request to a channel's webhook using a unique token.
Essentially it comes down to this: IRC is a protocol that requires a fair amount of research and configuration to make it do exactly what you want it to do. Slack is a product that comes with the vast majority of features most teams need. That's why a ton of people are gravitating towards the latter.
Plus, keep in mind there are other people besides developers. There are product managers, UX engineers, designers, translators, and any other number of people who might not be familiar with grep and would otherwise not need to be. Assuming that only developers need to chat is pretty naive.
Or what happens when the bot goes down? So now I really need to build some alerting into it so that someone can restart the thing when it dies, or the server is upgraded, or it's moved.. because I'm losing valuable history along the way.
Or I can just use Slack.
The snark about developer skill is an interesting one, as you failed to actually solve the problem in your hypothetical.
What happens when Slack closes? Or they change their payment plan? Or they decide that they don't like your project? Or they're acquired by Microsoft and stop supporting your OS? What if a rogue Slack employee spies on your chat and steals your secrets?
What you want is to outsource your messaging service. If you want this to be managed in-house, you must monitor the service as well. You can outsource IRC as well however, and they'll manage the boys and infrastructure for you.
Not sure if I understand what the issue truly is here!
Should I take the time to create a solution that not only works for me, but is a pleasant user experience for my entire organization? That is a piece of work that is bigger than "python -m SimpleHTTPServer".
Or, I can trade money for a team that is actively solving the problem already.
Or, people who care could get a group together to tackle the inadequacies of IRC for the business use case as mattermost is trying. But let's not pretend that IRC fits the Slack use case well.
It does seem to solve the problem of how to set up a channel log in IRC but I sort of find this quite a narrow redefinition of the problem. The problem could also be:
* What is the best technology to use for collaboration?
* What kind of software and tooling is in line with our project philosophy.
I don't find either this comment, nor the one it is in reply to something that can be applied more generally. This is, at best, solving a problem that is a component of a much more expansive problem.
I’ve done exactly that.
Should this end up in a separate wiki? Maybe. Will it? Not always.
At which point I got tired of whitelisting people instead, after abuse issues compelled me to disable anonymous access...
(I'm one of the Zulip maintainers; happy to answer any questions about it).
Less importantly: What would you say its biggest missing feature is vs Slack? And conversely what does it bring to the table that Slack can't touch yet?
In particular I like how the zulip UI is single-stream by default. Messages from different channels are interleaved, so you can read all new messages at a glance, but still well separated by visual elements including color - I don't find it confusing. And I can focus down to any particular channel , or reply to that channel, in one click.
It goes all-in on this "many streams, one view" model with the concept of topics - lightweight "subject headers" for individual sub-streams of a channel. This neatly avoids the "two conversations at once" problems that can occur in other systems occasionally.
Some more minor points are a wider range of markup available than slack (including syntax highlighting for code), and better support for short-lived private groups (ie. "a PM between Alice, Bob and Charlie")
As to what I think Slack does better: More one-click integrations (and likely other backend admin stuff that I don't see as a simple user). AFAIK Zulip doesn't have an irc gateway. Also when I last used it (over a year ago) Zulip's mobile client was quite poor.
I'm sure others can come up with more differences - to be honest I tend to treat slack as "slightly smarter irc" so I don't pay attention to all the bells and whistles.
Finally I should caveat that these same features I like are things people dislike about Zulip - it's more dissimilar to existing solutions and people will always have their preferred ways of doing things. I personally find Zulip amazing for me.
In terms of features Slack has that Zulip doesn't, I think the biggest ones are features that Zulip has today on zulip.com (which isn't taking new users) but you can't easily setup for your own Zulip server (e.g. the Android app doesn't support talking to a custom server without patching it yourself, mobile push notifications aren't available with your own server, etc.). Contributions on those things are welcome -- they're all relatively easy problems for someone with some mobile experience.
In terms of features that aren't just missing configuration in the run-your-own-server model, I'd say the biggest one is that Slack has a really slick onboarding experience and it has more slick integrations. It's hard to compete on onboarding with a company with like a hundred engineers, but I don't see the integrations piece as being a long-term advantage for Slack -- they're easy to write and I expect the open source community to produce a lot of them for Zulip over time.
Are there any plans to support multiple teams / multiple servers from the native client? This is a particularly acute pain point on mobile; I'm reluctant to promote any tool that requires me to be logged in to only one project's instance of the tool at a time, because if it works well, it gets adopted for other projects, and then I'm having to juggle clients. I am unfortunately on two projects that use HipChat, and even there it's a huge pain that I can't be logged in to both simultaneously on my phone. (Some of their desktop apps finally support multiteam which is a huge help, but I still have to pick just one to participate in on mobile..)
Slack isn't perfect, but at least all the native clients will let me be logged in to 5 teams at the same time. (And no, opening multiple browser tabs is not an appropriate solution - it doesn't work at all on iOS, for example.) And obviously, this is something IRC does a great job of as well.
First, let me say that I'm really happy zulip was opened up, and grateful for you and your team to support it.
But does Zulip support server federation? Obviously slack doesn't allow self-host, so if slack is the alternative, that doesn't really make much of a difference. But that is one feature that http://matrix.org/ does support.
It's incredibly intuitive because it's so similar to all the other chat clients we grew up with (presumably because they're based on IRC).
Sure, figuring out bouncers and build bots is a little tricky at first, but so what? That's the fun part. It's kinda fun digging into the IRC protocol and figuring out how it works.
And ok, if that's not fun for you, there are plenty of really "click and install" tools for you (e.g. ZNC is super easy to setup).
Not to sound like an elitist prick, but if you can't figure out how to setup an IRC bouncer, I'm not sure I really trust you contributing to the linux kernel, yaknow?
Reducing friction is great: But the kind of friction we should be trying to reduce is bureaucratic friction. Throwing out PRs and yelling at people because they forgot to cc some particular maintainer - that's the kind of friction that sucks. Having to setup an IRC bouncer? Idk, I think that's fine.
And just because someone doesn't want to spend the time fiddling with IRC bouncers, IRC bots, getting clients to display things nicely doesn't mean that they are a bad developer. Just that they have different priorities for their time than you.
I'm not saying that Slack is perfect or frictionless, but neither is IRC. And especially if you don't do it all the time, getting people set up to work with Slack is way easier than IRC.
I really find these discussions half amusing and half depressing. 2 sides have something that is "good enough", both insist that nearly all you want can be solved with their solution, especially if you just do X1,X2,X3,Y1,Y5, and Z4 and you technically could build something that is perfect for both on top: but sadly (and understandably) no-one actually cares enough to do so. Because what they have is "good enough"(TM).
Slack is very similar to IRC at its core, so I'm not sure I see what you're asking here. I meant that IRC isn't foreign or alien to anyone who's familiar with chat clients - the basic concept of servers and channels and nicknames is pretty universal.
> And just because someone doesn't want to spend the time fiddling with IRC bouncers, IRC bots, getting clients to display things nicely doesn't mean that they are a bad developer.
I feel like I covered this point already:
> And ok, if that's not fun for you, there are plenty of really "click and install" tools for you (e.g. ZNC is super easy to setup).
> And especially if you don't do it all the time, getting people set up to work with Slack is way easier than IRC.
What are you referring to here by "getting people setup"? Like a corporate environment? It's fairly easy to setup bouncers and the like in a corporate environment using tools like chef, etc. I really don't feel like this is a strong argument for a corporate setting.
If you mean on a personal level for individual contributors to get up and running on contributing to FOSS, sure it's not 100% frictionless - but pretty much. Again, there are lots of bouncers that can be setup with <5 commands.
If the argument is that it takes an extra ten minutes to install ZNC vs. Slack, then I dunno - I guess I don't see that as very much friction when the tradeoff is using non-free software.
> I really find these discussions half amusing and half depressing
I feel the same way, but for different reasons. It's a little depressing to me how averse people are to spending 10 extra minutes to use FOSS, usually under the guise of "I have different priorities." I thought developers in the wild would at least be slightly more willing to invest the time, especially post-Snowden, to use FOSS. I guess that was just a college pipe-dream of mine.
I guess it's kinda just sad to me that you'd be unwilling to spend the time to use FOSS while you're contributing to FOSS. If it was incredibly costly, sure, but IRC? I dunno.
Some great tools for software development:
* Microsoft * OS X * Linux * Free BSD
To some degree that represents a spectrum and I don't fault the author for having strong beliefs about how software should be built, and agree with them for the most part. I think he could have made a stronger point generally from a philosophical and technical angle, i.e the regular arguments for open source tools, and highlight Slack as an example.
IRC is quite similar to Slack, but for the reasons the author suggests, it is different.
tl;dr Stallman wouldn't use Slack.
Frankly, it boils down to that I just don't like it. I'm more interested in getting better at programming, or learning about containers, or some other useful thing, than trying to figure out IRC's odd interface. Chat isn't something I should have to think about. It should just work.
So, I agree with most of what @vonklaus said, and disagree with the links pro-irc stance.
I've never used Slack, so I have no opinion on it.
(It probably helps that a lot of in-game chat interfaces use a lot of these same commands, as I'm a gamer as well as a programmer.)
There's a pretty nice web interface to IRC called irccloud.com which also persists your connection (so you can simply log onto irccloud.com somewhere else, and entire history is preserved).
Maybe Freenode could implement an enhanced IRC protocol and clients could opt-in to that.
I know at least one project that was very active on IRC, and they moved to HipChat for convenience. They also went full-on with the entire Atlassian stack (again, the fact anyone would choose JIRA is damning against everything else.)
Have you ever noticed just how many open source projects are still using shitty software from the 90s? No doubt, some of that software is actually quite good but I will argue most of it exists primarily as a result of tradition. In other words: a lot of it isn't the best way to do things presently, and perhaps if we stopped using such mediums as: mailing lists, newsgroups, and IRC channels to run our open source projects then presumably our projects might be filled with more diverse people than dinosaurs that still roam our mailing lists.
I don't know why developers do this: but they assume because they have the skill to do just about anything with technology that other people who also have the skill ought to take the same time to do as they have. But honestly: even developer time is too valuable to waste on pointless shit. We ought to be trying to make things easier to use.
If you don't want to use Slack for open source projects because Slack is in fact pretty bad at those workloads, fine. I agree! I think Slack does a pretty bad job at any group application where most of the people communicating don't already know each other.
Where you go off the rails is in suggesting that IRC is competitive with Slack. IRC is awful. It's a medium dominated by 7-bit clients with tiny message limits that provides virtually no useful metadata and no works-by-default history or search --- both things that virtually every open source IRC support channel b a d l y needs.
IRC does exactly one thing better than Slack: it's easier to join a new IRC channel than it is to join a new Slack project. The rest of IRC's "features" are red herrings, many of them more harmful than helpful.
Surely by now someone has built a Slack-like, perhaps with decent IRC support, that big open source projects can champion as a Slack- and IRC alternative.
It will be much easier to keep open source projects from trying to fit their square pegs into Slack's round aperture when people give up on promoting IRC.
I don't use IRC anymore, I use Slack but only because it's convenient. IRC is all over the place like the majority open source projects. Slack is clearly inspired by IRC, but it's in a pretty package and works OOB. Not sure why people are shitting on Slack or IRC here.
Yeah, that's not nearly the same. What I love about HipChat (and I'm sure Slack is the same, but I don't know) is that you can connect from any device and see the room history when you join a room. Going to some website to scroll back to see what people were talking about before you joined is annoying, especially so on a phone.
I mean... Hacker News is pretty "awful."
Maybe the things that you claim make IRC "awful" actually have weird benefits in terms of community. Kind of like how HN is kept intentionally awful, to keep out the losers or whatever.
The free version of Slack only has a 10k message limit, which runs out very fast with a user count in the 3-figures range. So if you want history, you need to shell out $8/user/mo, which is ridiculously expensive for chat. And not something a FOSS project should be spending it's limited funds on.
Slack has been successful because it's onboarding process is buttery-smooth. They've put a lot of work into making everything easy, from signing up to installing integrations. Unfortunately those integrations also waste a ton of space in the chat window. I use Slack at a couple of companies, and each of them got excited, installed a couple of integrations... and then abandoned the channels with integrations, because they waste so much screen space and you can't follow the flow of a conversation. It's a pity Hipchat got caught napping - they did displaying integrations well.
Another FOSS-specific problem with Slack is that they don't have a linux client, so you have to use the web app, which is terrible when you have to track more than one Slack team - you have to manually switch teams to check for updates, which takes a non-trivial amount of time (and the 'switch' control is right next to the 'sign out' control, which I've accidentally hit a couple of times)
I'm don't want to waste time doing that, I've got products to build and maintain.
The closed source option is better because they have a financial incentive to keep it that way. And I'm happy to pay for that because it saves me time and lets me work on things for my customers instead of myself.
I'm a huge fan of open source and used to be a zealot about using open source to run my business. But I've started to see the light in my old age.
Agreed. I think one of the main reasons for this is that cohesive design comes from dictatorships, not from distributed decision-making, i.e. design by committee.
The strength of open source is that it is usually "good enough", rather than "great" or "the best it can be".
If you look at open and closed source across a lot of categories, I think it's more common to see OS "win" where the product is more objective. When it come to more subjective problems like UX, it seems to be more difficult.
If your goal is something fairly objective OS is really amazing. Take VLC's "play everything everywhere" goal. Fantastic, objective goal for and OS project that really plays to its strengths.
Linux is, I guess, the canonical example. It's fantastically successful relative to closed source competitors on every front that is objective. But, its consistently been unsuccessful as a consumer desktop.
That said, I don't think IRC is dead either. Some people/communities prefer IRC.
Linux is a canonical example: it's simply a clone, design wise, of a plain old UNIX. The product vision was "copy UNIX". Where the wheels fell off Linux is the moment it got ahead of the UNIX legacy (i.e. modern desktops) and started having to compete with Windows, so suddenly the "copy UNIX" goal was no longer relevant. But Windows was made by Microsoft, or "the great satan" as Stallman memory called it.
So simply switching the goal to "copy Windows" wasn't possible because Windows and UNIX were very different and anyway, lots of people hated Windows. Linux had picked up a lot of semi-technical and technical users who didn't care much about FOSS purity but loved the club feeling that using an obscure OS brought them. The end result was big splits and bizarre, illogical design decisions being made simply because "do it like Windows did" was ideologically unthinkable, even when Windows had basically got it right (or at least, less wrong).
There are an increasing number of plausible FOSS alternatives to Slack out there like Zulip, Mattermost, LetsChat, RocketChat etc. Classic IRC simply doesn't compete in terms of the featureset, glossy clients and web-dev friendliness. However, most of the FOSS Slack clones miss one vital point: they just provide a random custom API to their clients which may not even be published. Despite being FOSS software they're not actually promoting Open Communication - they are just building yet more silos that fragment your conversation history and contacts/contactability even further. If you want to pick your own client, or pick your own server, or interoperate with other comms networks (other than naive bridging), you're generally out of luck.
This is why I personally believe it's vital to support open standards for communication like Matrix.org or XMPP or IRCv3, and build glossy clients and services on top, so that rather than being locked into a single server & client from any given project, we retain the freedom to pick the clients, servers, services and service providers that we want rather than being forced into using particular ones for particular communities. A good start would be for the Zulips and Mattermosts of this world to federate with Matrix or XMPP out of the box, even at the lowest-common-denominator functionality set, to support open communication rather than causing yet more fragmentation.
[Disclaimer: I work on Matrix.org]
http://xmpp.org/extensions/xep-0045.html exists. Its groupchat, it could probably be amended to support inline code, and its persistence model lets a server chose to broadcast the message history or not.
And it is incredibly more user-friendly to make an XMPP account through a GUI client, have username@server, then join group@server for groupchat. No /join, no /register, no port management or #channel management. Hell, any reasonable XMPP client would default to your current server for groupchat so when you click "join chat room" you get the server part prefilled and you just enter the group name (or pick it from a list of groups - the protocol supports channel announcements).
I get that XMPP is a horrible format (XML) and horribly bloated (committee) and horribly old (1999?) but if its that broken why can't we make another protocol for peer to peer realtime communications? Why isn't webrtc becoming that transport? Why do we keep getting these one shot web startups trying to replace open protocols every other weekend for a quick buck?
It's sad. But the only thing that can be done is work on an actual protocol that will solve these problems. It's a big burden to bear, and more often than not, building something that will bear such a burden just kills it outright (cf... xmpp.)
What about the Matrix protocol (referenced in other comments made in this discussion)?
* Ensure there are glossy Matrix-native clients out there with a Slack-equivalent level of good UI and UX (e.g. http://vector.im/beta)
* Build bridges to federate together as many different protocols as possible. This includes IRC, Slack, XMPP, SIP, Lync, Verto, Respoke etc. We're trying to make this as easy as possible by providing some high level building blocks like http://github.com/matrix-org/matrix-appservice-bridge. This hopefully will make it easy for others to bridge themselves into Matrix once we have critical mass.
* Release a stable version of actual Matrix standard itself, keeping it as simple but capable as possible. (Right now it's not frozen, and it's still in beta)
* Provide a really capable reference server implementation. (The current one, synapse, is a good starting point and works well for experimenting with Matrix, but we still have work to do on performance and scalability).
* Run around the world encourage existing projects/networks/solutions/developers to get involved and defragment their comms - a bit like the early internet guys had to do with defragmenting email.
It's obviously hugely ambitious, but we actually have some good traction already (despite still being in beta). Hopefully the trend will continue!
[Disclaimer: i work on it]
She's a smart cookie, granted.
But she's not a developer. I couldn't reasonably get her to use IRC.
I couldn't get her to use XMPP.
I couldn't get her to use Facebook chat. (Moral reasons, there, mostly.)
She could get started using Matrix in a single sitting. We're still using it to communicate.
Anecdata? Absolutely. With a dash of emotional appeal, even -- the worst kind of anecdata! Still: true. So, while Matrix may not have a million dollar marketing budget in play... there's reasonable hope that the ease-of-use requirement for mass adoption is well on its way.
[1]: http://irccloud.com
To me, the fact that a community of tech-savvy developers won't use IRC exclusively is a pretty good indication that IRC is not enough.
[1] https://facebook.github.io/react/blog/2015/10/19/reactiflux-...
[2] https://github.com/reactiflux/volunteers/issues/25
[3] https://twitter.com/discordapp/status/648379244570013696
Now, we got the bad news a month ago that we've been kicked off of Slack :( So, I started looking at all the options and frankly, all the alternatives I tried had a really bad user experience. Sure, they had all the features of Slack but the polish was not there.
Until I randomly stumbled upon Discord, a chat app for gamers. It turns out that it does everything that we used Slack for, has better perf than Slack... Before we even made the switch officially, people were already using it organically in favor of Slack which is a testament of its qualities.
I highly recommend using Discord for your open source project!
I'm a big proponent of open source, but I'm also all for using the right tools, whether that means open, closed, or some combination of the two.
"I’m writing to inform you that we've disabled the ability to add more users to the Reactiflux Slack team. We're happy that you've found Slack to be a great platform for your community but from both an administrative and performance perspective this is proving to be unsustainable.
Although we do simple chat and file-sharing very well, Slack simply isn’t designed for communities of thousands of users to chat. Slack's ideally designed for teams of coworkers who collaborate closely and frequently to get work done. That said, looking into ways to better support communities like yours in the future is something that has been suggested many times! The idea is under consideration, and if changes are implemented to make this easier in the future, we'll be sure to get the word out.
I’m not sure how you’re sending out your invites, because if you’re using the web interface it should tell you that your maximum user limit was reached. If you’re using the undocumented API, we’re returning a user_limit_reached error that you'll run into soon.
If you do want to continue to use Slack to manage this community, I'd recommend you spin up multiple smaller teams and cap each one around no more than 1,000 users. Once one team fills up, stop inviting people to that team and start a new one for the next group of people who want to join your community. That's the best way to ensure that your teams remain manageable and that the service stays nice and snappy for you.
Thanks so much for your understanding. If you have any questions, please don't hesitate to drop us a line!"
@discordapp: @DenisIzmaylov do you mean our encryption? If so, it varies by which version of DIscord you use. TLS, DTLS, and xsalsa20.
@discordapp: @DenisIzmaylov TokuMX and Redis, moving some things to Cassandra"
I can't speak to the quality of projects like Mattermost [1] and Zulip [2], though I'm excited by their concepts. IMO trying these, or using a hosted service designed for community projects like Gitter [3] are necessary alternatives.
[1] http://www.mattermost.org/ [2] https://www.zulip.org/ [3] https://gitter.im/
Main thing that Slack solves as far as I'm concerned is a great and uniform client on every platform.
Don't get me wrong, I love irc. This is where I started learning everything I know about computer.
I tried many times to get various team on it and it always failed. I think it's mainly because the learning curve is too big for non-technical/busy people, and that there's no good and uniform clients on all platform.
Really? Does using Slack not require opening a client application and logging in, like just about every other realtime messaging platform?
I know many "non-technical" people who use IRC.
I love IRC and grew up with it. But don't compare it to Slack for technical knowledge requirement.
In my firm at least, Slack is an incredible tool for our PMs and owner, and it also works well and covers all use cases for the consultants.
Use SSL + SASL auth and it's not any less secure than logging in to most websites.
That anyone find it hard to use is flabbergasting to me as it is a matter of opening a client, entering a nick and selecting server. With the web IRC clients it's even easier I guess.
I still hang out in several of the channels from my early days :)
If you tell people something is hard to use, they'll believe you. If you tell them how to use something, they'll use it...
With slack, persistence comes for free. The only thing I've seen that comes close is irccloud, which is in my opinion an excellent competitor to slack. In the end my organisation went with slack because it's nice to have everything grouped and billed to the organisation, as well as being even simpler for end users to join.
Both the linked article and the various suggestions in comments give all sorts of IRC-based alternatives to what Slack does, but they're all things that, let's be honest, require a lot more work to set up and are often far more fiddly to use. "Oh, this is easy, just run daemon X for this functionality and daemon Y for this functionality, and set them all up using stuff you can get here, here and here. Wait, that last one is out of date. Try using this gist instead. Okay, now, you can get that client-side feature you want if you switch to a different IRC client, use the following .config file, and look for the following plugins, although you'll probably want to change the defaults..."
Compare this to Slack, which for most users is: sign up, click here, and in Jeff Goldblum's words, "There is no step 3." From a practical standpoint you have to install zero new pieces of software (assuming you already have a browser), you have to edit zero fiddly text files, you need to install zero Perl scripts. Once your IRC is set up it seems "easy," but it's possible to spend an inordinate amount of time finding the answers not to questions like "how do I get snippet previews of links to show up in the client like it automatically does in Slack" (the answer is probably that you do not), but questions like "how do I get all the nicknames to show up in different colors?"
For certain FOSS projects, this may be less of an issue because the team may be more experienced in setting up frankly fiddly Unix software, and I think having an IRC channel is a good idea. It may be all you need; what Slack gives you above IRC is generally "nice to haves" rather than "must haves." But the FOSS crowd, to make a very rough generalization, often tends to deprioritize "nice to haves" to a point where they miss, well, just how nice it really is to have some of them.
This whole discussion is similar to that Ogg vs MP3 file nonsense on Wikipedia; the victory of philosophical purity over practicality and usability. I still can't just click a Wikipedia sound file on my iPhone and have it just work. Victory for ideological purity big fail for the 98% of the world that doesn't give a s--t about file formats or Jimmy Wales's religion.
I sort of get why people like Slack. It's very low effort. But that's the only advantage I see.
It is full of visual noise. You end up in desparate need of splitting most types of information streams in separate channels because of it, and then before you know it, you're channel-hopping all day long.
For core functionality - chatting - I've found that most IRC clients I've used are superior to it. Hell, even Facebook's chat is superior.
It'd take fully redesigned fully native client idiomatic to every platform abounding with customization options to make me take a stroll through that garden. Not web client and especially not some Electron (is it?) desktop client that looks more like afterthought than carefully crafted experience.
- Open! Free on both the beer|culture axis!
- Modern! (There's actually control structures in the protocol. Imagine: a chat protocol that's actually ascii safe! (Yes, yes, unicode too: the joke is, IRC isn't even ascii safe.))
- Many platforms! (The matrix.org site has a full client list; I'm personally using it via a linux desktop client (that also works on windows and mac), the web, my ipad, and my android phone.)
- IRC bridged. (I use it constantly in this mode. It's a better IRC experience than any other IRC client I've used, honestly. Even in rooms with 100s/1000s of people. Consistent logs, instantly accessible from multiple computers/clients, no need to set up bouncers, and so on.)
- File uploads, images, videos. All of it. A friend streamed me a video from his halloween party last night via the Matrix client on his iPhone. It worked.
- Did I mention it even supports webRTC? That's right: it's also a completely functional skype replacement. (Yes, pending your browser's support and all that jazz: that said, it's a more complete product than most of the other webRTC demos floating out there.)
The entire protocol is just... good. On the nerdier deep end of things: It's the first federated chat standard I've seen proposed that actually has reasonable message IDs baked in and loose timing systems that's both available during a partition and can reach consistency afterward (messages list their last-seen messages, and so act like vector clocks, an accepted good solution to problems in CAP territory). You could actually take two systems with clock skew and have them reach a single, reconciled view of the world, even after netsplits. Compared to IRC (or XMPP) this is either magical or a deep relief, or both.
I discovered Matrix while I was in the process of writing a chat client of my own for XMPP. I abandoned the project (and XMPP, as well, though that's a subject all its own [2]). Matrix already did everything I ever wanted. Really, really well.
Not affiliated; just a happy user who's never found any better platform for communicating openly.
---
matrix solves a lot of problems that IRC has and even lets you solve those problems on IRC through the Matrix<->IRC bridge :)
I've been using it as a replacement for my IRC bouncer for a while, barring a bug that prevents support of SSL-only rooms, and it's been wonderful. Great web client on vector.im, pretty decent mobile clients given they are "reference implementations", support for VoIP voice and video chat, coming support for e2e encryption (the DAG just stores encrypted blobs now)
I've long felt that a big piece of my love of IRC was the spontaneous intersections of my communities. I got involved in FOSS and open source because one time a person mentioned there was a LUG chat for the city I was in; that led me in to a long chain of events that ended with me getting involved in the Fedora Project and other FOSS communities. Slack is creating a world where that is simply not possible. One of the big things that this discussion misses is that tribal-intersections that IRC allows opens up a huge door for abuse. Slack "solves" that by siloing you away from the world, but that has always been a lazy and error prone solution.
I feel like Matrix is in a position to move the needle on that. It's got a huge distributed DAG specifically designed for human-metadata like chat and presence and, well, why not put Karma or Reputation on that DAG as well? People have talked of dogecoin and similar as a Whuffie (https://en.wikipedia.org/wiki/Whuffie) and in my mind Matrix is an interesting platform to build something like that on. I could create a room that requires a certain reputation level to post in, and you'd have to gain reputation in other communities to be allowed to post in to mine. When you realize that Matrix.org 1:1 chats are just "rooms with only two people in them" that becomes a really nice way to solve the spam/abuse issue. Prove to my friends in the public chat that you aren't a shitbag and you can talk to me.
Yes, there are many things that Slack does that _can_ be done with IRC, but they require significantly more coordination between various parts than Slack. I'd love to see an alternative to Slack not just a clone, as easy to use and administer, and built on an open protocol. Individual teams should be an easy entry point for a tool like that.
1. I had to be invited or something? (Still don't know if this is the case always)
2. It still remains a mystery to me exactly how Slack treats different accounts (or are they all the same account?) for different projects. It makes me like sign in to them differently but then they all show up together?
3. The Slack app is great or whatever, but its cool when a project can just embed an IRC channel, and even just make you an automatic account, right inline on their site and not have to deal with signup for anything.
If someone wanted to enter this space, they still could. Just make something that allows you to have one "Account" that would work across the board, had an embeddable widget so there's no "going" to the chat, its just there on the project page, has bots and emoji or what have-you. Maybe Gitter is working on this (already has all these abilities?). But suffice to say, I find it funny (sad?) that the discussion is around how easy Slack is vs IRC when IMHO Slack is still pretty hard and confusing.
Most people don't use software because of the driving philosophy behind it — they use it because it solves a problem of theirs.
If a tool is the best one for the job, you should use it. And if Slack has a substantially better UI for communication, maybe developers of IRC clients should try to build a better UI rather than complain about adoption of Slack.
And there are clones, like lobste.rs:
https://github.com/jcs/lobsters
Then there's the API, that allows anyone to export data. So while I get your point, and agree with it to a certain extent, it's also not entirely fair.
Replace svn by irc and bitkeeper with slack. Figure out the rest.
That's how I felt during the dot bomb era when I heard that General Electric had been eclipsed in market cap by one of the new startups, Amazon.
Although IRC has an old heritage, it's arcane and user-hostile. To some extent it wants to be that way, to help keep the unwashed masses away.
IRC isn't as easy to use as Slack for things like persistent history accessible from mobile and desktop, and integration to git. That's why alternatives are gaining ground.
If this situation bothers you ideologically, there's actually something you can do! You can help open source alternatives be as easy to use and integrate as Slack is. If your goals are less ideological and you just want your team to immediately get on the task of solving business problems, consider Slack.
Additionally for iOS users, there's a push notification client available for ZNC, which is pretty handy.
It's not just a technical thing. It's an experience thing. IRC is technically fine, just way too nerdy to be main line of business software these days.
You do know that all that needs to occur is to make a nice client?
Someone should come up with an IRC client for the non technologically advanced instead of reinventing the wheel.
Additionally, Slack is more privatized, with a less opportunities for enhancement (e.g IRC bots, IRC webchat, many clients). All users also need to sign up prior to use, which is just simply not viable. IRC manages large influx of help-seekers or project members well with its op-voice-user and ban/quiet system, allowing for channel operators to handle the high amount of users without a problem.
On the other hand, Slack fails at all of these points, as it is intended for internal team usage and struggles with this specific usecase.
Furthermore, most FOSS contributors are also not contributors to a single project only. For instance, I personally contribute to a variety of FOSS projects, and it is extremely easy for me to coordinate with all of those projects simply by opening a new channel on my freenode or OFTC network in my IRC client. Slack lacks this, requiring a new tab for each project and really lacking support for FOSS operating systems such as Linux distributions, a problem that is likely not going to be fixed due to its closed-source one-client structure.
Now slack on the other hand I've never had this problem. I don't know what it is, but some of the same communities switched over to slack (i.e. kubernetes) and once they were on slack, I was getting responses and discussions from multiple people within 15 min or less. The beauty is even if the channel wasn't as active it would still be a million times better because I can shut down my laptop, and get notified on my phone when someone replies. I can then continue with the conversation publically or privately, even if the two of us are on other sides of the world, because history is saved and I don't miss anything I'm notified on, even if I'm not logged in anywhere.
We just recently met with a VC who was impressed with our platform pitch, saying he hasn't seen something large in our space that's open source yet. Slack specifically came up as something that Andreessen Horowitz made a big bet on. I'm not going to say much (unless someone asks) except that:
* It's open source and on GitHub (http://github.com/EGreg/Platform)
* It is designed to put control back in people's and communities' hands. It should be installed by communities, or they can choose us to host, like wordpress.com does
* Each community can release its own client app, BUT you can also have client apps which provide a seamless experience ACROSS communities and let you do identity + connect with friends + get notifications across communities!
* This was not easy to build. It took us over four years.
We started before Diaspora* and we built an open platform on which app developers can build apps which communities can install, and which can aggregate social experiences across communities. The apps can be ANY social apps and the platform takes care of all the underlying details, including app versioning, user identities, "finding your friends" in each new community, registration/password stuff, email / mobile notifications, native app integration and caching, and much more.
https://www.reddit.com/r/programming/comments/3r3m6q/please_...
He reported they saw about a 10x increase in users moving to Slack (100 -> 1,000). (https://twitter.com/HypertextRanch/status/627122747664113664)
I get the arguments about not using it, but my priority is providing the best tools to the community to enable them to work together productively, as well as providing the most effective forum to encourage more people to get involved. How can I ignore that sort of order of magnitude increase in the number of people who can engage in real-time with the project?
For Open Source projects or just general communities IRC is the best medium suited to it. Yes IRC has its issues but maybe that's because no one has brought it forward with the kind of velocity other projects seem to have these days.
I don't boycott Slack teams I just find it difficult to manage more than 2 teams in the client so I just don't, I like channels in IRC. I can flip between them regardless of server or team and can see the entire history.
On a project a customer of mine disabled all those integrations because we couldn't go more than one week back into the past. Thery were not willing to pay Slack and we were losing track of decisions and accountability. When that happened we started writing down more things into Google Docs and the conversation shifted naturally from Slack to the comments of the docs. That had the (IMHO positive) side effect of reducing the time spent chatting about the project and of increasing the time spent to actually build stuff.
I.e. does IRC or any IRC client support sent, received, read confirmation the way that What'sApp or Google Hangouts reports this information?
The company I work for uses Slack, and luckily there is an IRC bridge to connect to so I can keep my workflow in Emacs rather than having to use a clunky web interface, but there are many special Slack things that they don't render correctly in plain text form so I feel like a second-class citizen. If this is the future of text-based communication, I don't want to participate.
I like IRC. I like that things aren't centrally logged by default. I like the bots that I've been interacting with for many years (that I find to be better than whatever Slack bot I've come across, by the way.) I like Freenode as an IRC network. I like the variety of clients available (I prefer ERC, a client written in Emacs Lisp.) Could we use some sexy web clients to get less technical people on board? Sure! Should we use a proprietary, centralized, surveillance system until someone else fixes IRC issues for us? No way! We must reject Slack because it isn't a tool for the people, but a tool for profit.
I'm not even sure the servers use encryption between each other. If they do I didn't see any mention of it on the freenode website.
Heck, given that SSL isn't even a default for many IRC clients, I suspect that in practice it's vastly easier for governments to eavesdrop on IRC than on Slack which is fully SSL, always.
Absolutely this. Never forget this.
Times do change, and tools do get better. Yes, it means having to change yourself, but stagnant work habits probably mean that you're missing other toolings, other methods, that can make you more productive. Sometimes, you do have to pull yourself out of your comfort zone, even if it means using eeevil software made by people with a salary.
IMO Shout is a UI improvement over Slack for the sheer fact that it is 100% customizable.
Pretty nice though.
Absolutely nothing. Nothing has stopped anyone from making a fully featured IRC client with good UX. Yet there still isn't one.
I like Slack's default-to team member privacy but you can implement these features without compromising that. I opened a case with Slack about it but they closed it with the standard "consider it in the future" response that I expected (which I don't hold against them, I can't say I wouldn't have done the same). It may take a breach of Slack's infrastructure and subsequent leak of private chats for them to make the changes needed for organizations to protect themselves from this.
It might only take user education to protect a company from this, but in the end if you're a big enough organization there are going to be people that don't care, hate the organization or are just to jaded to take the ramifications seriously.
It seems to by default use the team retention settings.
A public FOSS project should be able to use whatever they want for bug management, issue management, support, and other things that do not affect the core project in any way if compromised or monitored.
Especially if the company behind said product even give out discounts or free usage accounts to such projects like Atlassian or github.
Slack's interface is not very impressive, very messy in my opinion, but that's me. There are businesses out there offer IRC as a service, so that's another option.
Final point: I really don't care about FOSS vs OSS vs Proprietary. As long as the company truly respects my data privacy and security, and is easy to use, I can give zero damn about either of three. It's 2015, we need to stop arguing and actually make things better. Business needs to focus on improving product experience and security. But you know what, some people do, that's fine, none of my business anyway.
- E-mail address
- Phone number
- Mailing address
What is it about chat protocols that has resisted convergence on anything as remotely standard as these other methods? I mean, I could tell somebody that I spray-painted hieroglyphics on my house and that "there are 3 shipping companies in the world that know how to find my house using hieroglyphics so please ship through one of them", yet somehow my "address" has remained the sensible way to handle that problem.
The problem isn't Slack or IRC or any other client, it's that we have any choices at all. At this point we don't need choices for chat protocols any more than we need a choice of ways to put an address on a house. The technical community needs to start loudly criticizing clients that aren't converging on some standard, and standardize more and more behaviors every year until it really doesn't matter what people are using.
> - Phone number
Originally supplied through a monopoly.
> - Mailing address
Government assigned.
> - E-mail address
Originated on a government funded and used network, but eventually settled on open standard.
Having the ability to impose usage until a critical mass is achieved and being first seem to both be criteria.
I haven't used Slack's Gateway feature [1] but it seems Slack does allow you to connect with standard IRC and XMPP protocols.
[1]: https://slack.zendesk.com/hc/en-us/articles/201727913-Connec...
I'm building internal tools for the record label I make music with. We're going to try self-hosting Zulip vs. Mattermark for collaboration, and it would be great to have a calendar that integrates well.
It's worked really nicely for communicating announcements and updates with the added benefit of allowing attendees to socialize before, at, and after the event. It's also really changed how things like mentorship are done [0].
The problem I've had is the lack of any form of SSO. With all the events, FOSS projects, and actual organizations I'm up to 19 Slack accounts. Having to signup and create a new account almost every weekend is getting crazy.
[0]: https://medium.com/mhacks-hackathon/hackathon-mentorship-can...
I agree account creation in slack sucks though, and the author is correct that slack is not built for FOSS projects.
Previous discussion on this: https://news.ycombinator.com/item?id=10280611
Wouldn't the best solution be to adapt one of the existing open source slack clients to use a local server? Then we have all of the feature set and none of the security and privacy concerns.
Mobile client with push notification
First class photos, files, code snippets
Moderation tools
Same tool for private organization chat
Users that use Slack for the jobs seem to really like Slack for community support
The downsides are:
No invite system. Needs an hack app
Unsupported use case for community chat
Closed system. Exclusionary compared to IRC
So far the productivity gains feel worth it. I can only guess Slack doesn't mind this usage will provide better public chat offering someday.
A few people have given the same feedback about using IRC over Slack, however so it's on my mind.
Would chatting in both work?
- File transfers and snippets are not so essential, but they make working simpler
- You can connect to slack using IRC or XMPP https://slack.zendesk.com/hc/en-us/articles/201727913-Connec...
More credible alternatives would be Hipchat or Gitter but anyone who has used these two tools know that they are still way, way behind Slack in functionalities and user friendliness.
Slack is succeeding because it's a great tool.
Want to beat it? Create a better tool and people will migrate to it for its merits, not because it's open source.
However, we do what we can to support open source and we'd be happy to provide sameroom functionality to open source projects. Please reach out on sameroom.io/contact to take us up on the offer.
I've summed up my thoughts on this topic here: https://medium.com/@kumarharsh/please-use-slack-for-foss-pro...
We use a self hosted IRC server, along with an IRC bot written in Go for everything from automated deployments to chat logs to weather and traffic and bus schedules.
This isn't true, down the left side bar you can select other teams if you've signed into more than one.
I'm not suggesting we should only use slack, but at least they do make it fairly easy to navigate.
All that being said, I've personally been doing more things on a private git server and less things on GitHub.
I was casual fan of 37 signals/Basecamp.
And is there Giphy integration? Or editing of posted comments?
IRC is also my preferred protocol for realtime messaging, for the reasons mentioned in the article and also the fact that it's extremely simple - you can even use it with nothing more than a network terminal like netcat. My second preference would be the older versions of MSNP (before they started stuffing XML into everything...)
Slack is a tool, like a debugger or IDE, which aren't all open source.
If you are working on a government project with secret clearance, then these issues make sense. Otherwise, the article feels like it has more of a "whippersnapper" message.
Main reason being: Slack is a company and as such they can change their policy at any time. There isn't any specific right granting FOSS projects any status. Slack can ban the users they want, can deny access to accounts they want, they can be sold to other companies and can be bankrupted, bring it all crashing down.
Slack isn't a tool, it's a service. It's not in any way whatsoever like a debugger or IDE, even if those may be closed source. A tool is something you have and can use. You might not own its manufacturing but you own its potential use. Like a hammer you didn't make but is yours to do anything with. You can use it a million times if you want.
Slack is someone else's hammer that you pay to use. That's a service. The fact that they allowed you to use it for free for some undefined period of time doesn't mean you own it or dictate any rule of its use. It's still their hammer. They can stop you from using it at any point in time.
FOSS projects are supposed to be inclusive, open, transparent and fully decided by an owner or a community. Giving away control to a third party with no contract whatsoever is a terrible idea and a good way to break many of those premises.
Slack is being used for FOSS because of the failings of IRC noted by others in this thread, but that doesn't mean it's a good idea. Certainly not when the audience for Open Source is already very accustomed to IRC.
Slack is great for the turnkey solution it is, it offloads that IRC configuration you'd have to do, and it's easier to introduce non-technical people to. It's good for paying customers that have a clear contract with the company and as such gain certain rights. It's not, in any way, ideal for other cases. It might fit them, but it's not a great idea.
Competitors want to reach out to such communities and vendor lock-in them. Nothing new, had been tried before with MSN Messenger, AIM, Skype videochat, etc. though IRC will hopefully stay about such waves and fades - it's a rather simple protocol, has a good file transfer mechanism and thousands of native, it cannot be censored (words filtered) and web clients for every platform and needs (incl bots).
What is the "that Heroku hack?" mentioned in that article
tell them tater sent you
This is trivially true by the [material implication, modus ponens, modus tollens, other name, etc] truth table. However, if you study the truth table a bit longer, you will realize that you should stop reading any text which contains fallacious or self-contradictory logic. While the conclusion may be "correct", it is correct despite all of the other text you read (so, go find a logical argument [instead of relying on known bad information]). The text you read can tell you nothing about whether the conclusion is true.
Fallacious reasoning needs to be identified, targeted, and destroyed.
Edit: I've been rate-limited, so any fallacious (or non) arguments posted in response will need to wait a while for a proper response (some have already been typed up).
That's what you're doing. We should identify it, target it, and destroy it.
Actually I don't really think that it should be destroyed. It's human nature. We find any post-facto justifications for our gut reactions all the time. If we can't find one, we tend to distort what we saw to create one. It's part of human cognition.
You have claimed a Straw Man, but in my 20 second analysis, I do not believe you have identified it. (as in, quote the actual text containing the Straw Man)
Let me be straightforward with you, since you seem to be the sort that will not appreciate the standard cultural niceties.
So perhaps maybe you just did a poor job to express your specific point as you tripped over yourself to demonstrate to everyone you have read a bit of philosophy and logic. But it certainly would be reasonable that you entered a conversation without invitation responding to
> That the reasoning is fallacious doesn't make the conclusion incorrect.
With:
> However, if you study the truth table a bit longer, you will realize that you should stop reading any text which contains fallacious or self-contradictory logic.
Implying that if you could construe any single statement in my post as lacking in robustness from a logical perspective, then you should simply ignore the entire thing. This is regardless of the author's intent that this actually be a real point, or perhaps just a literary device or joke. One might actually read the whole post first, notice there is some technical substance, and come to a different conclusion before posting.
This impression is further reinforced by your frustration over rate limiting as you implied that my response, specifically saying that I didn't actually present my tautology as anything but a cute literary device to open what I considered to be a rather dry if somewhat acidic post.
You said,
> I've been rate-limited, so any fallacious (or non) arguments posted in response will need to wait a while for a proper response (some have already been typed up).
Which from my perspective certainly looks like you were ready to fire off a post explaining to me with as many latin words as possible aimed at trying to prove exactly that.
Perhaps, in the future, you may want to consider efficacy first and strict correctness secondly when discussing things in a casual forum with the (entirely barbaric, I agree) feature of "downvoting." Or perhaps just not entering conversations you don't have anything substantial to add to.
You might feel some irritation at this, because it can seem like an anti-intellectual stance. Sadly, you're existing in a community that has to deal with many people perpetually misusing terms like "ad hominem" and "genetic fallacy" and "truth table" in the worst way, to the point where it's a cognitive shortcut to simply pass it by or perhaps even express this cultural signal via downvotes.
I don't like it very much either, but cultural norms are not something we rationally argue with but instead can only hope to influence gradually.
My last two posts were specifically referring to the people who were downmodding me without posting any specifics. Unless HN hands out additional powers, which I have not been granted, you cannot downmod my responses to you. I did not mean to rush you (nor were my two parent posts in any way directed at you).
I will read your post now.
Edit: And likely post edit this post with responses.
>I can see it caused you enough distress to post twice.
I hope I was clear before, but I feel the need to state it clearly: you have not distressed me.
------------
Ok, many points are not relevant, but I'll respond.
>Let me be straightforward with you, since you seem to be the sort that will not appreciate the standard cultural niceties.
Thank you.
>So perhaps maybe you just did a poor job to express your specific point as you tripped over yourself to demonstrate to everyone you have read a bit of philosophy and logic.
I am waiting for the Straw Man.
> But it certainly would be reasonable that you entered a conversation without invitation responding to
No invitation required here.
>> That the reasoning is fallacious doesn't make the conclusion incorrect.
This actually depends on the conclusion. It depends on how all the words are defined, but basically, people come to non-real conclusions all the time.
>With:
>> However, if you study the truth table a bit longer, you will realize that you should stop reading any text which contains fallacious or self-contradictory logic.
>Implying that if you could construe any single statement in my post as lacking in robustness from a logical perspective, then you should simply ignore the entire thing.
My response was not directed at you. No, seriously. Go check the post history.
Also, that is basically the implication. And it's basically true. It's pretty much what you should do. Of course, there are many reasons not too: historical, curiosity, "maybe I read it wrong", etc. However, according the the rule of logic: there is no reason to consider fallacious logic in regards to any particular conclusion.
>This is regardless of the author's intent that this actually be a real point, or perhaps just a literary device or joke. One might actually read the whole post first, notice there is some technical substance, and come to a different conclusion before posting.
Fallacies should be called out as soon as they are detected. Consider the alternative: you are operating on fallacious logic. Good luck!
>This impression is further reinforced by your frustration over rate limiting as you implied that my response,
Again, my apologies for the confusion, but those frustrations were not directed at you, nor were/are they about you. You seem like a mostly pleasant person. (seriously)
>specifically saying that I didn't actually present my tautology as anything but a cute literary device to open what I considered to be a rather dry if somewhat acidic post.
And, yes. The Straw Man has not been presented (in my ~20min analysis).
>You said,
>> I've been rate-limited, so any fallacious (or non) arguments posted in response will need to wait a while for a proper response (some have already been typed up).
>Which from my perspective certainly looks like you were ready to fire off a post explaining to me with as many latin words as possible aimed at trying to prove exactly that.
The response I gave you is what I wrote up immediately before receiving the rate limit notice. I just kept the tab open and tried to post it every so often. I may have edited slightly after the first post attempt. I'd go read my response, then read the post the response was for, then come back here and read the above excerpt from your post.
>Perhaps, in the future, you may want to consider efficacy first and strict correctness secondly when discussing things in a casual forum with the (entirely barbaric, I agree) feature of "downvoting."
Please consider in any future encounters with me that I have already considered such concerns. Efficacy without correctness is madness. I cannot guarantee that I have considered all concerns, however.
>Or perhaps just not entering conversations you don't have anything substantial to add to.
I'm not not sure what this means. I don't consider posting a response on HN to be "entering conversations". It's some text in a tree, people can read it or not.
>You might feel some irritation at this, because it can seem like an anti-intellectual stance. Sadly, you're existing in a community that has to deal with many people perpetually misusing terms like "ad hominem" and "genetic fallacy" and "truth table" in the worst way, to the point where it's a cognitive shortcut to simply pass it by or perhaps even express this cultural signal via downvotes. I don't like it very much either, but cultural norms are not something we rationally argue with but instead can only hope to influence gradually.
I just try to point out the flaws as I see them. I'm not sure anyone else can do better.
However, since I could not possibly write my post knowing you'd be reading, the social burden clear falls on you.
Please consider that.
> I just try to point out the flaws as I see them. I'm not sure anyone else can do better.
I hope this has value for you. It certainly has absolutely none for me.
Edit: I also don't see the immediate relevance of your post to my specific rebuttals of your prior points. Want to go in-line?
I'm not sure it necessarily is. Currently leading theories may be construed to rule this (absolute absurdity) out.
Of course, that argument relies on appropriately defining all of the terms in your statement.
I'm more interested in where in my post you think I implied such a conclusion.
Edit: I know it's a lot to ask for.
Heh. Downmods.
If you want to keep commenting here, you need to err on the side of following the HN guidelines rather than breaking them. Your account has a long pattern of breaking them, and of straddling them when not breaking them outright. That's not the discourse we want here.
I reject any notion that I have ever intentionally broken a guideline. I also reject any notion that I have a pattern of repeatedly breaking any actual guideline.
My claims are easy to falsify.
IRC is better for occasional participants that wish to remain anonymous and/or use less screen real estate, but Slack is generally a better experience for regulars and way less hassle than hosting your own server/bots. Ymmv
It is, actually. I contribute to dozens of open source projects, and I am joined to hundreds of IRC channels.
You bring up some reasonable points, even though I disagree with asking teams to not use Slack (as I vastly prefer it to IRC these days, but I am focused on open source collaboration with active engineering teams). I think a compromise would be for teams that want open contribution or a chat support channel to turn on Slack's IRC gateway.
My first experience with IRC was 1994, I believe. I get IRC. However, slack has been a better experience. The biggest advantage has been persistent history and search for any member of a slack team. A new employee should have access to a conversation from a year ago.
Spoken like someone who has never been a serious IRC user.