Live data from Hacker News

Our Quest for Faster Boot Times and Offline Support

slack.engineering

51–57 of 57 posts

Re: Our Quest for Faster Boot Times and Offline Support

#51

Earlier quoted context omitted.

How far will people go to avoid learning C++? Trust me, C++ isn't that scary.

Getting off topic, but what resources do you recommend for learning C++. It seems that half the resources I find are either designed for people completely new to programming (I know basic programming construct, along with OOP) or don't bother teaching stuff like the stl and all these different pointer types

My learning experience was through first understanding how memory and everything works in the C language. To me C++ is not the place to learn programming, it's more like a tool to take some syntax/idea from another more specialized language and then develop an underlying implementation that makes the similar syntax to compile into the specific thing I imagine in C.

It's important to take into account the dates when the learning materials were published. New features change the way how the same thing is done (while keeping the old way still compiling and working). Specifically about the STL there are old books from Meyers. To not get lost in time there is the "C++ Standards Support in GCC" site of the GCC compiler which enumerates all the new features that were added during the post-2011 accelerated development period. The modern C++ has seen no books so it's may be useful to just watch some talks by people who develop the language, standard library, compilers or who have experience in using it: Sutter, Lavavej, Stroustrup, Alexandrescu, Carruth‏, Hinnant, Vandevoorde, Niebler for example.

Re: Our Quest for Faster Boot Times and Offline Support

#52

I would like to debunk some myths around electron (chromium performance) vs "native" performance. If we talk about desktop, native means everything and nothing. Originally native means the GUI(s) that are shipped by default on an OS. There are also cross platforms GUI(s) like QT or GTK, they're not native and native is not an intrinsic quality per se it's a limitation (not being cross platform) and one could say it i…

I don't buy it. Slack is, supposedly, a product for professionals (I think the non-professional lunch was eaten by Discord already). Professionals communicating at work would benefit from RAM and CPU being left alone much more than from animations and other fluff.

Re: Our Quest for Faster Boot Times and Offline Support

#53
post #33

> However, a typical Slack customer may boot just once each morning and could find themselves perpetually a full day’s worth of releases behind (we release new code multiple times a day). > […] > We still want users on the latest possible version so they receive the most up-to-date bug fixes, performance improvements, and feature roll outs. Soon after we released the new client, we added registration on a jittered in…

Multiple releases a day? How is that reasonable?

Some companies have multiple releases per /minute/. They have likely invested heavily in a very comprehensive CICD system.

Re: Our Quest for Faster Boot Times and Offline Support

#54

Slack truly amazes me. Here is a company that's entire reason for existence is to provide a great chat experience. And yet they can't be bothered to build native apps. At least a dozen times a day Slack will freeze for at least 15s on my 2018 MacBook Pro. And this is with the current and beta versions. Unacceptable.

I use Slack in a web browser. I have never had any of the issues I've seen others complain about.

Re: Our Quest for Faster Boot Times and Offline Support

#55
post #39

Earlier quoted context omitted.

It seems to me that the reason this architecture is needed is because the original choice of technology necessitates it. I mean, it's not that a C++ application wouldn't need a rearchitecting for startup performance, but it would likely not be needed for an application as simple as Slack.

I’m curious: why would you consider Slack to be “simple”? I see Slack as an incredibly full-featured app. As always, many people might not use all the features, but that doesn't mean that nobody does…

Because very very little happens in the client itself. Basically any button that does something is just an api call out to their servers and an update to the view. You can see this yourself when you're working on a higher-latency network connection -- damn near every click gets you a spinner or a pause of some sort before things happen.

Re: Our Quest for Faster Boot Times and Offline Support

#56
post #19

Slack truly amazes me. Here is a company that's entire reason for existence is to provide a great chat experience. And yet they can't be bothered to build native apps. At least a dozen times a day Slack will freeze for at least 15s on my 2018 MacBook Pro. And this is with the current and beta versions. Unacceptable.

Supporting 3 platforms (Linux, Mac and Windows) basically means triple the development effort. Off course slack would love to have native apps for all platforms, but apparently it's just not cost effective. 90% of the users probably don't even know what electron is, and even for those that do, it's probably safe to say that the performance benefits of a native application don't outweigh the the negatives of using som…

> Supporting 3 platforms (Linux, Mac and Windows) basically means triple the development effort

Only if you're completely clueless.

Post reply on HN