jFriedensreich 7 hours ago

I am at the opposite extreme. We should ditch electron and use browsers good enough integrated they can run all the apps with native feel and reusing the same engine (not a lacklustre OS webview but a complete one) This solves the memory overhead, solves unpatched or misconfigured chromium in each electron app as well as portability and reusing web dev skills. Also this would allow permissions and security to be managed by a layer that can focus on that and I don't have to worry about what a native app can do. (OS permissions and sandboxing are just not made for vibecoded infinite software and likely never will catch up) All the performance and other arguments are just not true, a well build webapp is often more performant than a native app especially for long scroll lists not even to mention accessibilty, extensions and more. I will never trust discord or Spotify to run something natively on my machine and so should no one else.

andai 6 hours ago

I just run discord in the browser.

The native one reads the titles of open windows on your desktop, and God knows what else.

(Well, I don't use discord at all anymore, but I very intentionally never used the desktop app.)

jlund-molfese 27 minutes ago

It’s gotta be to enable screen sharing, so the use can see the title of windows within the app, right? Although the OS should sandbox that away

m00dy 6 hours ago

Not sure who's still using electron...Rust + Tauri is pretty much standard these days.

resonious 6 hours ago

I wish I could agree but Tauri performance is insanely bad on Linux.

I think it'll be fixed soon but it drives me nuts.

Flutter is under appreciated for desktop.

m00dy 6 hours ago

what metrics drive you nuts ?

pas 5 hours ago

Dioxus has many renderers and also cross-platform.

https://github.com/DioxusLabs/dioxus#experimental-native-ren...

Blitz itself is a great experiment in debloating.

see also https://github.com/pathscale/izumo

ezst 3 hours ago

How's that different? You are still shipping a web browser and rendering through the inefficiency of the DOM event/rendering model. Sure it helps that the business logic is written in a native language, but modern, JIT-ed JS isn't a sloth either, and I don't think that's what people have gripes with and what causes abnormally large runtimes.

m00dy 3 hours ago

there's a lot of difference, please just look it up in any AI. Essentially, you do not ship a browser in Tauri.

arka2147483647 5 hours ago

The security boundary here is difficult, if you intend to integrate with native workflows.

Also difficult to manage fake websites duplicating the look and feel. Scamming people into giving access or passwords.

A native app which is installed once from a good source is more secure, i feel.

tcfhgj 5 hours ago

> All the performance and other arguments are just not true, a well build webapp is often more performant than a native app especially for long scroll lists not even to mention accessibilty, extensions and more.

A well built web app will never be more performance than a well built native app. It's just inherent due to the JavaScript abstraction.

broken-kebab 4 hours ago

Never? We already had this discussion about JVM, and we know for a fact that it's possible for JIT to achieve better performance with that damned bytecode compared to natively compiled equivalent.

redox99 4 hours ago

It would be extraordinary to see a real world rust program use more memory than its JVM equivalent.

broken-kebab 3 hours ago

Let's not move the goalposts, the word in question is "performant".

Though even with memory it's not as clear as you assume in the context (which is about browser-based apps). Singular C/Zig/Rust program will surely be more economical than a singular in-browser app due to browser itself having a huge footprint. But what if said user has that browser open all the time anyway as probably most users do? What if there are more than one GUI-rich app, and with browser they share most of the overhead? PLs which allow low-level optimizations offer great opportunities, no arguing. But never say "never" until you know what exact problem yiu have to deal with.

redox99 3 hours ago

> Let's not move the goalposts, the word in question is "performant".

Even though the word performance was used by a parent comment, I think they used it as an umbrella term. The article and most of the talk around rust discord is primarily about the memory. And JVM is probably the worst runtime you could pick if you care about memory usage.

broken-kebab an hour ago

Assuming this would make this comment less reasonable though. Optimization for memory usage is distinct from optimization for performance in our craft. And it's pretty basic thing.

tcfhgj 3 hours ago

You cannot separate performance from memory usage. Usually less memory usage for apps comes at the cost of performance and vice versa.

And more memory usage can slow down the whole system, because the system may need to swap and compress memory.

broken-kebab an hour ago

To be direct: this is utter nonsence. Memory usage and performance are different targets of optimization, which often at odds with each other.

tetromino_ 2 hours ago

I have seen it happen once in an LLM rewrite from java to rust. The modern JVM gc is actually pretty good.

tcfhgj 3 hours ago

Yes never

mycall 2 hours ago

So fix the JavaScript abstraction. I've had more success with dart-wasm lately so I'm waiting for someone to finish the standards.

StilesCrisis 32 minutes ago

It's true that JavaScript costs, but the text renderer in Chrome is just wildly optimized and definitely can outperform an OS list view. An article here on HN covered it a while back.

jFriedensreich 5 minutes ago

The question is at what cost and at that level of both being optimal does it even matter to the user or is indistinguishable. There will always be 1% native apps that make sense, i'm talking about 99% of applications.

hobo123 5 hours ago

In a way yes, but things like keyboard shortcut, file pickers and similar are major convenience issues and not as easy if the only thing that runs on the metal is a server process, and the UI is limited to the browser. A webview UI like Tauri might solve that (I'm not familiar with it, so I can't say if it does).

I think that's also the main reason software like VS Code is electron based and not browser based.

eptcyka 5 hours ago

> well build webapp is often more performant than a native app especially for long scroll lists

A well built anything is better than most software. I would argue that a well built rust app will probably a higher quality piece of software than typescript slop produced by Microsoft.

prmph 4 hours ago

I'm with you.

I created my own declarative react-like UI library that is small, efficient, and does things just the way I want. I have absolutely no desire to go back to the days where for every platform I want to develop for, I need to learn whole new UI paradigm, with all its quirks and gaps and inefficiencies.

Past a certain age, having to do this every year or two get old fast. And, it is not necessary for good performance. The only holding back good performance and capabilities from web apps are the platform vendors.

skybrian 35 minutes ago

Is this library open source? I’m curious about how it works.

mulhoon 3 hours ago

I agree with this. And even further, I think we wasted a decade or so, forcing web and native apart - especially on mobile. Partly due to Apple building a native moat when we could have put resources into building a more performant and powerful internet.

neya 3 hours ago

You can optimize all you want, but if your foundation is a pack of cards, you're not going very far. JavaScript is not a solid foundation to build anything on. It's a language that should have been extinct long ago along with internet explorer. But, people kept trying to save it - adding abstraction on top of abstraction, even languages on top of it (coffeescript, typescript) just to get it to work at the baseline of a decent language. It's the only language that is forced upon us. If browsers gave us options to use other languages, it would and should've been long been dead.

gloosx 2 hours ago

If javascript is not a solid foundation to build anything on, then how come everything is built on top of it? It's the language powering the whole web, and people went really really far with it. Besides that, almost every major programming language can now run in the browser via webassemly, which solves problems in the areas where javascript is lacking raw performace.

Rumple22Stilk 2 hours ago

Because you have no choice?

pdimitar 2 hours ago

Your parent comment already answered that.

You're mistaking "JS is forced on people and they have no choice but to make it work" with "it's everywhere so it must be good".

neya an hour ago

> how come everything is built on top of it

Can you share something else they could've built everything else on top of, instead? Yeah, that's what I thought.

Do you really think a normal junior dev is going to be/should be writing web assembly code to build a basic portfolio website?

katbyte an hour ago

> how come everything is built on top of it

Everything is not built on top of it.

> It's the language powering the whole web

It’s also not powering the whole web, just a significant part of the client frontend inside browsers.

tw04 an hour ago

What? No, absolutely not. Did you not learn your lesson when google decided to actively try to kill ad blocking? Why on EARTH would I want all of my desktop apps at the mercy of google and chromium?

You can tell me until you're blue in the face that you also think these apps should be cross-browser but we all know that will never happen.

cheschire a day ago

I'm pretty sure this was known since the early days of Electron. It was even one of the chief complaints about VS Code when it was first launched.

Electron's value prop has always been about having one team producing one app that is supported on multiple platforms with minimal additional effort.

This article does nothing to address that.

RunSet a day ago

> Electron's value prop

"Now you can have the cross-platform compatibility of a single-page application just by bundling Chrome."

zdragnar a day ago

It's worth remembering that electron was first released back in 2016 (formerly atom shell fro 2013) so Internet Explorer was still very much a thing.

Not a great justification, but it made a bit more sense then.

72deluxe a day ago

That's like saying it would make sense to make Internet Explorer work on all platforms. It doesn't make sense.

The solution is to use user interface toolkits that are available on each platform. For example, wxWidgets or Qt or appropriate bindings to them if you can't be bothered to write UI code for each platform you're targeting.

toast0 20 hours ago

> That's like saying it would make sense to make Internet Explorer work on all platforms. It doesn't make sense.

Why not? Microsoft released IE for win16, win32, wince, macos system 7 through 9, macos X, Solaris, HP-UX. If it ran on all those platforms, Microsoft probably could have supported it on any platform that had the capability of running graphical web browsers.

wiseowise 7 hours ago

Maybe because wxWidgets is garbage DX and UX wise, and Qt isn’t free and doesn’t allow you to reuse web code? One of the value prop of electron is to reuse your web codebase.

72deluxe 3 hours ago

How is wxwidgets garbage DX and UX wise? You can literally read the source code and can build the library in 5 minutes, and the UX is native user interface elements of the given platform.

I don't see how reusing web code is an advantage. Web code is for the web. We are talking about a native platform (Windows 11) which has a mature API platform stretching back decades. Why would you need to make it "web"?

tekla a day ago

The problem is that it made everyone's life worse.

johnh-hn a day ago

Not mine. I loathe Electron like many people. But, as someone who is legally blind and has very limited vision, being able to have custom UI zoom levels, per application, has made my life much easier.

For a long time, and mostly out of frustration, I wanted to build my own stack of software around my vision. But the mammoth amount of effort it would require meant I never went through with it.

freecodeio a day ago

nice point, people like to shit on the web but it has one of the biggest accessibility features that most of the gui frameworks would just leave them as feature suggestions for years

hajile a day ago

I'd note that as stuff like A11y gets added into something like Discord, we'll see the app slowly bloat up to compensate.

Google Chrome generally used around 25mb per tab in 2010. Today, that number is often 500mb or even 1gb.

Ygg2 a day ago

Would you really need 500mb for accessibility? Can't text to speech be outsourced to the OS or companion app?

masfuerte a day ago

And Windows apps had accessibility before computers had 25MB RAM in total. Accessibility is not the cause of bloat.

freecodeio a day ago

do any of these native GUI libraries provide just as rich accessibility experiences to disabled people?

TJSomething 19 hours ago

If we mean native as in OS-specific GUI APIs built-in to the operating system, then yes. All of the browsers are abstractions on top of that. If we mean cross-platform GUI libraries for Rust I think your choices are like Dioxus (a webview), Tauri (also a webview), Slint (draws its own widgets), and maybe Fltk (draws its own widgets) with extensions?

ethin 15 hours ago

Yes, yes they do. WXDragon for Rust, for example, provides quite good accessibility. And maybe accessibility would be better for frameworks like QT or DearImGUI if (1) people didn't act like the web was some paragon of accessibility (hint: it really, really isn't, not when websites misuse web APIs -- which happens quite frequently) and (2) UI framework developers didn't just make a UI framework that looked sexy but left accessibility on the floor.

