Hacker News new | ask | show | jobs
by KeitIG 3041 days ago
> would be utterly trivial to implement in a proper language natively.

Have you tried to develop a cross-platform app for Windows, macOS and Linux recently recently? I do not know what you mean by "trivial", but using HTML/CSS/JS is the fastest way to develop UIs, and so, apps/programs. No contest. (about performances or resources management, that's a whole other story).

And using different techs for each platform to have a native app is not what I call trivial for developers in terms of complexity.

4 comments

It is the fastest yes, and it is by far the worst.

With javacript you have to constantly fight the language, the frameworks the performance etc. This will actually end up taking more time and effort than doing it properly in native languages once you get past the proof-of-concept stage.

Having a cross-platform core and then doing a platform specific GUI for each platform is a bit of work up front but hardly a big hurdle all things considered.

The advantages are that you actually get an app that looks and behaves the way it is intended on each platform. And an app that actually can be user friendly. Did we all just stop and say, hey, users suck. Why should we care about them? Let's give them an ugly mess that doesn't perform.

That by itself is a tragedy, but what is astonishing is that it is done for no good reasons.

I have high hopes webassembly will allows us to move away from javascript while keeping the cross platform bit. Not convinced it will address the complaints about electron which I understand rather come from the use of chrome/html/css in term of resources.
I agree that webassembly could make the situation much better.

Some of the appeal of electron is code-reuse and being able to use something other than javascript will make it easier to share code with native software rather than web pages. That would be a huge benefit in my eyes.

It may be the fastest way to develop UIs, but it's the slowest and least efficient way to run code.

This makes it useless for any non-trivial app that is CPU bound - including, games, audio, video, 3D, and many many more.

Just because it's easy to build a house with Lego doesn't mean it's a good idea, or that it's going to compete with professional building materials.

So they should do what?

1. Use current dev team to develop only the web version?

2. Hire X teams to develop for X platforms? (there goes your linux support)

3. Hire 2nd team to work on a cross platform native desktop client?

4. Open APIs and leave it to the wolves?

Everyone on here is acting like a few hundred meg of ram and barely 0.5% CPU usage is the end of the fucking world.

#4 please! The days of GAIM/Pidgin felt like the golden age of chat apps, at least as far as the user experience was concerned. Just one centralized app could manage all the disparate protocols without ads or millions of analytic scripts tracking every mouse movement. And it barely took up system resources.

Also, you'd be surprised how fast 4gb gets used up by the time the OS, the browser, and various Electron apps take their cut. I can't browse the web while having Slack and Spotify open or things start thrashing. I think it's past the point of ridiculousness when a simple chat app takes more memory than a full featured IDE like IDEA.

It comes down to, do you care more about development, or do you care more about your users, and the app's ability to fit in with their chosen desktop, follow that desktop's paradigms, etc?
Have you seen cross platform app loved by users for its UI?
Yes. Atom for example (which is built using electron).
Ah, Atom, exhibit A in why electron apps can be resource hogs if you're not paying attention

https://github.com/atom/atom/issues/4378

Intellij IDEA?