Hacker News new | ask | show | jobs
by Barrin92 3034 days ago
So we've gone from IRC which worked perfectly fine to a billion dollar business just to port that software back to the terminal, where we started out to begin with

I don't understand this world any more

10 comments

I love using Unix and the terminal, but I hate using IRC. I don't think it works "perfectly fine".

I have been lurking on a few IRC channels due to my work on http://www.oilshell.org/ .

Problems I noticed:

- The lack of conversations/threading is really annoying. Most worthwhile IRC channels have more than one conversation going on at once. Not only do you have to untangle who's talking to who, there's no way to know where the beginning of a conversation is. I have to read messages backward to find the beginning .

- By default there seems to be a lot of leave/join spam. I used IRC for a year before turning this off and it vastly improved my experience.

- I think most clients don't save anything by default. When I reboot my computer and don't log in again, I miss messages.

- Having to use pastebins for code is annoying.

I'm sure that someone will respond with how you can solve all these problems with a certain IRC client. But I don't want to do that. I'm not technically unsophisticated -- I write software in 5+ languages and I know all about Unix and networking. I just don't want to spend my mental energy on my chat client -- I have tons of other projects to spend it on.

So I only use IRC when necessary; I use e-mail otherwise (through GMail.)

Of course, I also don't use Slack. But from what I hear it solves some of these problems.

I think you are focusing on the wrong thing by spending several paragraphs on the problems with the out-of-the-box experience and only one on the fact that it is an open protocol so a sufficiently technical user can fix it.

