Live data from Hacker News

When a rewrite isn’t: rebuilding Slack on the desktop

medium.com

271–280 of 408 posts

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#271
post #268
post #247

Earlier quoted context omitted.

If there has been no real gain in functionality, then why is Slack hugely popular while IRC is used by almost no one? Perhaps you aren't giving credit to functionality that is important to people other than yourself?

Extra features aren't the reason why Slack is so huge.

What is the reason?

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#272
post #76

Earlier quoted context omitted.

Thanks for the articles! We've been using Redux since August of 2016 at Groove. For us, we've found that Redux makes sense when you have state that needs to be shared. If you are dealing with some specific, tightly coupled component state, it sometimes makes sense to keep that particular piece of state local to the component (at least for our use-case). The biggest issues we've run into during our time with Redux hav…

Yep. The Redux "Three Principles" docs page [0] emphasizes the "single source of truth" aspect. It's a good selling point, but has unfortunately led to a lot of folks interpreting that as "you _must_ keep _everything_ in Redux". (Doing so is a valid design decision, and I've certainly talked to folks who deliberately did that to make everything trackable and time-travel-able. But, most UI state probably doesn't need…

> The Redux "Three Principles" docs page [0] emphasizes the "single source of truth" aspect. It's a good selling point, but has unfortunately led to a lot of folks interpreting that as "you _must_ keep _everything_ in Redux".

After a couple of years working with Redux, I think my interpretation has settled down to:

Redux should be the single source of truth for the pieces of information you decide to put in there.

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#273
post #264
post #172

Earlier quoted context omitted.

If someone is running so much stuff that an app (or a few apps) using ~250MB of ram instead of ~100MB (or whatever) of ram is a huge problem they can easily spend $200 or so for an extra 8GB of ram. Ram is cheap. Usage at this scale just doesn't matter to the vast majority of users.

Yeah, yeesh. So I'm in the market for an ultrabook and eventhough I had 8 GB of ram in my desktop over a frigging decade ago there still exist laptops with less than 16 GB today. Not only that, the cheapest 16 GB model is over a $1000 more expensive because now I must have an i7 and everything else. And no, not even with 16GB will I tolerate what slack uses even with their new version. Yes, I do consider upgrading th…

The difference between an 8GB macbook air and a 16GB maxbook air is $200, not $1000.

Lot's more options in PCs obviously, but 2 minutes of googling found a 16GB XPS13 $580 more than the 8GB version. Again, not $1000. I'm sure with slightly more searching there are cheaper options as well.

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#274

Earlier quoted context omitted.

Yep. The Redux "Three Principles" docs page [0] emphasizes the "single source of truth" aspect. It's a good selling point, but has unfortunately led to a lot of folks interpreting that as "you _must_ keep _everything_ in Redux". (Doing so is a valid design decision, and I've certainly talked to folks who deliberately did that to make everything trackable and time-travel-able. But, most UI state probably doesn't need…

> The Redux "Three Principles" docs page [0] emphasizes the "single source of truth" aspect. It's a good selling point, but has unfortunately led to a lot of folks interpreting that as "you _must_ keep _everything_ in Redux". After a couple of years working with Redux, I think my interpretation has settled down to: Redux should be the single source of truth for the pieces of information you decide to put in there .

Exactly! I've used literally that phrase in some of the talks that I've done. We clearly will need to include that in the revamped docs.

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#275

Earlier quoted context omitted.

Funny how a google images search for limechat fails to find a single screenshot with inline images. But I'll take your word for it. I guess that settles it. People will dump Slack and Discord on mass and move to the amazing IRC clients like LimeChat which are so much more efficient. it's well known that the number one thing people look at when choosing software is how efficient they are. Nobody cares about looks or f…

If people cared about looks or features, Slack certainly wouldn’t come out on top. No, what people care about are primarily network effects. They'll use whatever someone in the company decided to use (frequently Slack because it’s always been Slack since someone back in 2013 decided it was the hip choice, before it even had a desktop client), and they’ll put up with whatever dogshit client they’re served, because it’…

Slack has great features and awesome integrations with almost anything you can think of. This is its value and this is why people like it.

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#276

Earlier quoted context omitted.

There's this classic article on the topic: https://www.joelonsoftware.com/2000/04/06/things-you-should-...

