Live data from Hacker News

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

medium.com

241–250 of 408 posts

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

#241
post #64

Earlier quoted context omitted.

interesting - they mention: "Slack connectivity is now available for testing. It's still pretty rough and missing a lot of features." any further insights here? could just try it myself, but slack is our key communication so getting more input would be great

can't comment on the original comment you made here https://news.ycombinator.com/item?id=20500181 because it's now flagged, so commenting here to state: There is a deafening irony in deplatforming a post arguing against deplatforming as a valid tactic. I hope it is not lost on the HN mods. ;)

Bringing ideological battle into completely unrelated threads is definitely not ok. Please don't do this again. We want less ideological battle on HN, not more.

https://news.ycombinator.com/newsguidelines.html

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

#242
I've noticed that the browser version of slack has been crashing increasingly frequently in recent weeks, I wonder if this is because of their "Run the entire old + new systems in parallel" approach? Got the "modern-only" update today and it seems much more stable!

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

#243
post #8

I wonder if they increased their efforts after seeing VS Code (also a complex Electron app) run fast and memory-efficient. Before VS Code everyone just accepted Electron's memory bloat, maybe slack even had plans to go fully native b/c no one thought it could be done properly.

> memory-efficient. Not how I'd describe a text editor that consumes 700MB+ of RAM at any given time.

Yes, because vs code is just a mere text editor.

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

#244

" Conventional wisdom holds that you should never rewrite your code from scratch, and that’s good advice. " Speaking as someone who has done a fair number of rewrites as well as watching rewrites fail, conventional wisdom is somewhat wrong. 1. Do a rewrite. Don't try to add features, just replace the existing functionality. Avoid a moving target. 2. Rewrite the same project. Don't redesign the database schema at the…

> Don't redesign the database schema at the same time you are rewriting. Chances are, that's the problem though. You have to re-write because your design is bad enough that it's necessary. The only time you'd re-write without changing the design is when changing languages or platforms.

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.

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

#245

Earlier quoted context omitted.

> Any cocoa app use that much of memory. What gives you that idea? Lots of apps have cruft, but that's nothing to do with Cocoa. A "Hello, world!" in Cocoa uses around 13 MB, and the application bundle weighs in at 79 kB. The fact that Electron uses a bare minimum of over 100 MB just to get an application running is a source of some understandable consternation.

His point is, actually, quite valid. By the time you stop and rebuild all the image caching/media pieces, you'll end up with a hefty amount of memory usage too - Telegram (not the Qt one, the Cocoa one) will regularly climb up to 200ish MB if I have a media-heavy chat going. People have skewed ideas of what's doable in memory constraints in 2019 for the feature sets that customers tend to expect.

You're comparing absolute minimum of slack with a very heavily used Telegram instance. This is, given the similarity of the apps, not fair.

Compare a "media-heavy" slack with that Telegram, or compare with Telegram minimum.

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

#246

" Conventional wisdom holds that you should never rewrite your code from scratch, and that’s good advice. " Speaking as someone who has done a fair number of rewrites as well as watching rewrites fail, conventional wisdom is somewhat wrong. 1. Do a rewrite. Don't try to add features, just replace the existing functionality. Avoid a moving target. 2. Rewrite the same project. Don't redesign the database schema at the…

Jesus NO at no.2

Rewrites are ALL about the schema.

Look, over time, your initial requirements will change. The initial schema will 100% not be what is ideal.

On a long enough time scale EVERYTHING becomes many to many.

I've found any rewrite of software without restructuring the schema has always been a waste of time.

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

#247
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.

Aside from the obvious issue that a ton of devices don’t have user upgradable RAM, are we really this comfortable with feeding constant consumerist abandonment of old devices through our own sheer laziness as developers? “It only uses 8% of 8GB of RAM. If that’s an issue consumers can buy more RAM or throw away their devices and buy new ones” is soon phrased as “It only uses 8% of 16GB of RAM. If that’s an issue cons…

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?

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

#248
post #99
post #12

Earlier quoted context omitted.

I'd rather not send my keystrokes to two companies at the same time. Not sure they changed that but this is always at the back of my mind when I see someone use Grammarly via the browser extension: https://techbeacon.com/security/grammarly-leaks-everything-y...

Excellent point :/ Is there a security-conscious Grammarly alternative?

I use their macOS application instead, and make sure not to type anything sensitive. Not as easy as using their browser extension, but it is safer.

Been trying Language Tool as well: https://languagetool.org/

Not nearly as good as Grammarly, though, but it works with more languages and even has a plugin for vim.

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

#249

Earlier quoted context omitted.

> Don't redesign the database schema at the same time you are rewriting. Chances are, that's the problem though. You have to re-write because your design is bad enough that it's necessary. The only time you'd re-write without changing the design is when changing languages or platforms.

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.

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

#250

I went to get the update on my Mac, and it shows a new version from July 8. The release notes say: "Slack is a little faster, thanks to a few small but important changes". Huh? This seems to be the right update (4.0.0), but on Slack's website the release notes [1] show the release date to be July 15. Is this the same version as I'd get via the Mac update? If so, what's with the press push today (Verge and others), if…

Slack's app is two components. The first is the desktop app itself. The second is the web part, which can be updated separately from the desktop app. The release notes for the app are talking specifically about the desktop app component.

The fact that the web part can be updated separately is why you can hit ⌘R and have new features appear in your workspace.

In my case, I quit and relaunched the (same version of the) desktop app and suddenly my sidebar looked different and I had a popup telling me that Slack was now faster.

Post reply on HN