electron
popular cross platform desktop app framework.
there’s no denying it! sure, it’s a really easy and fast way to build programs that work on all desktop devices, and i’m all for it. it’s easy to use and, to be frank, easy to design and work with. it all boils down to web development after all.
but it’s also bloated, carrying a full installation of a specific version of chromium (except for linux, where it can be system-wide), and clunky, with many features that end up unused in production. it’s fine if a few indie developers use it, but when giant corporations with seemingly infinite money also turn to it, that’s when it becomes a problem.
the ram eating problem
having an instance of chrome in itself is already demanding enough. having two instances is fine on modern devices. but how many instances do you really need? imagine every app that you use on your device is now electron based. oh! that’s actually happening already!
i understand why discord started up as a web app, as an electron app. it had limited funds and workforce. but why is it still a web app? and why does the community have to optimize it for them? (see OpenAsar, legcord, etc…) at it’s core, it’s just a chatting app with a few more features than it should. i don’t think anyone hops on discord to play ‘Farm Merge Village’ or ‘BlockBuster’.
(oh, and, not to nitpick or anything, but just because you build your app on electron does not mean it will work perfectly across all systems — see projects like vesktop)okay, it’s fine, we’ll let discord eat up all of our ram in the background, i have 32 gigs after all - plenty to spare. oh! but then there’s spotify as well? (as a CEF app, but still a web app nonetheless) and also figma? whatsapp??? fucking POSTMAN? (god bless yaak - yes its a tauri app, but at least its faster, lighter, and generally better than postman for my workflow. and it doesn’t rely on aws! :3)
i get it, it’s hard making an app work on all of those goddamn platforms, but are there really no other options? why not PWAs? (rhetorical question, PWAs suck on desktop) we’ve also got projects like flutter which are decent enough, and seem hackable enough like electron. why not avalonia for c# users, or qt for c/++ users? there’s plenty of options, and plenty of apps showing that they work (blender, qbittorrent, vlc, …)
the race for profit
paying developers to, well, develop, is expensive. and why not cut as many corners as possible? the end user most likely won’t even know what the difference between such frameworks even is. most of the time, they’ll blame the hardware for misbehaving - not the software for being poorly optimized. and, after all, there’s plenty of web developers, some better than others. plus, designing a web page is easier than designing a full blown custom app.
but… then there’s companies like meta, which had a native (albeit, slightly broken) WinUI whatsapp app, which they’ve then decided to deprecate for no real reason. there’s absolutely no advantage to the ’new’ web app. but it eats up 7 times the amount of ram, while providing you with basically the same features. yes, the old app wasn’t cross platform (it was WinUI, only on windows) but at least it proved to be useful there.
oh and, if you’re going down the web dev route, there’s also a few concepts you must know nowadays in order to create a functioning app. that, and you’re still (mostly) stuck with running bulky frameworks like react.
the exceptions
although i frown whenever i see a new electron app rise to the surface, there are some apps i do accept as web apps too. they provide enough functionality and optimization that i can easily excuse them for the web aspect.
first off, we’ve got vscode. despite what i’ve heard from others’ experiences, i’ve been using vscode for the past 6 or 7 (haha — kms) years, and even with plenty of extensions (127 at the time of writing) it’s still holding up really well. it has a shit ton of features, from themes to remote ssh workflows. and, because its a web app, it can also run in any browser!
second - yaak and like-wise optimized tauri or electron apps. they’re fast, responsive, and don’t eat up 16 gigs of ram on idle. (yaak seems to eat around 340 megs on my windows machine, but it’s clearly negligible) they can be a pleasure to use compared to other apps sharing the same framework.
as for the third, absolutely ANY oss or indie app (ente, itch, etc.) because they usually lack the resources needed for writing native. if you have a startup idea, or a tool, or a wrapper, or something that end users may not keep active 24/7 on their devices, then it’s perfectly fine to write it down as a web app. (heck, even i have one at the time of writing)