Joel's article is the famous classic, but he proved himself wrong when his company, Fog Creek, built Trello from the ground up, sharing no code with FogBugz. Trello became a huge success while FogBugz languished. https://medium.com/@herbcaudill/lessons-from-6-software-rewr... (I think this article should be the new classic.) > My takeaway from these stories is this: Once you’ve learned enough that there’s a certain d…

Not a great example, I think.

Trello isn’t a rewrite of FogBugz. It’s a brand new product.

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#277
post #273
post #264

Earlier quoted context omitted.

Yeah, yeesh. So I'm in the market for an ultrabook and eventhough I had 8 GB of ram in my desktop over a frigging decade ago there still exist laptops with less than 16 GB today. Not only that, the cheapest 16 GB model is over a $1000 more expensive because now I must have an i7 and everything else. And no, not even with 16GB will I tolerate what slack uses even with their new version. Yes, I do consider upgrading th…

The difference between an 8GB macbook air and a 16GB maxbook air is $200, not $1000. Lot's more options in PCs obviously, but 2 minutes of googling found a 16GB XPS13 $580 more than the 8GB version. Again, not $1000. I'm sure with slightly more searching there are cheaper options as well.

Yeah, as said the problem isn't just the ram price it's whatever else you might need to buy to get it. But 580 is also pretty darn depressing for 8GB.

For reference I bought 64GB for my workstation for less than $400 a few years ago. And that's with 25% sales tax.

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#278

Earlier quoted context omitted.

I’m still skeptical. The memory usage chart from the article shows only a slight (10%?) improvement for single-workspace Slack clients, now at around 250MB. Yes, getting a 5+ workspace client down from ~800+MB to 300MB should be applauded - but the 250MB floor is still too high. I want to know what’s in the 250MB it’s still using.

I checked in Firefox and a given Slack uses 200+MB at load and then optimizes down to 140MB at runtime for a given Slack, of which ~60MB is JavaScript and ~80MB is page elements. So if those numbers carry over to Electron-Chromium, then it's 100MB of "I'm a browser" and 140MB of "I'm a webpage full of dynamic and objects". They certainly will not carry over precisely equally, but it puts some scope on it to consider.…

When comparing Electron and non-Electron, bear in mind that Chromium typically uses a fair bit more memory than Firefox; I’d estimate 20–40% as a rough figure, though it depends on all sorts of factors.

You pick Gmail as another example. Gmail is a memory hog and fairly slow. For comparison, Fastmail (which company I work for) tends to use 10–15MB in Firefox for slightly different functionality (no chat, and I estimate the Hangouts widget to be about half of Gmail’s bloat, but on the Fastmail side you can load the calendars, contacts and settings modules in the same document comfortably without breaking 20MB), and is a good deal snappier. It comes of careful engineering with performance as a priority, and a small team.

Slack is simply atrocious in these regards. Painfully slow, utterly greedy for memory. I often run it in Firefox rather than standalone to keep its memory footprint down. Whichever way I do it I regularly find it to have crept up over a gigabyte of memory, on my single workspace.

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#279
post #110

Earlier quoted context omitted.

> no matter what OS you're on the desktop client is probably crappier than loading up the webpage I don't see how it could ever be worse than the webpage. And it gives you nice perks like notification badge integration, which for me personally is essential.

My web browser has windows and tabs and lets me open Slack in multiple places if I want to see more than one view of Slack at the same time. I usually don't need to do that, but when I do it's annoying that the desktop client prevents it. It's fine that my phone doesn't let me open two text conversations at once since that's all the space it has, but on a computer with a 24+ inch screen and multiple virtual desktop s…

For reference - the saddest little File menu https://i.imgur.com/YPoCmbR.png

Re: When a rewrite isn’t: rebuilding Slack on the desktop

#280

Earlier quoted context omitted.

You could do a rewrite that takes into account the bad old database schema, but doesn't repeat the wrong code design choices based on it. Then, when that's ready and stable and working with the existing schema, it's way easier to do a refactor and adapt to the new schema too.

"Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious. " -- Fred Brooks, The Mythical Man-Month Attempting a design re-write without changing the data structures will just result in the same design. And you can't change the data design without then having to change the code to match.

Exactly. If I'm not refactoring the underlying data structures....the refactoring isn't a very interesting/difficult one at all
Post reply on HN