There’s a certain community in tech that’s very vocal about their preference toward native apps. I share that sentiment, yet sometimes people take this idea too religiously. Unfortunately, the actual choice is about having an app or not, and I’d rather take something over nothing.
I mean, sure, but that doesn’t negate the fact that web applications – or, more specifically, Electron and Electron-like applications – are just bad. Any time I see an Electron application offered, I instantly know the developers behind the project do not respect me as a user. They choose their own convenience over my experience as a user, and while that’s a perfectly valid choice they can make, it does mean I’m not going to use your service.
Electron apps are primarily why I’m hesitant to jump on the Mac hardware bandwagon right now with non upgradable memory. They aren’t bad if you give them enough memory ( I say from my 64 GB boxen) .
I personally enjoyed making native apps, but regret always being told I couldn’t just use native controls I had to use crazy ugly third party controls at the direction of the graphics/marketing department that had to justify their input. I mean there are still stories about how terrible GTK is. its perfectly fine and functional. Just use it as is no need for crazy theming. Just do what everyone else does and everything will be fine.
I run like a dozen electron apps, including chonkers like VS Code on a daily basis – only restarting the entire system, maybe (maybe) every 2 or 3 weeks. I do have 64B memory, and I’m currently sitting at around 41GB utilization. macOS compresses active memory and is extremely good at swapping out unused memory (and so are browser. engines, btw.)
Honestly, web browsers are so fast, and so efficient, that they generally beat native apps, while “native” can be challenging to optimize compared with browser engines, which do most of the optimizing for you. The idea that you’d even want native apps over web based apps, means you have no idea what it takes to develop these things. There’s a reason developers are choosing browsers and electron, and it’s not all laziness (it’s some laziness, but it’s also cost benefit, yada yada).
What happened to the edit button?
Anyway, just wanted to add this little nugget – if it takes 4 times as long to develop a similar feature on native, because the native APIs just don’t do as much for you, then the trade off from the company is not going to be “okay, we’ll spend 4 times as much money, and 4 times as much time” – it’s going to be “well what do we have to cut, what features have to go, what optimization and even safety can we skip, to get that done?”
You don’t want native apps, you just think you do.
(I should say, by “you” I mean the general reader, or Thom, not developers on this thread, who all know what I mean. The point Bill Shooter of Bul made about how every app requires “custom widgets” sort of makes the point. There are efficient production pipelines that let those “branding exercise” shine through with mobile platform dev, or react native, etc. which are difficult to pull off in MOST native toolkits. Really, where is that edit button?)
This is kind of a fascinating article. The central premise that “I’d rather have a web app than nothing” is barely explored. On the other hand the author spends some effort detailing all of the deficiencies of Web Apps. So I was surprised to find myself agreeing with most of what’s written.
Web apps are inevitably built around a core set of common-denominator functionalities. They can be useful as a bridge for rarely-needed tasks, or until someone has crafted a beautiful native open source alternative to replace them with. To that end I’d generally prefer a service to spend its effort developing a solid and stable backend API, rather then developing a Web app.
That anyone can open a website on any device using any browser is ostensibly one of the great things about having websites instead of native applications, Yet as a FF user, I am disappointed when website developers don’t even bother with cross browser accessibility either through laziness or indifference. But if google’s new browser DRM picks up traction (ie with advertisers), it could end up posing a far more serious barrier to cross browser portability as DRM blocking gains traction. Those using an unauthorized browser or extension might start seeing these messages again: “The browser you are using is unsupported, please try upgrading to Google Chrome”. This hearkens back to the good old years of IE dominance.
Fortunately, Microsoft abandoned their Electron apps, now we have web apps that do not work.
In many cases it’s unfair to cite developer convenience as the reason for not building native apps. It’s simply down to economics. I’ve worked in places where theres no way they could afford to spin up dedicated iOS and Android dev teams.
Whilst I agree that web and electron apps are sub-optimal, it often does come down to that or no app, and it especially benefits Linux, which is the platform least likely to get a native app.
I feel like this wouldn’t be a topic for debate if we had a good language for web programming. XHTML would also help, desktop app developers could have built their own desktop-oriented widget namespace.
Are you actually going to make an argument as to why you think Electron apps are bad? Some of my favorite apps are Electron apps. I couldn’t care less what toolkits were used to create them. I care about what they can do for me and it seems like developers can create easy-to-use, featureful, and cross-platform applications much faster using Electron than natively.
In regards to the original article, maybe it’s because the laptop I use primarily is less than 4 years old and has plenty of memory, but I have never experienced speed or memory issues. The complaints he made could all be used against Java too. Not coincidentally both Electron and Java are used heavily for cross-platform applications. It’s not unreasonable that these applications are going to require more resources generally. If the resources that are required are in an acceptable range then who cares? There are always going to be tradeoffs and using a little more resources to make something cross-platform is worth it in many cases where Electron is used. I probably wouldn’t have Linux ports of any of the Electron apps I use if they were originally built to be native apps.
Imagine you have a celeron box with 4 gigs. Many people do.
That’s less powerful than a standard laptop from 10 years ago. If software has to support decades-old hardware innovation would be extremely slow. Regardless, it would still run on that machine. I don’t think people have a problem running Chrome on those systems. You’re probably not going to be able to do much else on that machine with it running but that’s probably true of a LOT of modern software, even things written in native toolkits.
MFC rules
Modern operating systems are so resource-hungry and inefficient that I don’t know whether it matters anymore if someone bothers to make an optimized application for one of them. Or whether it supports a particular system’s ancient quirks or fancy bullet-point stand-out features. Just as long as the core of the application is optimized where it matters, probably by using some lower-level language. And as long as the UI is user-friendly and snappy.
Modern operating systems are just blank canvases for applications. Or they should be. The more they get out of the way, the better.
I just hope something more application-centric than web technology eventually gains more traction.