What's oddly being ignored in this entire thread (so far, as of the time of writing) is that back in 2017-2018 Discord was an Electron app and was completely inaccessible. The web did not magically bring accessibility to the table -- we disabled people had to go yell at Discord to fix their shit, and even then it took them like 2-3 years, and even now Discord has some very very weird accessibility issues that will randomly crop up here and there.

afdbcreid 19 hours ago

The article implies that a11y will exist on launch and maybe already is.

And it doesn't require that huge amount of RAM, no. What requires the Chrome RAM is running JavaScript and do it fast, and a lot of extremely complicated features, most of which a single app will never use.

saagarjha 11 hours ago

This is mostly because websites have gotten heavier and we want them to run faster.

hobo123 4 hours ago

How much of that is due to chrome, and how much is because say Jira and YouTube are incredibly bloated?

pjmlp 19 hours ago

All the native APIs across major platforms have accessibility features, how do you think browsers implement theirs?

sitzkrieg 15 hours ago

i switched a cross platform application TO web stack for this reason. accessibility and screen reader usability is incredibly important and massively overlooked in many domains

GoblinSlayer 7 hours ago

Already done. Windows scales dialog resources according to font size, gtk has text only scaling.

johnh-hn 6 hours ago

The Windows settings scale resources for the OS, not per application. The more applications you use, the worse these settings become. If I'm unable to use an application's own features to modify the size of something in its UI, I have to fall back to the Windows settings. That leads to the following:

1. Use the make everything bigger/font size settings to change the size of what I currently can't see

2. Restart

3. Open every application I need, and go through every major feature in each of them to determine if I can still see things comfortably, while making sure no elements have exploded in size as this also leads to usability problems

4. If not, go to 1

I have to do this every time I install a new application, or one of them updates and changes their UI or decides to opt into the Windows accessibility settings. The latter one happened a few years ago with Firefox, and cost me a day to sort.

Invariably, it leads me to compromising on what I can and can't see.

Grombobulous a day ago

The electron hate train needs to pull in to the station and be retired. We can just admit that it was a good solution for the problems of its time just like JQuery. Electron was conceived over a decade ago and it was an imperfect solution, but there’s no denying that it was a solution.

Election predates WebAssembly by 5 years and hit the scene only one year after Rust was first created.

And just like JQuery, its time is coming to a close as better frameworks are available now that weren’t available back then.

s3p a day ago

I never thought election was a good solution for the problems of its time. Just call it a web app and don't lie to people releasing something "native" for them to download.

Kuraj a day ago

Noone is claiming that, though.

Discord isn't packaged as an Electron app simply because it pretends to be native, but because it has an entire system integration layer that isn't available in the web version.

Grombobulous a day ago

Discord actually launched as a web app, and then moved to adding a desktop app, which has quite obviously become far more popular than visiting discordapp.com and using it in the browser.

Why do you think that is?

I'll give you a hint: if I close my web browser, how do I get a notification that I got a new message? Make sure you also pretend it's 2015 (launch year of Discord) and that I might be using Firefox, Safari, or Edge.

The funny part about this complaint is that you can literally just use the web app if you hate the desktop Electron app so much. That's one of the main benefits of Electron!

bigstrat2003 20 hours ago

> We can just admit that it was a good solution for the problems of its time just like JQuery.

We would be lying if we did that. Electron was never, ever a good solution. It was something solely used by devs who prioritized their own ease of work over the actual user experience, i.e. bad devs.

kristiandupont 20 hours ago

Do you have an employer?

rpdillon 18 hours ago

Its a straight-up business decision, generally made by MBAs and with advice from engineers and executed by the engineers. That's because it changes the shape of the org when you need a separate team for each platform, so any org where the benefit of doing so doesn't get articulated sufficiently, will end up with fewer devs covering more platforms.

Acting like this is a decision the ICs make is disconnected from why electron is so prevalent.

Grombobulous 18 hours ago

If it’s so easy to provide a better user experience using something else besides Electron then logically you should be able to point to chat apps that won over more user adoption than Slack and Discord.

Someone would have been able to disrupt that market by making a much better chat app since Elecron is so bad for user experience.

Brian_K_White 20 hours ago

It was never a good solution and there is no reason to ever stop calling a turd a turd.

afdbcreid 19 hours ago

We could, if people would stop doing it today.

hackernud3s 18 hours ago

I made a bunch of Electron apps in my time. I always tried to talk the client out of it. "Just make it a website" I would say. Still, there were times where it made sense.

bee_rider 18 hours ago

Electron was an ok solution to the problem they were looking at, “how do I waste as much compute as possible.” Unfortunately it had the side effect of drawing a bunch of stuff on the screen.

Luckily in the modern era we have invented language models, which allow us to expend vast resources on text generation instead.

pjmlp 7 hours ago

It was only a solution to Web developers that refused to learn anything else.

IshKebab a day ago

> The article does nothing to address that.

I dunno if you've been living under an enormous rock, but they used AI to make this.

Grombobulous a day ago

The article at least indirectly addresses that.

At the time Electron came out, there weren’t as many cross-platform UI frameworks available that they could have gone with.

You can see this with the comparison chart. GPUI effectively replaced Electron so the desktop app UI works across platforms. React Native is replaced with WebAssembly so that Rust can be the primary language across all platforms including mobile.

It seems like the new situation for Discord is rather elegant, and that none of this would have been available when it first came out.

AlienRobot a day ago

Why https://gpui.rs/ doesn't have a single screenshot of how it actually looks?

The first thing anyone would want to know when choosing a GUI framework is how it looks by default. Every major GUI toolkit has screenshots on their websites.

This happens so often it makes me wonder if people just don't know how to take a screenshot and put it in a webpage with <img>.

Grombobulous a day ago

Probably because it's not meant to be like Bootstrap.js where everyone's UI looks identical?

small_scombrus a day ago

Even still, some screenshots of here's something we made earlier are always nice to see what's possible

AlienRobot a day ago

Even imgui has screnshots.

thisismyanon2 8 hours ago

gpui is meant to be a fairly low level library. If you want screenshots check out zed, but be aware that for many use cases you'll have to roll your own widgets.

gpui-kit (formerly gpui-component) provides a richer set of widgets and a Javascript shell. Screenshots can be found here:

https://github.com/longbridge/gpui-kit/discussions/989

rstat1 17 hours ago

Click either of the 2 links at the top right of the page, and you get screenshots of GPUI apps.

jenadine a day ago

GPUI works well for Zed, but it's built for Zed's needs only. There is no official crates.io udates. Breaking changes land as Zed needs them, and outside PRs often get declined causing a mess of several forks.

sbarre 16 hours ago

Herdr's new native app uses GPUI for it's mod framework, so hopefully as more apps adopt it, a better community/package/release process builds around it.

braiamp 16 hours ago

GPUI/Zed devs are trying to contact discord to see what can be improved:

> Hi Stanislav, I'm one of the core maintainers for GPUI at Zed, if anyone at discord would like to talk to us about improvements to the framework or to upstream your customizations, please get in touch! My DMs should be open :)

