Live data from Hacker News

Building a Slack/Discord alternative with Tauri/Rust

linen.dev

211–220 of 253 posts

Re: Building a Slack/Discord alternative with Tauri/Rust

#211
post #86

I build and ship a production application using tauri and linux support is the most painful experience I had in a long time. They use WebKit GTK which is really not a good fondation IMO, its hard to test for all versions, its much slower than other browser, it has weird bugs. In general the idea of not shipping a browser bundle is nice, in practice it doesn't really work for a startup. It's just too much unrelated te…

I tried this same approach (embedded webview instead of e.g. electron -- https://github.com/rdaum/vstwebview) for something last year and I agree the biggest problem is Linux support, specifically WebKit GTK.

On Windows, and to a lesser degree on the Mac, this approach actually went pretty smoothly. But WebKit GTK introduces all sorts of problems -- having to tie into GTK's event loop even though you don't want it, dealing with distribution variances, event binding issues, etc.

I suspect the answer here for Tauri is that someone needs to expend the effort to come up with a good Rust crate bundling of Chromium or Gecko or etc that isn't tied into GTK. Yes, it would defeat the "just use the platform's webview instead of bundling" line, but really it would only be a concern for Linux.

Re: Building a Slack/Discord alternative with Tauri/Rust

#212
post #115

Earlier quoted context omitted.

I think using Electron is excusable if you are a startup, like you said your time is limited. It's much less acceptable if you are Slack and still ship a slow bloated Electron app 10 years in.

What exactly makes Electron better for speed than say popular cross-platform GUI library X?

Well, s/Electron/WebUI generally, the conclusion that I came to last year was beyond Qt there really isn't a decent cross platform UI toolkit out there that really handles all the nitty gritty details like accessibility, proper GPU acceleration, etc. And Qt comes with its own normative lifestyle assumptions. And there is this huge community of HTML/JS/TypeScript developers and a pile of UI frameworks for them.

So if you're looking to build a cross platform desktop application, you want to also be able to service it on web, and you want to be able to hire beyond the limited Qt/C++ talent pool, it just makes sense.

Re: Building a Slack/Discord alternative with Tauri/Rust

#213

Earlier quoted context omitted.

> That might be slimmer than electron, but it’s still ridiculous given what it’s doing. Then I think your beef is with the class of apps, not Tauri or Rust. > Tauri still issues about 25000 syscalls at startup and needs about 300mb of ram for a “hello world” app How many syscalls and how much memory does your web browser require on startup? I'm not the biggest fan of JS apps, Electron, etc., but it's simply ridiculou…

> 1) in the form of code, 2) in a language everyone can learn 3) that runs on everything. The hello world for cross-platform Egui also written in Rust is a 19MB binary and uses 89MB of RAM.

[deleted]

Re: Building a Slack/Discord alternative with Tauri/Rust

#214

Earlier quoted context omitted.

Apple charges $200 for 8GB additional RAM. So the cost of 600MB of Apple RAM in $15. That's the cost of 1 month of a subscription to Slack. You're likely to use your laptop for ~4years = 50months, so the RAM cost of Slack is around 2% of overall Slack cost, even on Apple hardware. Users pay 2% more to get more RAM, Slack developers have 200% productivity thanks to not having to deal with low-level optimization crap,…

No, the cost of 600MB of RAM is $200. You just end up having bonus to waste on more electron apps. This whole "this is how the world works" bullshit is post-hoc rationalisation done by wealthy idiots trying to justify their purchase by saying "it's just 5 cents a day if you consider it'll last ten years". This is bullshit and only applies if the purchase you're making is insignificant to you. So, congrats, $200 is in…

Look, I'm not even stating an opinion here, I'm just stating facts.

Clearly, companies and developers are behaving in a way you don't like. You seem to believe that billion dollar companies are just stupid, that all developers are idiots.

I'm explaining to you the correct way to explain this behavior, an explanation that does not assume that a majority of successful companies and people are stupid, but that instead relies on rational arguments.

Of course I'd love it if there was a perfect way to develop software once without micromanaging memory, run it on web, desktop, mobile and have it be super performant at the same time. It just does not exist as of today, companies and people take rational decisions based on this. It is how it is, stop raging, accept it or build something better.

