VSCode is slower than Emacs/Vim at e.g. syntax highlighting a large file by a factor of three. It’s slower on a search and replace by a factor of seven. It’s slower than those editors by about the same ratio as Atom is slower than VSCode.
I can't say search and replace has ever taken a noticeable amount of time for me, on all my projects and devices it's perceptually instsnt, unless I'm doing a project wide search and forgot to exclude node_modules or something, a performance problem vim avoids by... not having project wide search.
I sped up the RegEx in my application earlier by an astounding 99.92% on average. I run several dozen various RegEx on a string once every few seconds - sometimes even slower. Execution for the end users already _appeared_ near instant and after the improvements it... doesn't feel any faster for the end users. Because the efficiency of my RegEx doesn't really matter at the rate strings are being parsed and for the small size of the strings (<150 characters often in the 30-50 range).
Electron as a UI layer is hands-down excellent.
But that doesn't mean I want to be running performance critical code in JS. Electron supports native addons just fine (and can call out to c/c++ fairly easily), but most companies don't take advantage of it.
Hell - Slack goes from like 40% of my CPU to less than 1% if I just disable emoticon images (seriously - preferring the plain text over the rendered GIF make an INSANE difference in how crappy it is).
You might have the best developers around but using electron will always make your app worse. It bundles all of chromium which is an outrageous waste of space. Chromium in itself is really ram intensive and the new contributions of Microsoft edge to chromium aren’t even added there anyway.
If you need a web front end make a progressive web app and use web assembly technology. Or use a lighter framework like neutralino or tauri JS. You do not need to bundle chromium in every single application.
I literally give almost no fucks how bad electron apps are, because I'm painfully aware of what it was like to try to run a linux box as a daily driver as an employed software developer before Electron - Hint, it involved booting a windows VM. You want to guess what's more of a resource hog?
So, you can go poopooing "that damned new app on my block" all you want, but you don't matter.
Between an electron app, and no app... I will pick electron. if that means I need to spend an extra 15 bucks on ram or hdd... oh the horror!
Would I be happy to see linux native ports? Sure.
But as someone who's not an a blind foolish zealot, I can do some quick math to understand exactly what the cost/benefit of native linux ports are, and I don't really blame companies for skipping them, and I'm thrilled they pick stacks like electron so I get first party support.
Would I like to have more PWAs? Absolutely - go take it up with Apple, who's been a stick in the mud on this front for literally decades now.
Do I think Neutralino or Tauri actually solves this problem? Nope - because it depends on the native webview implementation, system support is a nightmare (it's a modern take on DLL hell from windows - just this time it's missing browser features. You want to guess how many times I still see enterprise machines running ie8/11 as the default webview? It's a fuck load more than you might expect)
Otherwise... take a deep breath. You will survive this "hugely trying ordeal" of having someone ship a slightly larger binary in this day and age of multi-terabyte drives.
Ex: Yes, you can run vscode in a browser, but it has a lot of caveats, and behaves much more like a remote client.
For others - Just having Electron to target is the reason they work in the browser at all. Skype used to require either a windows vm, or a crappy 3rd party linux client - now it's electron native and also works in the browser, and Teams targeted electron out of the gate, making it browser compatible early (although I wouldn't call teams a shining example of a decent app unless you held me hostage)
Etcher is another example - Yes, with WebUSB, you can flash usb devices in a normal tab, but there's just really no reason to have a server to hit at all - the whole process is client local, and having you download it as a local application just makes more sense all the way around (not to mention, gets offline access for free, rather than having to implement it with a service worker).
Another reason to keep them local is that you get a new chromium profile by default. I run discord on a few work machines, but I don't want it to run in the browser profile I use for work, and I'm already juggling 3 other work profiles (dev, staging, qa) and my personal chrome profile - they have a specific set of extensions and settings. It's easier to just treat it like an app if I want it running most of the day - happy to load it in a tab when I'm out and about on other computers, though.
Yeah it's totally cool that we all get to suffer so some masochist linux desktop users get some apps
People keep forgetting that VSCode was born as Web app and only brought into the desktop as means to kill off Atom momentum.
Now Microsoft owns both.
Thanks to Apple we haven't yet replaced Web Developer with ChromeOS Developer on CV requirement listings.
I have taken a deep breath already, since Azure Cloud OS is how I use Linux.
Windows and Mac users aren’t starved though and won’t quietly accept being fed junk apps.
Are you sure about that?
You can get edge or chrome on Mac too.
The problems with WebKit compatibility is more about the functionalities, which is what framework like tauri try to adresses.
Look, I will concede that maybe there’s some specific app where electron really make sense, but there’s no way that applies to all the apps. There’s no way that Trello needs electron, there’s no way that your new pomodoro app need electron. There’s no way postman needs electron too cause there’s literally some people who made an open source PWA version of it, and to get local host support you can just get their chrome extension.
It is no longer : it’s better than no app, cause there are definitely way better alternatives for most electron use cases.
I’ve also downloaded chrome less, which enables me to get a wrapper for figma and Trello. I choose to make them use my safari browser, and both of them takes way less space and are reaaallly faster.
We have a cross platform GUI app at work which is just a library that wraps the native GUI (Win32/X11 calls). The core interface is basically maintained by one person, but these tech companies seem to struggle with teams and teams of people working on their (say) Slack desktop apps.
How many useful features does, say, slack add? Certainly none that I'm using.
My point isn't that it should be easy, but rather than these companies are utterly directionless and obsessed with solving scaling issues they either haven't hit yet, or don't know enough about to come up with a solution for.
I'd rather use one of the flock of old Scintilla editors.
What did they get right that everyone else fails to?
Most Electron apps are cost cutting measures and this is reflected in the quality of their teams and the priorities of the company. They’re made to check a box, not to be good.
The author has a blog post about how he made it so fast: https://keminglabs.com/blog/building-a-fast-electron-app-wit...
As long as you never quit VSCode it’s pretty snappy.
So why is Microsoft Teams so terrible?
They moved it from Electron to Edge WebView2 on Windows, and said doing so would cut memory usage in half.
https://blog.thoughtstuff.co.uk/2021/06/electron-to-webview2...