https://twitter.com/radgendervibes/status/211810701651020193...

thiht 4 hours ago

Honestly GPUI feels like the closest thing we have to a working UI framework for Rust. That's probably because GPUI is not developed in a vacuum, it actually needs to work at Zed's scale because they ship a real product and GPUI needs to deliver.

I'm very excited to see GPUI extended for general purpose usages in the future.

pjmlp 20 hours ago

I love when folks complain about C++ in stuff like Qt, and then write C++ addons on Electron apps, to make them actually get an usable performance.

accurrent a day ago

A huge pain of desktop development is managing dependencies particularly if you are coming from C++/Native code. Imagine you wanted to make a simple app in the 2010s that accesses the webcam for instance: If you use chrome you got the full html5 runtime, whereas with other tools you'd need bespoke libraries which your end user may not have.

The only way to ship the same code between linux, macOS, and Windows would have been to either use something like Qt or the JVM back in the 2010s. The JVM desktop stuff was super ugly and Java itself had become notorious (also if you wanted anything remotely interesting like webcam/microphone or multimedia access you'd still have to ship dynamic libraries). Qt required special packaging skills to ship to the end user especially if third party libraries were involved. Electron killed that by bundling chrome (and chrome has a huge api surface).

Today, I would argue the package management situation for a language like rust is a lot different. You dont have to cobble different DLLs together, you can just statically compile dependencies and cargo/rust do a pretty good job of making sure it's bundled with your app. Other languages also now have similarly useful tools.

72deluxe a day ago

But then the C++ libraries you mentioned also had the ability to statically link into a binary, which means you could statically link the webcam access in, in your example. So I don't see the advantage you're arguing for?

cogman10 a day ago

It comes down to package distribution.

Chrome had already solved the hard problem of "how do we support webcams on linux, windows, and mac" and you as the dev just needed to use the Javascript webcam api. ( https://developer.mozilla.org/en-US/docs/Web/API/MediaDevice... )

In C++ land, you are ultimately going to either need to cook up your own webcam library or look for a 3rd party (which, in 2010, likely didn't exist) to provide it.

Today, there are a few easy to discover rust crates which provide cross platform webcam apis. But further, rust does cross platform better than C/C++ IMO. It's really easy to change how code is compiled based on the target. That was all well thought out because rust was supposed to be a language for browsers.

pjmlp 19 hours ago

Qt is easily obtainable via vcpkg or conan.

edoceo 19 hours ago

Was that true in 2012?

Krutonium 19 hours ago

Very yes.

pjmlp 19 hours ago

Depends, it was easily obtainable via OS package managers, and installers in 2016.

However that has been true since 2016, and here we are, 10 years later.

justincormack 18 hours ago

For Linux, but not for Windows and Mac

pjmlp 8 hours ago

I mentioned "and installers" for a reason, I know Qt since KDE exists.

bluGill 15 hours ago

Neither existed in 2012, so of course not. On the other hand, QT has always been really easy to download from QT. I don't remember who owned QT in 2012. They've changed hands a couple times over the years, but in 2012 I was downloading QT from whoever on them. QT was large, so you needed a decent sized computer to build it, but in 2012 this was not a big deal.

People get too hung up on package managers. When you're building your own proprietary you don't really need a package manager, you just need a central place to download the tarballs from. Or you could do a monorepo and just build everything locally - in 2012, that means you start your build before you leave Friday afternoon, and when you come back Monday, everything's built.

bluGill 15 hours ago

A cross platform webcam library isn't that hard to build at C++. I mean, it's tedious, and having to support multiple different operating systems makes it harder, so it certainly is going to cost a small pile of money, but this is not hard. The pile of money needed won't be all that large. Mind you, I prefer to use something that's off the shelf rather than writing my own, but it would not be hard to write my own.

The hard part of all webcam libraries is all the different webcams running all their different proprietary protocols.

MindSpunk 10 hours ago

Write the code or build the code? That's always the problem with C++ libraries.

It's not that difficult to write cross platform C++ code. Consuming the dependency is always painful. What build system does it use? What compilers does it support? How do you get the code? There is 0 standardization for these things.

C++ code isn't always that portable either. Old code in a new compiler is very likely to break on warnings, especially if the old code made the high quality decision to hard code -Werror in their build system.

From personal experience Rust as a package and ecosystem is far more portable than C++.

jpc0 10 hours ago

It is 2026 and regardless it has been quite a while that cmake fetch content had been usable.

The only reason why a cross platform well supported C++ package/module isn't available is because nobody has bothered to build it.

If it really is something that bugs you then be the one to do it, throw your clanker of choice at it and integrate it into a project you run in production.

"Chromium ahips with it" isn't a valid excuse these days, that is likely an hour or two away with a modern LLM, building and packaging electron is more work.

jasomill a day ago

Dynamic vs static linking is mostly a red herring for desktop GUI application development unless you want to integrate into something like Linux distro package managers, as dynamic libraries on Mac and Windows can be self-contained within the application bundle/directory with no disadvantage beyond marginally longer startup time, and you can do similar things with Flatpak and friends on Linux.

The real difference is that Rust provides a package repository with a unified build system that's as simple to use as NPM or NuGet.

vcpkg which is similar exists today, but it didn't in 2015 when Discord started, still isn't anywhere near as comprehensive as package repositories for languages where package management is part of the standard toolchain, and the underlying build systems are far messier under the hood.

It can also be helpful in development to use libraries built from source as part of the application's build process, at least as an easily-accessible option, which wasn't common practice in most C/C++ ecosystems historically where different libraries used different build systems and if you wanted to integrate them into something like a Visual Studio solution for easy reference to source code during development and debugging you were often on your own.

vrighter 13 hours ago

you can do that easily on linux too

hobo123 5 hours ago

IIRC Qt is LQPL, so if you linked it statically you'd have to license your code as LGPL too. Shipping Qt as a separate dll didn't trigger that issue.

cosmotic a day ago

Java desktop was only ugly if you chose for it to be. It was pretty minimal effort to get native look and feel. Nothing built in electron looks native. If we're accepting custom interface using electron, that was doable with Java too.

threetonesun 20 hours ago

JetBrains IDEs arguably look/behave better than VSCode as far as a native app goes. I wouldn't say either look great on MacOS but a truly "native feeling" Mac app is usually quite different than a Linux/Windows equivalent.

pjmlp 19 hours ago

Long time ago, Apple had a proper OS X Swing L&F, when you could do Cocoa in Java, and there was still some uncertainty if Objective-C would be embraced by Mac OS development community.

johnny22 13 hours ago

I much prefer vscode to intellij

NetMageSCW 17 hours ago

Why is it no one ever seems to do it then? I have never seen a Java app look or act native on Windows.

dingaling911 13 hours ago

Eclipse

sdthjbvuiiijbb 13 hours ago

I haven't used Eclipse in a decade, so maybe it's changed, but back then it was very much a Java UI, not a native feeling one.

dingaling911 13 hours ago

I remember the Java UI, but at some point they switched to a version of Swing that made it look more native, at least on Linux.

cowlevel 9 hours ago

Eclipse uses SWT which uses real native controls.

Of course Linux doesn't have native controls - I think it uses GTK on Linux.

cyberax 10 hours ago

It used SWT, which was a thin wrapper over native controls.

dingaling911 5 hours ago

Ahh yes that's right.

pacoverdi 8 hours ago

A Swing application looks ugly and not native by default, but the platform allows to plug a different look'n'feel. With small effort, you can make it look nice with something like flatlaf [1]. Pretty sure there are others, I haven't done Swing UI in a while.

[1] https://www.formdev.com/flatlaf/

hobo123 5 hours ago

They had native looking skins for Swing that still felt slightly off and behaved differently. Netbeans IDE looked nice, but it was weird in subtle ways.

pjmlp 20 hours ago

Usually it is hard for those coming from scripting languages.

Strangely enough we managed to write portable code across platforms during the last century, and there were more than only three major desktop OSes.

skydhash 17 hours ago

> Strangely enough we managed to write portable code across platforms during the last century,

Yep, that argument always seems strange too me. Do people fear that much to design their own interface and hook to each platform ecosystem? You look at something like the BSD which runs brought one single kernel concept and various subsystems across a variety of hardware. And somethine like libao[0], which provides a common interface to various sound system.

Whatever the app, if you care enough, you can abstract the core features away from the GUI and other various dependencies.

[0]: https://xiph.org/ao/

vivaldi_bt 16 hours ago

I never really understand this attitude. It isn't really hard it took one or two evenings to understand how native libraries work and you close this problem forever.

Barrin92 13 hours ago

>Qt required special packaging skills to ship to the end user especially if third party libraries were involved

How outrageous to demand that a software developer possesses the 'special skills' to ship a Qt application. It's not surprising that people think AI is killing programmers when this is the level the average 'programmer' has been operating at for 15+ years.

Imagine going to a chef and he tells you he can only warm up microwave lasagna because cooking the steak correctly requires special skills. The special skills are your job

hobo123 4 hours ago

Probably an economical thing. If you have a much higher effort with packaging and testing vs coding the app logic.

expedition32 4 hours ago

If developers don't want to be replaced by AI they need to bring something to the table because employment is not a charity.

saagarjha 11 hours ago

Discord ships plenty of native code, though. Actually most popular Electron apps do

ajross 18 hours ago

Exactly. This Discord Windows 11 rust app doesn't run on Mint or AOSP or an iPad and won't without extensive porting.

That can be done. It can be done well. It's not (or rather never has been) cheap or flexible or agile (in the market, not SWE sense). People love HTML/CSS/JS for very good reasons, and have been willing to accept the resulting tradeoffs.

Maybe that's changing now that you can vibe-port a lot of this stuff. We'll see.

NetMageSCW 17 hours ago

The article says they can use the Rust code with wasm as the iOS app and that includes iPad and Android. And Mint is just Linux so it should run fine, just like Zed.

dmix 13 hours ago

Using Rust/wasm for a mobile apps sounds crazier to me than using Electron on desktop. I'm not sure of the details there but the APIs/SDKs bringing consistency is one of the best parts of mobile. There's less of an argument for that on desktop which moves slower and is mouse/keyboard instead of complex set of touch workflows, paging, and notification schemes.

llm_nerd 17 hours ago

> This article does nothing to address that.

This has been addressed many times now, and the article doesn't really need to re-address it.

Coding LLMs make managing cross-platform native apps significantly easier than it was in the past. The cost-reward analysis, where Electron and simile apps made sense because then you don't need to have an iOS expert, a macOS expert, etc, and having a bloated monstrosity of an app is an acceptable compromise, is simply no longer true.

I know there is some subset of HN that still thinks CoPilot 2024 is the state of the art and will declare this a foolish assertion that good developers like them disbelieve, but this is what all of the industry is moving to.

peebeebee 8 hours ago

You know how much overhead testing 5 different apps still is?! (iOS, MacOS, Android, Windows, Linux)

GoblinSlayer 7 hours ago

Users will test.

NetMageSCW 17 hours ago

The article explains that the same Rust app runs on Windows, Linux and Mac just like the Zed editor where the GUI library originated, and with wasm, also runs on iOS and Android. What else do you need?

Pxtl 16 hours ago

Oh, does rust have a good native cross platform ui framework?

bluGill 15 hours ago

I'm not sure if a cross-platform UI framework is a good idea or not. I've been building with QT for 15 or 20 years now, and I'm still not sure if cross-platform framework is a better idea than just writing a different UI as a thin layer on top of your business logic for each platform.

Certainly, if you write a native UI for every platform, you're going to need a few more people because you have to have someone who understands each platform. However, with a little bit of work you can define some good interfaces to that UI and most of your needs are going to be things that are not the UI framework but they're logic that can be cross-platform.

What cross-platform frameworks give you more than the UI is all the other pieces you need. I've written a bunch of applications in Qt Core with no UI at all because it's so convenient to have those Qt abstractions.

m00dy 6 hours ago

I hardly see your points on why we shouldn't have cross platform UI.

>>you're going to need a few more people because you have to have someone who understands each platform.

a big no here.

Sankozi 7 hours ago

You don't need "native" part if you are moving from Electron app

ksec 15 hours ago

>It was even one of the chief complaints about VS Code when it was first launched.

That was absolutely not the case at all. At least not on HN or twitter. It was for Chief Complaints for Atom. When VS Code first launched everyone was suggesting how much faster it was compared to Atom. And how a properly tuned Electron Apps could be fast. And Microsoft promised it will get even faster that makes everyone excited.

The only few of us who were complaining was how could everyone judge this to be fast when we have Sublime. And that was even before Sublime had GPU rendering.

SideQuark 14 hours ago

Googling if it was a common complaint around launch time shows plenty of threads on it across all the usual sites at that time.

eddythompson80 13 hours ago

I think OP is both right, and there was people still complaining about it. Atom was seriously slow. Everyone said you couldn’t build a fast text editor that could compare to native ones. VS Code came and it was significantly faster. Atom was slow to the point of not being usable to some, while VS Code was perfectly usable. The people wanting vim or Sublime performance were still upset and wrote about it, but vscode was perfectly usable and fast enough for the majority of people. It was indeed held as an example of how to make a performant electron app. Still an electron app, but not absolute slog. Tbh, if you disable all extensions in vscode, it’s still fairly fast, and doesn’t even take that much memory. It’s not as usable without extensions though.

ThunderSizzle 11 hours ago

I compared NP++ to VS Code at the time. VS Code was nice to use, but it was slower. It was faster than Visual Studio, but that's because VS Code without extensions didn't have language support, etc like VS did.

I find it odd you see otherwise.

And VS 2026 is faster than VS Code these days, now that they spent time optimizing it.

load-bearing 9 hours ago

I'm fairly sure VS low performance and responsiveness is caused by their use of WPF for the UI. Never seen a single responsive application written in that toolkit, it's even worse than electron. Not surprised it hasn't taken off outside of enterprises.

It used to be fast before 2010, when they used MFC (or something very similar to it, I don't remember anymore), compiled to native code.

fy20 11 hours ago

I was using Vim at the time, so didn't get into those discussions. The thing that hurt me was Spotify. They had some other HTMLish desktop app before Electron that was just as bad for memory.

rendaw 10 hours ago

I think you may be right, but I think that actually enforces GP's point: if discussion was about how "a properly tuned electron could be fast", that implies an unstated general belief that electron is slow. In other words, since the time vs code was launched there was indeed a belief that electron was slow (compared to native apps).

cowlevel 10 hours ago

Actually I think "properly tuned" sounds like weasel words, a no true scotsman fallacy. "Oh electron is slow? Well, it is slow, but that's not real electron, see if you were doing things the right way it would be fast"

tancop 8 hours ago

It just means Electron has bad default settings, it's hard to optimize and you might need to move some parts into C++ if you want good performance. Really the same thing as Unreal Engine, there are absolutely fast games made with it but most are super resource heavy.

p_l 8 hours ago

It was not "bad default settings", like often with UE5, it was "MS did a superb job making VSCode not dog slow like Atom" and it took really lots of work

troupo 7 hours ago

It means that you need a trillion-dollar company spending millions of man-hours to optimize the performance, using every trick in the book, and inventing a few new ones to deliver one optimized Electron product

groovy2shoes an hour ago

Combine a properly tuned config with a sufficiently smart compiler, and Electron is blazing fast!

tcfhgj 5 hours ago

Even vs code is slow compared to a native app - noticable with large or many files; with search and replace in larger files (xx mb) it even crashes

herbst 7 hours ago

I definitely remember it being yet another slow editor many people complained about.

stuaxo 7 hours ago

Eh, including a whole browser has always been my complaint and I'm sure many others.

andai 6 hours ago

> Electron's value prop has always been about having one team producing one app that is supported on multiple platforms with minimal additional effort.

>This article does nothing to address that.

Article mentions they chose not to use windows native tech (WinUI), presumably for portability reasons. I have no idea how much work it would take to port the Rust client to other platforms, though. Maybe the same code already builds everywhere?

therealmarv an hour ago

I don't understand the hate on Electron. I think most people here never shipped cross plattform apps ever and even less maintained them across cross platform. It's a financial decision. Electron (in the age before AI) enabled to stand on the shoulders of giants to build a reliable product with one code-base among many OSes. Something which Java promised Electron really delivered for most end-user apps. Google poured billions into making the fundament of Electron fast and reliable and bugfree. And it enabled many Linux ports of apps which would have otherwise not happened.

Best example is vscode.

Are Electron apps more wasteful than native: sure. But I rather stand with Electron and that Windows, Mac and Linux is supported.

dijit 17 minutes ago

Sort of, you're right that it's zero sum.

But electron applications that are forced by the first party (IE; third party clients are explicitly forbidden and will be an EULA violation- possibly resulting in expulsion from the platform) is an issue.

We talk about a global RAM crisis now due to AI, but I don't even want to think about how much RAM is hoarded by Teams/Slack and Discord in aggregate- these are applications that are intended to be run in the background by everybody, so you're talking at least 2GiB per person because you can be pretty sure that people are running more than one of these.

1.5GiB * the number of people in work = what.. 1 petabyte of RAM? For chat.

LaurensBER a day ago

Electron is pretty awesome in that it allows a small team to build a decent GUI app using their existing web skillset but it also feels like it's time for something better at this point.

With the ram prices as crazy as they are. It's pretty frustrating to have to run multiple GB eating applications just to do some basic tasks (90% is read and write messages, in the case of Discord). I understand that other people might use the more advanced features (voice chat, etc) but these could be loaded on-demand.

It's a bit crazy to me that I can comfortable run an entire Linux stack (+ Podman, monitoring, alerting and multiple services) in 512 MB ram (with 40% free, just checked!). However my Windows PC needs 5.5GB just to show the desktop! Realistically it needs somewhere between 8GB and 16GB for some basic web browsing and even then it can feel slow if you have a few apps like Discord running in the background.

pasc1878 a day ago

Sorry can you show a decent GUI app in Electron compared with a native one.

You show this by all your other comments on memory. The reason apps take memory is Electron.

Plus I prefer apps that behave like OS native apps not the reduced GUI of web apps.

kelseyfrog a day ago

I volunteer as the arbiter of decency!

Peanuts99 a day ago

VS Code is a perfectly fine and pretty performant app.

codazoda a day ago

Probably at the edge of being a good example. I recently switched to zed because of how bloated VS Code is becoming. I think it gained it’s momentum by being small, but enshitification seems to come for all software.

brettermeier a day ago

I don't know your Standards, but VS Code feels very smooth.

brettermeier 4 hours ago

Downvoted without reply, I like that. Give me your arguments or stfu

thunky a day ago

Based on the hype I tried zed thinking it would feel amazing compared to vscode, and it just didn't.

letrix 15 hours ago

What do you consider bloated on a VSCode install without any extensions?

denimnerd42 20 hours ago

Erich Gamma started VS Code (through Monaco). That's saying a lot about Erich Gamma and not a lot about Electron.

It's also had a ton of work done to make it performant. (Microsoft level resources)

hobo123 4 hours ago

Isn't Gamma one of the GoF guys who pushed bloated Design Patterns, UML & co? I would never expect him to write performant code.

Also, first time I'm hearing about Monaco. I thought VSCode was an Atom fork.

bigstrat2003 20 hours ago

No it isn't. It takes over 1 GB of memory just to open up a handful of source code files that each are under 1 MB in size (and which, for reference, Sublime can open with 300 MB used). It's an absolute pig.

afdbcreid 19 hours ago

It has seen (major) optimization work, and it's still quite memory-heavy, although that's probably fine for a rich IDE. But it's not fine for many other apps.

viraptor 18 hours ago

VSCode is absolutely not a rich IDE. It's a fancy text editor will extra plugins. Visual studio or IDEA are rich IDEs.

afdbcreid 18 hours ago

With extensions it can be. And if it would be built on a custom GUI framework, it could not.

viraptor 18 hours ago

Rich IDE is not something you achieve by slapping a few extensions on an editor. It's in the name - Integrated. It means that there's a GUI designer which is aware of local classes, inspector at runtime which can jump into the right areas of code, performance analysis that gets populated during runs, highlighting and compilation that's aware of the currently selected configuration, etc. There's an extension a few of those, but they're mostly independent and isolated.

skydhash 17 hours ago

Codeblocks is an IDE. VSCode is pretty much on par in terms of features.

viraptor 16 hours ago

It's a spectrum. I'd give codeblocks 25% of an IDE ;) But it will depend heavily on what you expect.

hobo123 4 hours ago

At least comparing to Eclipse in terms of Java support, VSCode is still way behind. I've been using it almost exclusively for maybe a year, since I was mostly working on JS and Groovy code, but now went back doing Java dev on Eclipse, and it is a significant difference.

Jtarii 18 hours ago

lmfao no.

anthk 18 hours ago

Just compare Sidex (VS Code clone in Rust) vs vanilla VS Code.

https://github.com/Sidenai/sidex

troupo 7 hours ago

You mean the app built by a trillion dollar company with a dedicated team spending untold millions of hours making it work?

pjmlp 7 hours ago

Wrong, it only performs half way decently thanks to the amount of C++ and Rust extensions it makes use of.

annex-winged-cr 6 hours ago

I keep hearing this, but I never see any evidence for it.

There's only 0.7% Rust code and not even any C++. And almost all of that Rust code is for the CLI, not the editor.

The rest is just plain TypeScript and other web technologies.

pjmlp 5 hours ago

Missing the extensions that are required to make a bare bones VSCode actually usable.

Also the performance improvements on the bultin terminal thanks to using WebGL as if it was a native app.

ycui7 11 hours ago

People need to understand even a 70% smaller 290MB GUI app is still terrible. We could open 200 browser tabs on Windows 2000 with only 256MB memory back in the days. Discord should not consume more data than 200 browser tabs.

loremdifr 11 hours ago

this is true, I even remember one of the first alternative clients for Discord (Ripcord IIRC) was orders of magnitude more performant and lightweight that this rust rewrite.

shafiemoji 11 hours ago

200 tabs of HTML only?

pseudohadamard 10 hours ago

Came here to say the same thing. A graphical IRC client should not require 290MB of RAM to run.

txdv 7 hours ago

if it has a lot of iamges and videos, maybe? but not after a clean startup

pjmlp 7 hours ago

You actually couldn't, because browsers did not support tabs back then.

200 browsers instances more likely.

hobo123 4 hours ago

I'm pretty sure my Pentium 3 PC back in the day had 128 or 256MB memory, and I ran tabbed Mozilla/Seamonkey as well as the first versions of Firefox ("Phoenix"), both with tabs. 2003ish.

Cold Phoenix start on Windows XP was similar to Firefox startup today on a Mac :D (ok, maybe a few seconds longer of pegging the CPU)

pjmlp 3 hours ago

Windows XP was the follow up to Windows 2000.

Yeah, and it took up to 2006 for IE to support tabs.

Anyway, by then Windows 2000 already had its replacements on Windows XP, and Windows Server 2003.

331c8c71 3 hours ago

Opera definitely had them around that time

https://pspb.chrisrcook.com/2025/09/20/4_windows-xp-home-x86...

pjmlp 3 hours ago

On Windows XP.

331c8c71 3 hours ago

Opera supported win 2000 until 2010s. Same for Firefox which had tabs in its version 1.0 in 2004.

pjmlp 3 hours ago

Might be, however the comment I replied to implied any browser on Windows 2000.

https://allthatiswrong.wordpress.com/2011/01/14/opera-did-no...

331c8c71 3 hours ago

And? I never said Opera invented tabs (I knew they didn't).

pjmlp an hour ago

And it wasn't on Windows 2000 heyday.

abanana 2 hours ago

Opera and Firefox, "actually" (along with some lesser-known browsers), introduced tabs around the same time as, or very soon after, the launch of Windows 2000.

Alternatively, read "tabs" as "windows" - we know the word "tabs" is not the important point of that post (and that the number 200 is exaggerating for effect). Right clicking a link and selecting "open in new window" opened a new window in the same browser instance, not a separate instance, although there wouldn't be any visual difference.

pjmlp an hour ago

Windows XP and Windows Server 2003 were the current versions at the time.

stein1946 7 hours ago

> People need to understand even a 70% smaller 290MB GUI app is still terrible

I don't understand that kind of reasoning.

Electron - and anything web - has allowed us to basically solve distribution and iterate at lightning speeds and people are getting bothered because an application in 2026 takes multiple amounts of RAM than the their favourite 90s app?

Come now, the average laptop has a ton of memory and fast i/o to be able to not care even if that 290MB was 1290MB.

The trade off of higher memory for some middleware is totally worth it.

spacechild1 7 hours ago

Software developers need to realize that their app is not the only one that will be running on the user's computer. A single app taking 300 MB of RAM? No problem. 20 apps? That's already 6 GB of RAM.

And keep in mind we're talking about a damn chat client, not some complex video editing or CAD app.

stein1946 5 hours ago

> Software developers need to realize that their app is not the only one that will be running on the user's computer

The user will need to realize that, and if they don't like it they will close the app and move to a different provider. But that of course will not happen because no matter how the IT people want everyone else to use their xmpp xfce clients or whatever; Slack will always triumph because it is not just a "damn chat client"

> 20 apps? That's already 6 GB of RAM.

No one runs 20 apps in the foreground, my finance runs gsheets, xero and the erp all of which are webkit. The lenovo's were the cheapest ones I could get with 8gb ddr4 and still no one has complained about slack or our erp written in react not being responsive enough.

I understand that people like to constrain themselves for creative reasons but lets not be cheap with resources.

load-bearing 4 hours ago

Do you honestly consider this normal? In the 00s I've used to run Windows XP (which was derided as an absolute pig -- what the hell did we know) + Delphi with a GUI designer in it much more advanced than anything we have now + 1-2 PDFs + a web browser with maybe 5-10 tabs + often a chat client in the background (usually QIP -- it supported not just one protocol like Slack, but about a dozen of them, and could send and show multimedia messages in addition to text).

Sometimes also a music player. All of this relatively comfortably fit in 128 MiB of RAM; it was really comfortable once I moved to 512 a few years later, and I thought that should be enough for the decades ahead.

But then we got electron and turning the web into an operating system on top of an operating system.

Now having a document processor barely fit within 8 GiB is considered acceptable...

331c8c71 3 hours ago

Normal or not that's how it is. The incentives are not there and the network effects close the casket...

Is it regrettable? Idk. Definitely not unique to software though once you look and appliances, cars etc - they are not optimized for the things I prefer they would have been.

Neikius 39 minutes ago

Wish it only took 300mb. Actually that is the minimum.

Teams is a nice example. It will eat 1-2gb of my memory on a regular day. Being limited by 16gb and trying to work... It's not fun.

mrob 5 hours ago

I recently installed "dvdisaster" from Debian. The provided version has the GUI disabled, on the grounds that it's written in GTK2. It's just a single-line configuration change, so I recompiled with the GUI enabled.

It's been a long time since I last used GTK2. I was shocked at how much faster it feels than GTK3/GTK4 apps. Load time is almost instant on my old computer, and no perceptible latency anywhere. There's no arbitrary 60fps frame rate cap like with more recent GTK versions (while running on Xorg). There are no annoying animations. GTK2 was already perfect and everything since then has been a downgrade.

ezst 3 hours ago

Congrats, you finally made it 15 years late to the "Gnome 3 sucks" party, you can still grab a drink and a chair, it's still lively in there!

dustbunny an hour ago

Linux Mint ftw

EddieRingle a day ago

Discord isn't really the model to follow here, IMO. They killed their native Android app and moved to React Native, and now they're dropping React Native (while mobile somehow keeps "native UI", according to their CTO's tweet). If they wanted to maximize code reuse and accelerate feature development, they should have instead considered Kotlin Multiplatform, then they could've skipped the React Native detour while actually building apps that are native to the platform. (Rust and its cacophony of UI frameworks are not really platform-native anywhere, as far as I'm aware. Maybe Pop OS, but I don't know anyone targeting that specifically.)

This bit is obviously subjective, but Rust as a language is simply not ergonomic enough for a lot of the use cases people are trying to apply it to, especially UI development. Most of the Rust UI libraries I've seen to date either use a more imperative style, or attempt to replicate more declarative approaches like Compose UI or SwiftUI, but without the nice language aesthetics that make it simple to read and write. And if the counter-argument there is for LLMs to be reading and writing this stuff, that's a whole other can of worms: (1) The subsidized inference era is quickly coming to an end and (2) if you're using LLMs anyway, why not maintain apps that are as native to each platform as possible?

afavour 15 hours ago

IMO Rust is great for creating a shared library that native clients then use. Mozilla even made a great library to handle all the FFI bindings:

https://mozilla.github.io/uniffi-rs/latest/

Mobile UIs are different enough and, these days, easy enough to construct that to my mind there isn’t much value in the cross platform UI proposition these days. But logic? Sure.

baist0 12 hours ago

"the nice language aesthetics" is shit in your head. i want good program without buying additional RAM.

saagarjha 11 hours ago

Kotlin multiplatform is horrible on iOS, it’s basically as bad as React Native.

franga2000 8 hours ago

Have you used Kotlin Multiplatform? I currently am and while it sounds great, it's nowhere near ready. Something as simple as scanning a QR code has been a week-long project - the Kotlin-only libraries suck, the Java ones don't work on iOS, the only Kotlin Multiplatform one pulled in 500 MB of dependencies (that's final app size, not development files!!).

There was legit a point where I considered embedding a webview just for the QR code scanning screen, but of course, embedding a webview turned out to be a similar mess.

pindab0ter 7 hours ago

I am not very familiar with Kotlin Multiplatform, but couldn't you use a Swift/Objective C library for iOS, while using a Kotlin library for Android? What would be the blocker to this?

franga2000 6 hours ago

There's no blocker, but that's not a comparable development experience to more mature cross-platform toolkits.

I now have a separate QR scanning implementation for three platforms and a bunch of if statements in the Gradle files. It took 4x as much effort (once for each platform, plus the work to tie it all together) and now I also need to know how to develop for those platforms, which is exactly what I wanted to avoid by picking a cross-platform toolkit.

This will hopefully improve with time, as it did with RN and Flutter, but my point is that we're simply not there yet.

gloosx 2 hours ago

Every time I start the discord app, it downloads updates. It was never the case when I opened discord app and it didn't start updating. Updating 7/13. Updating 1/4. There is always some update pushed, I think almost every day. Comparing the launch times of fully updated clients is kinda useless, as it will always take few minutes to update anyway when you are cold-starting it. Slow electron apps are just a skill issue. Yes it has a browser overhead, and it will use a bit more RAM, but the bare-minimum time required to spin up the underlying Chromium shell and Nodejs runtime environment is 100-300ms, everything on top of it is just application overhead aka skill issue. My slack client opens almost instantly all the time, and it's as responsive as any native application around, sometimes even greatly more responsive than some native apps made by Apple.

emaro 2 hours ago

Not disagreeing with your general comment, but on my M3 Pro Slack takes 15+ seconds to start (usually snappy after that). I fucking hate it.

Doohickey-d a day ago

One nice thing about Électron is that it supports accessbility and non-english IMEs correctly, and thus all Electron apps have decent accessibility out of the box, comparable to web apps.

Most Rust GUI toolkits, at least in 2025, did not have that good accessibility or IME: https://www.boringcactus.com/2025/04/13/2025-survey-of-rust-...

Hopefully this has gotten better and the new discord client isn't worse in that regard.

robin_reala a day ago

GPUI has a single-paragraph accessibility section in their guide that defers to AccessKit[1] for everything, and points to a raw RS file for more info.[2]

I haven’t tested it or written anything using GPUI, but I’d expect it to be considerably harder work, based on the maturity of the web stack in this area. My assumptions have definitely been proven wrong before though… Anyone from Discord working on accessibility want to chime in?

[1] https://accesskit.dev/

[2] https://github.com/zed-industries/zed/blob/main/crates/gpui/...

numpad0 15 hours ago

oof. No proper support for IMEs is a huge non-starter for East Asia. Why don't they just use OS standard text renderers like everything before Rust?

Or is Discord planning to implement their own forks of existing IMEs into the app? Don't tell me they are going to just put in a tiny LLM and call it a day...

lifthrasiir 11 hours ago

Windows IMEs used to emulate the style of edit control to display its candidate text, and the guess was frequently wrong. That's hardly a new problem for East Asian.

numpad0 6 hours ago

What worries me is that there's a general atmosphere that LLMs solved all NLP tasks, despite they don't do so well for kanji pronunciation <-> text mappings, likely for the lack of data - Japanese users especially don't post enough of organic data useful for that, apparently. Discord may be in a "good" spot to be able to (very invasively) collect that data by setting up a keylogger and comparing that to the final user-submitted text, but (aside from all the concerns) I'm not very hopeful about it.

mococa a day ago

I don't understand this idiocracy - it's super easy (I did myself alone many times) to have a single codebase in Qt for all OSes, even BSDs.

I think people become super lazy... "Ah, it's will ocupie a few hundreds of RAM, no problem, let's ship it."

They are companies with billions or even trillions shipping shit with Electron.

72deluxe a day ago

This is definitely true. It seems to be the modern approach that the less effort in development, the better!

I too had code that worked across 3 platforms with wxwidgets and a 3D game toolkit incorporated in opengl for visualisation, with most 2d controls being drawn using wxwidgets OnPaint handlers for custom controls rendered natively on that platform. I wrote this single-handedly, with another colleague handling the network code and firmware on the remote hardware devices.

Everything else is sheer laziness as far as I am concerned. There's even less excuse today with the rise of LLMs to do the majority of UI coding for you.

ip26 19 hours ago

Not a front end developer but I’ve always assumed it was ROI - nobody felt a smaller memory footprint would drive enough incremental revenue to offset the costs, compared to the other things they could be doing.

What seems to have changed is the size of the costs - LLMs are really good at this - such that you can now say “well, maybe the returns aren’t that big, in fact maybe they’re zero, but this is easy enough, so why not”

De minimus improvement has always suffered this problem - we’re all fairly sure it’s worth something. Maybe there’s even real perceptible value when you fix the whole basket. But making the case is hard.

ivanjermakov a day ago

> single codebase in Qt

Not if your promary UI is web.

mococa a day ago

Qt runs on web too.

llbbdd 19 hours ago

Web version has 0 accessibility, which is a no-go for real products

edelbitter 10 hours ago

Is it? Discord seems fairly real to me.

cowlevel 9 hours ago

Web discord is written in Qt??

Aurornis 19 hours ago

> it's super easy (I did myself alone many times) to have a single codebase in Qt

I’ve worked in Qt apps on and off through my career.

I do not want Qt apps any more than I want Electron apps.

The solution is native apps using native platform tools, or one of the mature cross-platform toolkits.

ptx 18 hours ago

Which cross-platform toolkits are more mature than Qt?

Aurornis 17 hours ago

Mature was probably not the best word. The modern desktop UI toolkits produce a better UX to me.

Qt feels too locked in to old decisions that were the right choice at the time, but desktops and mobile have changed so much that it always feels like a clash of old and new.

dagmx 14 hours ago

You can make Qt look however you want. The point is that it will give you native UI by default (for the most part and excluding QML)

That native UI will be faster than Electron and most other retained UI toolkits and will be just as capable of creating whatever your subjective view of “modern UI” is.

zapzupnz 7 hours ago

I'm still waiting for a single Qt-based app on macOS that feels like a macOS app. They look more like some Windows 95-era app wearing the Aqua skin peeled off the carcass of some slightly older-and-definitely-not-current version of macOS.

Don't confuse UI and UX. You can make Qt have the right UI, you can't make it have the right UX.

hobo123 3 hours ago

This is also why electron and other frameworks really devalue MacOS. Back in the day anything not built with Cocoa felt off, there was a difference in usability.

Now we take it for granted, and Mac apps feel as good or bad as everywhere else.

dagmx 43 minutes ago

Qt will look like AppKit for the most part minus having exact the widget types as AppKit.

The person who made a Qt app may be designing it based off of cross platform UX but maybe you should follow your own advice and not conflate things.

You can quite easilymake a native UI and UX with Qt. You can also make things feel very non native via AppKit too.

Your argument has very little to do with the toolkit and more to do with the developers choices of what UX they prefer to design.

dijit 10 minutes ago

I'm with zapzupnz here.

I haven't seen what you describe, even if it's theoretically possible. I'd really love to be shown an example.

I'm not saying it can't happen, and in fact, if it existed I wouldn't have noticed (I mean, the point is that you think it's native, so I wouldn't have noticed..) but I can't think of an example and I would love to see one.

baist0 12 hours ago

For every one C++ programmer, there are 10 JS programmers.

pjmlp 7 hours ago

Unfortunately, as now we are stuck with JavaScript in all places.

hobo123 4 hours ago

I would understand if devs preferred to not bundle lots of libraries, so their mobile apps are faster and slimmer.

And yet most Android apps today take 50-100MB bundle size for very simple GUIs and take up lots of RAM and lots of time to load or react to anything.

So maybe we'd be better off with everyone bundling Qt after all.

spapas82 a day ago

I'm 100% on this since Electron is probably the worst thing that happened to the desktop development.

Hiwever, I'd like to hijack this front page article to for a related concern/question I've got.

It seems that all (popular) opensource LLM harnesses are either in JS or python (pi, hermes, opencode, paseo). The same seems to be true for closed source harnesses that I have used (deepseek, chatgpt).

I'd really like to ask why? I mean why somebody would use technologies like JS or python to implement a harness application instead of golang or rust or even C? I understand that before 1 year JS or python would be tempting but right now? Especially the LLm related companies have unlimited tokens and re-writing the harness software to golang or rust should be trivial.

This would benefit so many people (especiall considering the prices and scarcity of RAM these days).

So, why nobody does it? This is an honest question, I don't want to offend interpreted languages but it should be a universal truth that a compiled language is faster and consumes less ram.

hamandcheese a day ago

One good reason: extensibility. Pi is extremely malleable in ways that would probably be harder to achieve if it were in, say, Rust.

The resource usage of my harness is nothing compared to an electron app, and being able to easily customize it is more important to me than saving a few extra MB of ram.

spapas82 a day ago

I guess it depends on the harness, for example: chatgpt.exe right now is 1 GB on my windows machine. peseo.exe is 500 mb. and opencode.exe + bun.exe is 300 mb.

chrismustcode 18 hours ago

Chatgpt isn't a harness. OpenAI's harness is codex.

Uzazo 6 hours ago

Of course it’s a harness. Every LLM chat interface is a harness.

2001zhaozhao 8 hours ago

This is why I like Kotlin (or Java). You can get the extensibility of Python/JS at native speeds and full multi-threading, with fast compile speeds. It does use more memory compared to Rust though.

davidmurdoch a day ago

Because it used to cost extraordinarily more money to build for a performance increases almost no one cares about.

spapas82 a day ago

chatgpt.exe right now is 1 GB on my windows machine. I have 16 GB and can spare none. So I don't think that nobody cares about such performance increases.

davidmurdoch a day ago

Most don't care or ever notice these things. Hacker News crowd does and always has, but the a non-technical user of a run-of-the-mill desktop app would rather have new features, and maybe some bug fixes, over performance.

Myself? I care. I regularly run a project that needs 6GB for the language server to provide type hints.

Telaneo 20 hours ago

> but the a non-technical user of a run-of-the-mill desktop app would rather have new features, and maybe some bug fixes, over performance.

Ask anyone with a 5 year or older laptop that wasn't top of the line when it came out and can't afford a new one, and I think you'll find they're of the exact opposite opinion. And even if they aren't explicitly, they might have abandoned their PC and instead switched to their phone for their personal computing, just because that experience turned out more coherently for them.

Heck, even the normal user with a decent laptop probably would take better performance if given the option, but when have they ever been given that option? The current state just isn't unperformant enough that it crosses the threshold to the point where it's at the front of mind for people. If anything, that threshold is probably beyond the threshold of 'eh, I'll just use my phone for this' for any task that doesn't need a keyboard.

astrange a day ago

> chatgpt.exe right now is 1 GB on my windows machine. I have 16 GB and can spare none.

These are not the same units, because all modern OSes have compressed swap.

senordevnyc 19 hours ago

But you’re running it, aren’t you? So from the business perspective, you don’t care enough for it to matter.

codazoda a day ago

One possible reasons is that all of those are compiled languages vs interpreted. It doesn’t sound like much but compiling your code for three plus platforms and distributing binaries adds just enough complexity and friction to make it feel a lot more difficult.

spapas82 a day ago

I agree with that yes but consider how many people would benefit. And how easy it should be for them to do the change (and compile). It's just tokens.

72deluxe a day ago

But "friction" is the job, and "complexity" is the job. That's why we're developers.

bluGill 15 hours ago

Modern CI systems have no problem building for 15 or 20 different platforms is what you need. There's a little bit of hassle of distributing binaries but again it's not a big deal for anyone who actually puts their mind to it.

sitzkrieg 15 hours ago

definitely dont mention setting up apple certificates/ code signing.

orwin a day ago

Because most of the recent improvements on correctness and 'memory' are from harnesses, my guess is that you want to iterate and test quickly on the software that seems to improve the most and differentiate your brand best. Once a harness is 'complete' (which might happen for specific harnesses, but probably never for code), the team might start to optimise it with compiled languages.

72deluxe a day ago

The problem is that they never reach this point where they put it into native code. So you always have a plethora of JavaScript and Python files littering your system. It's baffling.

sparkling 20 hours ago

Because the (wall clock) execution speed / performance oft the harness is tiny compared to waiting for the LLM response.

baist0 11 hours ago

Because there are more JS programmers, and they need to eat too.

Neikius 30 minutes ago

Personally with LLMs now, I don't actually see a reason for dynamic languages at all. LLM now makes it faster so python, js and similar are fully redundant. It's all just inertia for now

smusamashah a day ago

We have gotten so used to slow app startup these days I believe. I have recently started using Task Slinger [1] and every single time I boot it, I get a feeling that it was already running and it's window just showed up. I wish all modern software were like this.

[1]: https://taskslinger.net/

swinglock a day ago

All modern apps are like this. It's Electron apps which are all legacy.

smusamashah 20 hours ago

No. Even windows' own task manager is not that fast. I don't think that most software most people use everyday on windows was built with strong focus on performance.

swinglock 20 hours ago

My point is no Electron app should be considered "modern" at this point.

cowlevel 9 hours ago

no true Scotsman

gopher_space 20 hours ago

The old System Shock 2 is an inspiration for my own loading times. Launching the game instantly shows the main menu with your last save paused in the background. Clicking Play actually unpauses the game. There's no loading time and no process as far as a player is concerned.

ssernikk 19 hours ago

Do you know what tech stack do they use? The website only mentions custom Direct3D renderer.

Jtarii 18 hours ago

>Do you know what tech stack do they use?

If you are asking this kind of question you have already lost the plot. You don't need a "tech stack".

procone 14 hours ago

I'll pass on paid / proprietary task managers. But cool anecdote?

smusamashah 4 hours ago

Isn't that same as passing on all paid software?

bemtevi a day ago

I've rarely liked any Electron apps, both for the performance and because it seems to encourage a feeling of bloatedness, for want of a better word. Tried VS Code, but dropped it when they started putting too much AI in it and too much complexity. Sublime is so much better.

I don't know...there seems to be something unpleasant about all Electron apps.

72deluxe a day ago

I agree. The lack of native user interface controls for accessing menus and the inability for them to properly track focus for keyboard usage for right clicking (for example) makes them really difficult to use. You have to use the mouse for everything.

I did use VS code for a while but I've just gone back to using QT Creator simply because it is so much faster to use in daily life.

stevefan1999 7 hours ago

Well, why not just move on from Windows and transition to Linux, as I did with CachyOS earlier few days ago. Doesn't even want to look back on Windows now since everything is so smooth and uses half the memory I needed compared to the equivalent in Windows! The only quirk I have is the xe driver that after suspension and resume the GPU may go haywire and I have to restart SDDM but I switched from S3 to S2 sleep and the problem seems to be worked around. I'm using an Arc Pro B50 so not sure if that's buggy on Linux whatsoever but it is metric tons better in Windows.

ZekeSulastin 2 hours ago

So what exactly does any of that have to do with switching ann application off of Electron, aside from Windows being in the headlines which makes sense given the site is “windowslatest.com”?

AdityaK_9999 8 hours ago

i believe that primary issue of electron is also that the framework consumes RAM/resources which is already a issue especially for windows which is a heavy OS on the RAM. the same side is visible on the Linux speciapic app ends of applications like VS code. they have poor integration , Loads of resource consumption and minimal polish

sirily11 7 hours ago

I really dont understand why when AI is available, big company still using electron for their apps. Codex was written in pure swift on macOS and right now moved to Electron again

jrmg a day ago

I don’t doubt that this will be faster and smaller than the current app, but it’s slightly annoying to me that the new app is getting so much coverage with specific claims about speed and memory usage when it’s not actually feature-complete or released yet.

rldjbpin 6 hours ago

for a team that was using the underlying stack (other than the ui library) for other components, trying this is a low-hanging fruit of an experiment. this should not automatically become the recommendation for everybody. (yes i do hate electron apps)

for a large project like electron, it is up to the maintainers to optimize it while preserving the api. if they can do this with typescript, they can also explore this with electron. perhaps a native webview option instead of chromium?

with current memory crisis, devs with cushy performant laptops bought over a year ago should realize that we yet again have hardware constraints and need to act accordingly. however, putting the pressure at the wrong place is not as productive.

whatever1 8 hours ago

Electron / react native are dead. LLMs can do the porting over multiple platforms.

Just spend the tokens, the native app user experience improvements are worth the effort.

azuanrb a day ago

Electron has always been about shipping cross-platform apps quickly, at the cost of higher memory usage and potentially worse performance. With or without LLMs, its core value proposition remains the same. LLMs simply amplify the framework’s existing strengths.

Raycast, originally a native macOS launcher, recently released v2 using a hybrid architecture. It’s not Electron, but it follows a similar approach to Spotify’s desktop app, using web technologies inside a native shell.

The memory usage is still pretty significant. It’s using around 350–450 MB at idle and can sometimes reach 1–2 GB depending on the workload. The upside is that they can now share most of their code across macOS and Windows and evolve beyond being just an app launcher.

It’s always been about trade-offs, and LLMs don’t fundamentally change that.

scosman a day ago

LLMs do change the tradeoff if you can now ship cross platform apps quickly, without electron.

GPUI is one example: some of the downsides of electron (UI is not native), but it solves memory and performance side, and shared codebase.

Just writing native apps because LLMs makes it cheaper is the other option. Shopify did this after years of react native.

azuanrb a day ago

> you can now ship cross platform apps quickly, without electron.

The opposite is also true. My argument is that you can also ship Electron apps with more features more quickly with LLMs.

You still have a finite token budget. With native apps, you have to split those tokens across multiple platforms, whereas with Electron, you can reuse most of the code.

Big companies have been going back and forth between native and cross-platform approaches even before LLMs. They generally have the resources (humans, tokens, compute) that small and medium-sized companies don’t have. So I’d take their rationale with a grain of salt.

scosman a day ago

Why assume finite token budgets? Scaling 2x tokens isn’t a major jump if it brings quality.

Also the GPUI approach is still finite tokens, just better stack.

azuanrb a day ago

Because any kind of budget, resources are always finite? 2x the tokens roughly translates to 2x the cost. That’s a pretty big ask. Quality alone, unfortunately, isn’t always enough to justify it. There has to be business value too.

GoblinSlayer 6 hours ago

Users are not the target audience. Salesmen are.

thunderfork 13 hours ago

2x a finite value is still a finite value

CodeCompost 4 hours ago

What are they using for the new web app? Is it just plain React now? How is the logic being transpiled to WebAssembly?

CodesInChaos 17 hours ago

What I don't get is why most background electron/CEF applications don't unload the web engine when it's minimized to tray for some time. Chrome starts in about a second, the the webview shouldn't take more than that to re-initialize.

NetMageSCW 17 hours ago

Probably because they have stuff to do in the background and so have to keep the javascript running.

kaelwd 14 hours ago

You don't need the whole browser frontend for that though, Electron also includes Node.js which is much less memory hungry.

jcelerier 15 hours ago

> Chrome starts in about a second,

on which machine ? go check the first three PCs here: https://www.amazon.ca/Best-Sellers-Laptop-Computers/zgbs/ele... ; do you think they open chrome in a second ?

nomercy400 7 hours ago

What would happen if you do not have enough memory to reopen it? How would that impact the user experience?

lexicality 5 hours ago

well that'll probably happen less often if all these electron apps stop using 4GB of ram in the background constantly

Neywiny a day ago

They keep talking about 2 accounts logged in so that's why it's still high. But they've done nothing to defend that claim.

Also, pro tip, you can still just use it in browser. I hope that doesn't go away.

kccqzy 12 hours ago

Many other Electron apps also have a web version. I just make them pinned tabs in my Firefox.

orbital-decay 18 hours ago

If you ever wondered about the reasons people started using Telegram, this is a big part of why.

kryptonomist a day ago

Let’s hope we see a new wave of desktop apps rewritten natively, thanks to LLMs. Whether they use Rust with GPUI, C++ with Dear ImGui, or something else entirely, that would be great. Personally, I’m so fed up with bloated UIs. Windows is full of them, and it’s a pity considering how powerful our CPUs are.

r_lee a day ago

> C++ with Dear ImGui

it would be absolutely awful

compared to chromium, it's really limited, like it's just always a compromise with these

we should instead figure out a way to do electron but better and make it easier to do the things you can do with e.g. React with native languages and frameworks

amelius a day ago

QtQuick is quite good.

debazel a day ago

The limitations are a large reason for why they're so resource efficient in the first place.

If you just reimplement Electron in a native language then you get... Chrome, which is already written in C++. The majority of RAM usage in Electron applications is from the native parts of Chrome itself and a decent ~40 MiB chunk for the Node.js runtime.

hobo123 3 hours ago

Name one feature that is a reason for a GUI framework to require lots of resources.

To me it seems like all frameworks and apps use much more memory than 10 years ago, but don't really offer more features.

Maybe a really young GPUI still has limitations, but I doubt it would suddenly need to use 5x as much memory if you added them.

caspper69 a day ago

I have had excellent results running a back-end Rust process that communicates with a C# Avalonia front-end via protobufs over named pipes on Windows and Domain Sockets on Linux and MacOS. With C# AOT I’ve been able to create self-contained apps that run incredibly fast despite the ipc between the front end and the rust core. I’m getting full 6 platform coverage too (Win/Linux/macOS on both x64 and arm64).

edit: Avalonia is quite mature, with accessibility to boot.

the__alchemist a day ago

Are you a web dev?

r_lee a day ago

I use ImGui regularly, if you believe that it is on the same level as what you can do with React/HTML/CSS/etc. then I don't know what to tell you

the__alchemist a day ago

I have seen this assumption in recent GUI threads here (More so your upper post): Building a PC application is not equivalent to building a web browser. A web browser is a type of PC application built for a specific (But very broad!) use. I didn't think I would need to write this statement/distinction, but I have here. Web languages, culture, and syntax have not been a value add to PC application development. Electron is the clearest example why. My model is that is the value add of Electron: Appealing to web devs through language and culture.

Regarding "not doing what you can do with HTML/CSS/JS". Doubt. I varied and complex stuff and have never felt I needed to overload document rendering langs for this.

I will go a step further: I don't think Electron is a symptom of HTML/CSS/JS: I suspect it's more from the Node + Framework culture.

r_lee a day ago

it's not just about "appealing to web devs"

you simply just would stumble if you tried to do development like you can in React, constant "uhh... can't do that." while it just works in React.

I don't think anyone likes the look of Qt more than what you can achieve with webapps in terms of UI (style/etc. wise)

problem is the performance, I don't think many would be complaining if the performance was proper and the memory usage wasn't as terrible as it is now

you're talking about web browsers, I don't care what it runs on, if we have a way to run this in a lightweight way, would your complaints go away?

even Gnome uses JS etc.

you can do complex stuff in native UI, of course you can

what I'm talking about is the same kind of DX as with React. I really don't have faith in that, e.g. the new thing Discord is about to use, the css it tries to imitate just seems absolutely terrible.

the web technologies aren't perfect, in fact, far from it. however, when I see React vs whatever C/C++ alternative, I'd always go for React if it's about making the UI nice.

I've also shat on Electron before, but there's a reason as to why it's so popular. the tooling/UI capabilities are just much more powerful.

bigstrat2003 20 hours ago

> I don't think anyone likes the look of Qt more than what you can achieve with webapps in terms of UI

You are incorrect. In fact, us users hate that fact that UI designers keep making apps that look nothing like the rest of our system. Give me a nice native-looking app any day of the week.

Telaneo 20 hours ago

> I don't think anyone likes the look of Qt more than what you can achieve with webapps in terms of UI (style/etc. wise)

I don't want web app UIs. They all look different for no good reason. I want native UIs. I like qt. Please just give me a stable UI that I learn and stick with for the next 20 years.

baist0 11 hours ago

Listen! The fact is, JavaScript/HTML/CSS are a holy cow, and the Web is a religion. And you will come up with any excuse just to protect your holy temple.

ogoffart a day ago

That’s what we’re trying to do with Slint (I work on it): a declarative, reactive UI like React, with the logic in Rust, C++, JS or Python. It needs no browser engine, so it uses a fraction of Electron’s memory.

airstrike a day ago

or Rust with things other than GPUI

cpursley a day ago

Crux, lets you use native UI but Rust for business layer: https://github.com/redbadger/crux

tcfhgj 5 hours ago

On Windows youd use windows-rs

ezst a day ago

Is that a whole UI re-write in a native/non-web framework? Because in case that's not, this is still running in a browser, i.e. it stands at 80% or so of the bloat factor of electron, and what makes it faster is possibly (mainly?) that they haven't gotten yet to adding as much stuff as seen on the regular client.

Discord is a server-side protocol (the client isn't doing much besides displaying the server-prescribed state), there's very little logic/computation going on on there that should explain a world of difference.