Hacker News new | comments | show | ask | jobs | submit login

What the hell is taking up all that RAM? Slack is using over 800MB of RAM on my computer right now, and it's completely idle. I've got a C# process on my computer right now handling thousands of messages per second and consuming 1/20th the RAM. If you rebuild Slack in Xamarin you'd probably drop your RAM consumption to under 50MB, just a guess. JS fiends are gonna tell me C# ain't JS, and I agree. TypeScript ain't JS either, and it's a hell of a lot closer to C# than it is JS.

I'm a big JS guy, believe me, but I wouldn't call a chat app using "only" 800MB of RAM a "win." Sorry to the guys who worked hard on this.




It doesn't help that the Slack app is running in dev and not production mode - https://news.ycombinator.com/item?id=14899482


Slack's response in the tweets indicates that they are not using the dev build but that the info is being reported incorrectly in the browser.


Slack is using 282 MB on my system currently [0]. I am only connected to two servers though. I don't consider 282 MB to be awful although it is a lot more than Discord which is only using 100 MB while connected to six servers.

[0]https://i.imgur.com/KiPpaAZ.png


Just pulled up Activity Monitor - Slack + helpers are using over 1 GB while at rest.


Not sure if it's because of the amount of groups I've added but I'm using ~1.8 GB compressed on my MBP.


and that's exactly what the new version is perhaps going to solve as per the article with regard to inactive groups being unloaded to a minimal version which deals with only notifications.


TypeScript transpiles into some target JS version (ES5, ES6, ES2016, ES.Next). It is a different language but it gets executed as JS.


I think, that he was trying to say, Typescript feels like C#, so why not use the more performant option, if you use something similar but slower anyway.


I don't know if TypeScript is the culprit here. Just look what Microsoft pulls off with VSCode.


I didn't look into the JS TypeScript compiles to, but I saw some output from Reason/OCaml and it looked much more streamlined for performance than what I would write in JavaScript myself. Much more use of integers than strings etc.

So I could imagine that compile-to-javascript languages could get you much faster apps than traditional JS.


How many platforms does C# run on, with runtimes available under which licenses, again?

EDIT: Not defending Slack's choice of JS, or the consequences of that choice on its memory footprint, CPU utilization, or excess consumption of my battery in any way, but it's not purely a matter of "which one is the most efficient/performant/whatever?".


.NET Framework | Proprietary | Windows 98 or later

.NET Micro Framework | Apache 2.0 | Win+Bare Metal

.NET Core | MIT License | Win+macOS+Linux(x64+armhf)

Xamarin | Proprietary | Android, iOS, and Windows

mono | MIT License | Linux Mac OS X, iOS, tvOS, watchOS Sun Solaris BSD - OpenBSD, FreeBSD, NetBSD Microsoft Windows Nintendo Wii Sony PlayStation 3 Sony PlayStation 4

Of course "having a runtime" is not the same thing as "having a good way to write cross-platform applications".


Thank you.

Are those runtimes all bytecode compatible? Or is that another layer of developer cognitive burden that the more efficient/performant/whatever choice entails, atop the whole "having a good way to write cross-platform applications" tangle?


Nope but few (if any) platforms will accommodate such a demand. Xamarin will produce different bytecode from mono, for example.


> Nope but few (if any) platforms will accommodate such a demand.

JavaScript does though, and it even doesn't need bytecode.


Maybe I'm missing something but doesn't TS compile to JS?


Why slack desktop use electron? Slack mobile app using xamarin. Why they not porting from mobile app to desktop? U must learn electron, and also not running on native


Because QA, design, and dev effort. You have to make a web app anyways, so it makes sense to align desktop and web.


Even if it was done in Xamarin, you'd still need some kind of web client / browser to fetch and render the actual slack workspaces


Why use web at all? IRC clients have been made with native UIs since the 90s.


Harder to work with than CSS. Harder to align look of web and desktop.


> Harder to align look of web and desktop

This is what I don't want, I want it to look like every other desktop app, I want to be able to set the theme of my OS and have every app adopt it, I don't want every piece of software thinking it's special and looking different.

> Harder to work with than CSS.

What native technologies have you used? Many are easier than css+html and look native by default.


It will happen when companies stop being rewarded for branding, which is to say never.


> Harder to work with than CSS.

Harder for a web developer for the first two weeks. UI builders are more suitable for making app layouts than CSS.

> Harder to align look of web and desktop.

Thousands of mobile apps do it without much trouble.


Many mobile apps do rely on web views. Think about it, it's already difficult to make Android and iOS apps look similar. You need devs for both platforms. Teams are already squeezed supporting web (4 browsers with their own quirks), mobile web (screen size matters), mobile native (android and iOS) without also having to spread their talent thinner across completely native desktop experiences in Mac, Windows, and Linux. It's too bad Java never did live up to that write once, run anywhere promise...but that's the world we live in.


But we are talking about Slack and they can get this talent. New Skype for macOS is also made with Electron despite Microsoft having a ton of resources and even the old native Skype client for Mac (v7.x and earlier).

Meanwhile, Doist is a smaller company but they made Twist[0] clients native because they care about their customers.

[0]: https://twistapp.com


Java did. It was just butt ugly


I mean I’m not recommending it for production, but wasm is right around the corner, perhaps C# Xamarin on the web is closer than we think.


I understand that 800MB for a chat client is a lot, but don't devs have lots of RAM to spare? I run about 20 apps at any given time + background process which I haven't counted, and I never run out of RAM (8GB).

It's a problem, but is it an actual problem..?


Yes it is. My entire visual studio uses half the memory of slack


Right.

But how much do you have left? Is RAM in computers to sit there, or to be used?

I get it, but all the fuss seems exaggerated to me.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: