Slack client for the terminal(github.com) |
Slack client for the terminal(github.com) |
In my experience custom emojis is the most important driver of Slack use ;).
Maybe it was the ui, or some particular features, but they did resonate with the users. And now they are the benchmark that all the others will compare to.
A chat client should not be taking over 1GB of RAM
Literally no one knows! It's layers upon layers of code. Most of the layers can't even be understood by a single person, let alone the whole program.
You meant 1MB, right? ;-)
* I recognize your sarcasm, but figured I'd reply anyway since the internet is a weird place and lots of people might not catch the joke.
[1] https://medium.com/@matt.at.ably/wheres-all-my-cpu-and-memor...
I also use Discord which uses Electron and with it, I'm on 8 separate active servers with anywhere from 10-30 channels. This sits at 115mb without an issue.
Can you tell me where these electron metrics come from where people have slack take up 1gb or even 2gb of memory?
That's still a lot of RAM for a chat with giant emojis.
You have to consider that people reporting these issues with memory consumption are running the app in different operating system than yours. Maybe your system is optimized. I just checked my co-workers computer and his main Slack process is at +97MB but there are 3 instances of "Slack Helper" at +433MB, +297MB and +255MB respectively. That's over 1GB in total. So either you are just looking at the main Slack process (which at +340MB makes sense) or your Slack is leaking memory somewhere that your RAM monitor is not able to map.
Why do you care so much about RAM usage? All this concern over RAM is completely missing the picture here.
Every conversation about slack or electron people complain about RAM usage. The market could not give two shits about RAM usage so why does everyone on HN complain about it?
That's fucking bonkers. Objectively and scientifically fucking bonkers.
(Great tool, much better than the awful official client, but 20MB is actually a lot of RAM.)
But I think it's more useful to think about the percentage use of RAM for a given application. If you're running on a machine with 32 MB of RAM, then using 20 MB for a single application is obscene. But if you're running 32 GB, it's insignificant.
Even so, a single application shouldn't be using a significant percentage of system RAM on an average consumer grade laptop/desktop (4 to 16 GB of RAM).
I'm currently on a 16GB machine, where I only have a terminal, a text editor and a browser with few (<10) mild (wikipedia, hn, ...) tabs open. That gives 351 processes using a total of 8.7GB memory (2.11GB of which is unswappable, and about 1 gig of already compressed memory). My 3GB of disk caches go on top of that, and 0.5GB has already been swapped out.
I sure have room for a 20MB binary right now. However, on an 8GB system, I'd be in the red. I would already be swapping several GB, and any allocation would either evict (useful!) caches or swap out the memory of another process.
Any memory allocated in that state reduces the performance of some other component of the system.
Of course, 20MB is much better than the status-quo of casually burning a few hundred MB (or even a few GB) for simple tasks, and the situation of being out of memory with a whopping 8GB is caused primarily by the other "bad citizens", but the point here is that 20MB is indeed a quite big chunk of memory in real-world use-cases.
Especially for this application, which presents a UI from 1990, and the functionality of an IRC client.
https://get.slack.help/hc/en-us/articles/201727913-Connect-t...
Maybe one day!
It couldn't be that rough, could it? I've done little interacting with the API's outside of simple bot integrations for a little fun.
glances at watch
I presume most of the non-commercial projects posted on HN are started to scratch an itch of the autor, which might as well be that they're stuck with a closed system that sucks. Trying to improve that situation somewhat seems sensible to me.
I don't understand this world any more
This terminal client seems to be using Slack's public web API.
https://github.com/bkanber/Slackadaisical
Been using it, works fine as well. Good job OP though, diversity of offering is always good!
Haven't tried this plugin myself though.
I actually do use this, but it is missing a lot of useful features, some of which seem unimplementable in IRC
One example: the mattermost clients won't register a message as "read" until you switch to that view, so if e.g. I check messages on my phone, I will see unread messages, but IRC doesn't have a way of communicating this between client and server so matterircd seems to mark all messages as "read" with mattermost)
Yes I know about irssi and friends, but they're not really having an UI, many things are commands or config based, but centericq was.
(not to imply that the electron app isn't nicer to some people)
Is that how much memory this requires to run?
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.
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.
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.. !
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.
> 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.
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.
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.
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.
- 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.
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
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.
There are no Slack helpers.
I'm not sure why you're this adamant about it.
I still it's quite a good deal given that my Discord instance has a similar feature-set and is accessing just as many channels/servers/teams as Slack but at a third of the memory.
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.)
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?
I'm open for ideas on how to fix this, eg manually sending a /quote read command is maybe an option with irc client plugins.
(feel free to open issues with feature requests btw)
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.
So yes, they're comparable. Choosing inefficient ways to do things (in the case of Java) is not a way to escape comparison.
*edits
s/complext/complex/
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!
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.
- 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)
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.
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.
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.
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.
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.
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 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 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.
64-bit, for one.
Disagree, the reason why it is so popular is because of its slick UI.
> and the functionality of an IRC client.
Disagree. Did you read the other comments? An IRC client is not the same as a SaaS chat service that keeps history, video chat, infinite scroll, allows communication to happen even if a user is not online, etc.
Sorry to sound so harsh but saying that slack is just an IRC client with a 1990s UI shows a complete lack of understanding for why it has dominated the market for business chat.
I think you misunderstood my comment as being negative. I like TUI's, but it's a UI from 1990's, and the resource requirements for rendering such a UI has not increased since the 90's.
> Disagree. Did you read the other comments? An IRC client is not the same as a SaaS chat service that keeps history, video chat, infinite scroll, allows communication to happen even if a user is not online, etc.
You are missing the point entirely here. First of all, I am not saying that Slack should go away because it doesn't do more than IRC. I am, however, saying that I expect similar resource consumption.
But to tear the idea of there being a difference apart:
"SaaS" is irrelevant. It does not affect features, and Slack is just as much a service as freenode is. No difference there.
This client does not provide video chat, so that's irrelevant.
This leaves us with "history" ("infinite scroll" is just a UX decision) and "allow communication to happen even if the user is not online".
Communication to happen while the user is online is handled in IRC through an IRC bouncer. So, what you're saying is just that the Slack server has a built in bouncer. Not something that takes client resources, or differentiate it from IRC.
So in reality, the only fancy feature Slack has is synchronized history. This is a nice feature that IRC doesn't have, but it takes 0 client resources to implement. It just requires some storage on the server and a synchronization protocol, which could be as simple as "dump the history when the client connects".
> Sorry to sound so harsh but saying that slack is just an IRC client with a 1990s UI shows a complete lack of understanding for why it has dominated the market for business chat.
Sorry to sound harsh, but Slack does not differentiate itself through features. Just like Atlassian HipChat, it doesn't do more than IRC + 1 or two simple features (which in no way complicates the platform or increase resource consumption).
What it does is to wrap an entirely standard feature set in a package more easily consumed by the users in this day and age, that might be turned off by things like IRC. That in itself is an entirely fine proposition, and one which have had success. However, the features are indeed those of an IRC client, and the resource consumption should be thereafter, especially when you go full circle back to having a good old TUI.
I'm sure some crazy chap out there could write this application with only a few hundred bytes of memory, but that's beside the point.
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.
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.
What are your reasons for sticking to Common Lisp?
50MB "runtime" sounds quite extreme, even in this day and age. That's 2.5x the consumption of a fresh Node.js instance on my machine. :/
The market simply optimizes for whatever is easiest for a ceo to install and maintain.
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.
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.
They're killing it for a reason, and it just may be that the market they're targeting cares more about the app Just Working than about the RAM consumption.
Microsoft does have people on staff that know how to make an Electron app not suck really horribly, though whether any of that expertise from the DevTools branch makes its way to Office and the red-haired stepchild UC teams...
I never made that claim.
> They're killing it for a reason
Sure, but who knows what that reason really is. I've gone through numerous cycles of "best chat app ever", and they're pretty much all in the dustbin now. I just don't see anything about Slack that makes it any better than several alternatives other than the number of users. In fact it's objectively worse than alternatives in several ways. The video and regular calling for example is pretty terrible on anything less than a high speed internet connection. In general the app often fails to load on weak WIFI. I can still use Skype, Discord, Gittr, Facebook Messenger, Signal, et.al. on coffeeshop wifi, but not Slack. You don't need to be a genius to see that this is a problem.
This is only your very free interpretation of the comment you responded to.
I personally only encounter slack in companies I freelance for - if it does not perform, I file a ticket with whoever does office supplies and demand a bigger computer.
When there's a serious competitor in the space, then I'm sure they'll start caring. For now, I don't think anything else is close.
If I were starting a new company, I wouldn't use Slack again.
I’m inviting you to navigate to its website, to see what happens there :-)
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...
Some welcome message. You may be too used to IRC to recognize this, but this is frightening gibberish to 99.99% of computer users.
Also, this interface does not get you crucial features provided by other chat services, such as seeing what previous users have said.
It's amazing to me how people think Slack is this amazing tool. If someone had thrown millions of dollars at IRC, it wouldn't suck.
But instead, you'll fork over your personal info and insist I do too.
Slack is no different other than name recognition and size.
Slack is focused on business.