An open protocol, free choice of clients, and decentralised infrastructure is a baseline. A change is not an improvement if it removes those. (You could argue you have valid reasons to remove any of them and you'd be wrong.)

I don't see why it would be much more exhausting to use a hosted IRC service like IRCCloud to solve your problems than pick a specific alternative protocol entirely.

I'm explaining to the parent why "I don't understand this world" isn't a reasonable response. If you've used Slack and IRC for 5 minutes, you should know why most users prefer Slack, even if you prefer IRC.

I don't use Slack regularly, but I have tried it, and it is instantly obvious what the difference is. If you don't see it, then you probably have never designed software for end users. (FWIW, I also agree that Slack is bloated and that's one of the reasons I don't use it.)

As far as contributing to free software and open protocols, I'm working on fixing Unix shell. It would be great if IRC developers would take some inspiration from Slack and other proprietary services and fold them into IRC. Although, as mentioned in this thread, some of that may be very difficult or impossible without a commonly accepted client.

And I understand it's not a one person job. It probably requires a more coordinated effort. Decentralization has drawbacks as well as benefits.

What is not OK is pretending that problems with IRC don't exist. If you have that view, and spread it, then you guarantee that open protocols won't win.

I prefer open protocols, and I lament what has happened to Usenet and e-mail (trying to set up a mailing list for my open source project has been frustrating; spam causes problems for mailman-type lists). But honestly the proprietary services have innovated. They're not better in all respects, but they are better in some.

Open source doesn't mean being ignorant of users and dismissive of their complaints.

(FWIW I didn't know about IRCCloud. It looks interesting and I may check it out.)

> A change is not an improvement if it removes those.

If you see Slack as a replacement for IRC, then sure, it's not an improvement.

If you see Slack (and other proprietary solutions) as a capitalism-incentivized R&D lab for features that can then be absorbed into the open ecosystem, then it's nice that it exists, isn't it?

If you want "An open protocol, free choice of clients, and decentralised infrastructure" then Jabber and Matrix are both much closer competitors to slack. IRCv3 is a step in the right direction for IRC, but is not as far along as either of those.
btw, you can also use matrix.org and their irc bridges to various irc networks in place of irccloud
Unsolicited feedback for you @chubot, in case you're open to it:

Clicking through to oilshell - I wanted to know what is different and exciting about it, but all I found was text saying it's "new". Making the value proposition clearer would go a long way and be a big help to people who are curious and geniunely want to understand what's amazing about your creation.. !

Thanks for the feedback. I thought I had solved that with the "Why a New Unix Shell?" link at the very top, but I understand you still have to read a bunch of text to answer your questions.

My main goal right is to have sophisticated users try it and give bug reports. It's not ready for people to use as their daily shell (and that isn't even the primary purpose of the project. As explained in the FAQ, I'm focused on shell as a programming language first.)

Some people have tried it and reported bugs, but I could use more reports. So I suppose I could try to sell it a little more and maybe get more feedback. But overall I feel like it's gotten a lot of feedback and attention. I'll think about whether it makes sense to "sell it" more.

The other thing I would like is to attract experienced developers who have implemented VMs and programming languages. Most of those people are working on their own projects. But I think many of them understand my project and half of the blog posts are aimed at that audience.

> The lack of conversations/threading is really annoying.

I find it interesting that people want to have threaded conversations in what is essentially a synchronous chat, but they prefer to have a degraded threading experience in their email client by using conversation view rather than traditional email threading using the Reply-To and/or References headers.

Plus: What about a history? Do I really have to have my client running to not miss stuff? That may have technical reasons, but is inconvenient.
IRC solves these problems via things like bots and bouncers. Although running always connected irssi client [1] in a screen [2] on a server is probably the easiest way to achieve it.

[1] https://irssi.org/

[2] https://www.gnu.org/software/screen/

IRC doesn't solve those problems; individual users solve those problems on top of IRC (and usually not very well.)

A proper open-ecosystem solution would involve network-level history-storage-and-retrieval nodes (basically archival peers in the IRC protocol), and additions to the protocol to direct archive-access queries to those nodes.

> A proper open-ecosystem solution

Not sure what you mean by "open ecosystem solution." IRC is literally just a few RFCs, a variety of server software, and a variety of client software. It's as extendable as you need it, and most networks have their own extensions already. Is that not open enough for you?

> IRC doesn't solve those problems; individual users solve those problems

As opposed to...? AI solving them? Do we need a corporation to hold our hand while we solve these issues? I'm not following what you're objecting to here. You're free to write and propose your own RFCs and extend IRC however you wish.

> Is that not open enough for you?

I was trying to contrast with existing solutions—IRCCloud, for example, "solves" the problem of history search by effectively wrapping IRC into a proprietary web cloud service.

By an "open-ecosystem solution", I mean a solution that applies to anyone and everyone who uses the IRC protocol, rather than only for users of some specific client.

I'm not saying IRC isn't amenable to open-ecosystem solutions; I'm saying that nobody has (yet) tried to solve this problem in an open-ecosystem way.

> As opposed to...?

As opposed to network-operators being enabled to solve these problems for users of their networks.

Consider the contrast of POP3 vs. IMAP. In POP3, the tasks of "email storage" and "email search" are left to the user, and often they'll solve them badly (by e.g. setting up direct POP3 connections from several devices to one POP3 account, ending up with random emails living only on one or another device, whichever one happened to pull them.) In IMAP, by contrast, email storage and indexing happen on the IMAP server, and users don't need to worry about it. But, since the solution doesn't involve any proprietary services, users can still "take control" of the process if they want—in this case, by setting up their own IMAP server. They just don't have to do that.

> You're free to write and propose your own RFCs and extend IRC however you wish.

I think we're in violent agreement about that. My point was that nobody seems to want to do that for the IRC ecosystem vis-a-vis network-level message archiving.

And other platforms solve this problem by having history as a built-in feature, which apparently IRC can never get due to inertia.
IRC is not a service. It's a protocol. There are services built on IRC mentioned in this thread which have history as a built-in feature.
And yet every thread about Slack (or Discord or Gitter or whatever) is full of people saying "why not just use IRC"?, as if IRC could replace a complete service.
Slack addresses some of the problems, but not all:

> The lack of conversations/threading is really annoying.

Slack is arguably worse - they recently added threading (really comments that can go on a post - there is no nesting), but this has made me much more likely to miss any follow-up because messages are less visible than otherwise.

> By default there seems to be a lot of leave/join spam. I used IRC for a year before turning this off and it vastly improved my experience.

This is entirely client dependent, so not really a fault of IRC. Slack has the same option, it just defaults to not displaying it like clients as opposed to whatever IRC client you used.

> I think most clients don't save anything by default. When I reboot my computer and don't log in again, I miss messages.

Yes. I don't know the inner workings, but generally if you're offline on IRC you will miss anything directed at you. Slack definitely addresses this, and it is my favorite "feature" - it means that Slack is not good for only casual discussions. (Slack's search is my second fav, and there's nothing special about that, it just works well enough that I can usually find that comment I vaguely recall someone making within the last 6 months on one of the many channels I'm on).

I expect this is largely a client issue, though I also imagine that most IRC servers have a very limited amount of immediately available conversation. Remembering that you have direct messages waiting for you would require servers that reserve nicks. That's all guessing though.

- Having to use pastebins for code is annoying.

Slack allows for posting code in text, posting text "snippets" that can include code, and posting files that can be downloaded.

Overall your frustrations seem very reasonable, but from the sound of it you're "hanging out" on IRC channels that are being friendly for outside users to drop in and out, and for devs to have conversations that are considered temporary. Plus not having users post goatse pics or worse. Which means they aren't even TRYING to accomplish what you want. Hard to blame IRC in that case - those features aren't used even when available.

I'm not exactly saying "You just need to use IRC client X" as you predicted, but more "you probably just need to change a config and connect to IRC servers that are INTENDED to do what you want". Not wanting to go through that effort is fine, and I'm not saying Slack and other alternatives are worse or even equal for those tasks, but don't blame the plane for not flying when the pilot is making donuts on the runway.

I'm responding to the parent, who was questioning the existence of Slack, because IRC already exists. That's not reasonable, as I explained in the comment you're replying to, and even more in another reply.

IRC doesn't work "perfectly fine", at least in the context of the problems that Slack solves.

I think we largely agree on technical matters; it's a matter of what relevance this has to the OP -- a Slack client for the terminal.

If your stance is that IRC is irrelevant to this thread because Slack and IRC solve different problems, then I might mostly agree. But I didn't bring up IRC!

> If your stance is that IRC is irrelevant to this thread because Slack and IRC solve different problems

I was saying you are comparing Slack to IRC-when-used-to-solve-a-different problem. You haven't described IRC as it could be configured to handle the same problems as Slack, only when you've encountered it in the admittedly more common case that it's intended for drop by traffic.

Well then everyone should feel stupid for not realizing you could make a billion dollars creating a sane sign-up and account management system for IRC.
I wouldn't call it sane.

Why do I have to sign up for different Slack organizations and have a different password for each one?

Why can't I private message someone on Slack with just a username?

I think Discord does this much better.

So, I preface this by saying that I do feel like Slack could have better authentication mechanisms, decoupling the account from the networks. But I do think that some of this is by design as well.

I think it is worthwhile to think of each Slack organization as a completely independent and isolated network. This is one way that they can reasonably give some security to their corporate customers. I don't believe that there is any intention to ever lat you send a blind message to someone on another Slack organization, but maybe I am wrong there.

It would absolutely be nice however for me, as a user who is in multiple organizations, to be able to log in one time and have all of them be connected.

I'm in multiple organizations, but some are against different email accounts, some use an external SSO and some don't. Were Slack to give a single login I would probably NOT be able to connect to the multiple workspaces I do now, which is a major benefit to me.
I'm guessing because of deep technical debt from some very early decisions made.
Yes. As of a couple years ago at least, Slack was a monolithic PHP app that could support a few thousand users in a single team. Each “workspace” was assigned to a server and scaled vertically. LinkedIn notoriously had two Slack workspaces in order to support all of their users, and I’m guessing other large companies have had to do the same.

I’m sure Slack is using their vast resources and large team to solve these problems at this point, but it probably hasn’t been easy to create a horizontally scalable system from the early codebase, especially when the data model was designed for a single team of users.

I would assume so as well. Maybe a Slack engineer can chime in?
I got downvoted, I think one of them chimed in.
Discord also has amazing performance. I guess it's because gamers would be mad for something like Slack eating up all the computer's resources.
...and push notifications, and offline message history, and a mobile client, and services that aren't hacky god-clients, and content storage, and previews/inlining, and....

About the only thing IRC has going for it is decentralization, and that's not very valuable in the market it seems.

Seriously. IRC has had 30 years to get with the times. It's stagnated and been lapped by its competitors, and the efforts to improve it didn't properly start until Slack and friends simultaneously re-cooked and ate everyone's lunch and dinner.

> push notifications, and offline message history, and a mobile client

https://irccloud.com has all these, done really well.

Offline message history you get also by running a server somewhere and just having an irssi in a screen/tmux.

Still my favorite protocol and I have some channels that I consider to be my favorite social network for about 10-15 years already.

I pay for irccloud, but most people don't. It's annoying trying to talk to someone who disconnects when they shut their laptop and will never receive your message. Not very good tooling to build a community or relationships, that's for sure.

Having to pay for basic features that competitors like slack/discord have is exactly why the slack community for something is often much bigger these days. Even the larger communities like #node.js are really just 10 regulars.

For example, Elm's slack is vibrant. Elm's IRC channel is dead. This is the reality for most communities I've been joining these days.

Depends where you chat. Some rave/techno channels are still very active since the last 25 years. For English speaking crowd, at least #haskell, #rust and ##ibmthinkpad are having lots of discussion every day. But maybe it's just me. I've been using IRC since 1995 and I see it much nicer compared to the centralized bloat of a chat Slack is.
Great point. You can add these features for yourself with IRC, but Slack guarantees that the other party also has those features.
But it gives up decentralization (and privacy) and still requires that you have a server to connect to anyways (read: server to set up and manage).

And on top of that, the behavior of irccloud from the standpoint of everyone else is identical to that of a bouncer like ZNC. It's yet another hack around the fact that clients don't exist in IRC unless they're online.

Also , infinite scroll back , a standard set of easy to use clients, hosted services and API integrations.
I fail to see how those things should be part of the protocol. That's like complaining HTTP doesn't support tags for your bookmarks. It's so out of scope.

Unless, of course, you are talking about a user-friendly service offering IRC access to those who do not want to set up their own clients.

So, something like IRCCloud, which does exist, fyi.

Infinite scrollback is only possible with support from the protocol: if you assume that partitions happen between two servers or between the client and the server, then the client will not be able to see every message that happens so cannot provide the scrollback.
Okay. So why isn't IRCCloud better than Slack?
I can’t convince my colleagues to use IRCCloud at least people will put up with using slack.

Rocketchat has much more feature parity to slack tbh. Comparing slack to IRC isn’t really fair even though they do the same thing.

I have used irc and slack and slack’s ease of use is its asset. I used freenode in high school and college to teach myself scheme. The barrier to entry is not something that can be explained as just use IRC.

Disagree about barrier to entry.

I run an office hours chat for my online classes powered by IRC. I use KiwiIRC as the front-end.

Students need only the web address of the web page I want them to go to. When they get there, they need only a username.

No signup, no verification, none of that. They're online, getting help in seconds.

Individual public channels requiring nickserv registration and all that? that's another story.

But seriously - the barrier to entry to get started is this:

https://kiwiirc.com/client/irc.freenode.net/?##irc_can_be_ea...

I created my own Terminal client to communicate with Slack [1].

I did it because I like IRC, but my employer (and many of my co-workers) love Slack.

I dislike Slack, having the option to connect to an IRC gateway (unless your employer disabled this option) or to communicate with their API service with a program like this one (linked above) or mine (linked below) is good for people who still need to communicate with their peers but want to do so through the program that they are more comfortable with, in this case, the Terminal.

[1] https://github.com/cixtor/slackapi

Oh c'mon. Slack absolutely destroys IRC in terms of usability. And that's what ends up counting in the end.
Slack is barely useable, and I use it every day. Grief includes:

- Huge, rigid, unskinnable UI. - Difficult, multi-step access to configurations and settings. - No OS integration therefore no desktop automation.

I probably should have stuck with Hipchat, but I jumped on the Slack bandwagon along with everyone else.

What skinning features would you like to see in Slack? You can at least set color schemes to help visually distinguish workspaces.
One of my grievances was the missing ability to remove or at least drastically shrink most parts of the UI. When I set the window to the desired size, the actual area where peoples messages appeared was ridiculously small. One would think that's not how you treat the most important part of your UI.
Which usability features are they? The 3 GB of RAM usage, the battery-draining, or the culture of “always-on” availability and interruptions?
Your failure to set your coworker's expectations for your availability or the failures of organizational culture being projected onto the messaging tool are not the fault of the messaging tool.
This ignores the fact that if you don’t respond to people contacting you you’ll get fired. As a salary you have no voice.

The market simply optimizes for whatever is easiest for a ceo to install and maintain.

How is this Slack's fault, again? Or is the argument that messaging systems should be hard to install so they aren't misused?

Seriously, what even is this comment chain getting at? If you work somewhere where always-on is a hard requirement, it doesn't matter what messaging system is used. Any place that would fire you for muting notifications would just as easily fire you for turning off email notifications.

In short: Let's stop blaming the damn tool for something that is the fault of the humans using it.

I’m blaming both: I’m blaming the humans who expect it, and the billion-dollar blob of JavaScript that enables it to be so.
Probably because Slack makes it easier to establish an "always-on" culture.
In countries that have actual work laws that wouldn't happen so easily.
Not only do we shape our tools, but our tools also absolutely shape us.
Your corporate culture shapes use of the tool a lot more than the design of the tool, especially when that tool's essential components are identical across the entire set of competitors.

Slack doesn't have some voodoo set of features that make it more problematic than Hipchat or Teams or Stride or Mattermost or (nn programs elided).

If your org sucks, your communication within that org will suck too. Let's not burn down the concept of instant messaging in the name of sucky orgs.

If you count the official program, then no. That Electron based garbage is unusable. I use Slack with the IRC gateway.
which has its share of problems, just from the top of my head:

- you will miss edits

- in some cases when people sign up with their email addresses, you now have "info" and "mail" as nicknames, because they signed up with info@example.org and only the slack client shows "joe".

- everytime someone pastes a snippet, you'll have to open it in a browser anyway (ok, minor issue)

Nope. Maybe for moneypigs but not for the people. Centralization and a proprietary protocol make Slack et al a net loss.
You can actually connect to Slack via IRC: https://get.slack.help/hc/en-us/articles/201727913-Connect-t...
A colleague of mine uses through irc gateway but tells me a lot of stuff is not supported well like threads (which some people unfortunately started using more) and that you can't see edits, which many people also do. I think attachments and files are also a problem.

And slack is complete garbage that is pushed and we as employees most of the time have no other options.

Besides the whole problems mostly talked about related to memory and cpu usage, the one nobody seems to check or understand is that it is completely frustrating and unusable from accessibility point of view. I've seen this first hand as that person above is blind and the slack application is of one the worst offenders there is regarding this point. I've seen and felt his frustration and how slack team manages to avoid his point all the time.

So I hope it dies out eventually :D

Unless your employer decided to disable that option because an upper manager didn't like the idea for reasons that I don't even understand. It's even more difficult when you are part of a corporation with thousands of employees that are in favor of using Slack over IRC.
Teach my CEO, Design Director, and EVP of Sales to use this terminal slack client and you’ll understand.
I have arrived at the mindset that if you are in a technology company than all these people need to be technically-oriented as well. Failure to perform these fundamental tasks should be grounds for coaching or discipline.
Everything old is new again. ;) Okay, that’s a bit flippant. Obviously Slack isn’t IRC (with several major differences), but I think as far as communicating with your coworkers goes, they both accomplish the task. It’s just a matter of how much you want to spend.
Slack is a billion dollar company because they made IRC accessible to the non-technical people. Technical people write a terminal client for it because they like being in a CLI for reasons. Making a popular service look and feel like the older service that inspired it is completely reasonable.

Different people, different needs, different drivers. Just don't expect the actions and motivations of different groups of people to align with each other. Sure as a while it doesn't seem to make sense but each individual part is reasonable on it's own. There must be a powerful German word for things systems that look crazy at the macro level but are reasonable at the micro level.

This is for the people who want to use IRC but work somewhere that requires Slack. Obligatory relevant XKCD https://xkcd.com/1782/
Venture capital