Re: Building a Slack/Discord alternative with Tauri/Rust

#215

Earlier quoted context omitted.

> That might be slimmer than electron, but it’s still ridiculous given what it’s doing. Then I think your beef is with the class of apps, not Tauri or Rust. > Tauri still issues about 25000 syscalls at startup and needs about 300mb of ram for a “hello world” app How many syscalls and how much memory does your web browser require on startup? I'm not the biggest fan of JS apps, Electron, etc., but it's simply ridiculou…

> Then I think your beef is with the class of apps, not Tauri or Rust. Are you saying that "WebGUI" is the primary category you'd place this app in? For end-users, the category is "chat apps". I grant the point, though, that these days there may not be any difference between the two. > It's become chic to yell about the good old days when it didn't take your editor a few seconds to startup, and I agree, but I think t…

This response is kinda all over the map. My point was simply -- if you don't get it, or want to moan about it, then I think you need to at least discuss the alternatives. If you can't, then it might be an indication that these apps are solving a problem in a domain you perhaps don't fully understand.

Now -- does this particular app solve this particular problem better than Slack? That's a fair Q, but, again, far afield from my point.

I have a real problem with this abstract beefing with other peoples' products and tech choices, that takes place in land that without alternatives. Show me the code for cross platform GUI development that doesn't look something like this. Explain how it's better than this, and how we should all be using it, instead of this. Until then, these criticism ring hollow to me.

Re: Building a Slack/Discord alternative with Tauri/Rust

#216

Earlier quoted context omitted.

I'd like to be explained why MS teams electron app is so different to the web version then.

Also, the web version works better than the electron app (for me, ymmv).

Can't speak about other OSes but that is the case for me on linux.

And I hace seen quite a few people on windows who literally has to reboot because teams app was working erratically or was freezing and no amount of stopping/restarting the app would help.

Re: Building a Slack/Discord alternative with Tauri/Rust

#217
post #81

Earlier quoted context omitted.

> why not going for a JVM-based technology? Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Qt and other frameworks work pretty well (with their own flaws) but I'd simply never even consider the JVM as a viable option for desktop software. The last JVM app I installed was probably Minecraft in 2012.

> Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Does anyone actually build new desktop software for mainstream consumers these days? JVM UI is "good enough", I've seen it used for businessey tools where the point is the functionality rather than the polish (including hobby tools). Honestly it may well be the…

I've got Notion, Spotify, the app for my insta360, Slack, linear, Final Cut, and VS Code open right now. As best as I can tell, half are Electron and zero are JVM.

Re: Building a Slack/Discord alternative with Tauri/Rust

#218

Is it just me or do others find the Electron bashing a little over the top as well? I mean VS Code, Discord, Slack and Obsidian are all in very widespread use and work perfectly fine for me. Are there alternatives to Electron that require less resources? Tauri seems to be proof that there are. But I think there is real value in large communities and backing. Electron seems to work perfectly fine to me for everyday us…

Electron is ok. Not the best, but not as bad as some people claim it is, though it varies app to app. I feel the same way about React Native.

Re: Building a Slack/Discord alternative with Tauri/Rust

#219
post #77

Earlier quoted context omitted.

> why not going for a JVM-based technology? Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Qt and other frameworks work pretty well (with their own flaws) but I'd simply never even consider the JVM as a viable option for desktop software. The last JVM app I installed was probably Minecraft in 2012.

Yes we have 15k users

I'm sorry to say that you're not a mainstream consumer app with only 15k users

Re: Building a Slack/Discord alternative with Tauri/Rust

#220
post #123
post #115

Earlier quoted context omitted.

I think using Electron is excusable if you are a startup, like you said your time is limited. It's much less acceptable if you are Slack and still ship a slow bloated Electron app 10 years in.

The truth us that once you have shipped Electron, there's no way back, the cost of switching is too high. This is not specific to Electron, it's a similar effect with every core technology, all the way to COBOL.

This right here. Something monumental would have to happen for senior leadership to green light a rewrite, because that’s a massive project that will bring in no additional revenue.
Post reply on HN