Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Sorry, but the alternative to using Electron isn't JavaFX or Qt or Xamarin. It's nothing. People weren't writing cross-platform desktop apps before Electron. For that reason alone, Electron is great.


>People weren't writing cross-platform desktop apps before Electron.

Perhaps you weren't there, but they did. By the tons.

Heck, take something like Sublime Text, that pisses on Atom on all performance metrics, and is coded by a SINGLE person for 3 platforms.


To be fair, you can't run Sublime Text as a web app which makes sense for it. But something like a note taking app might want to be available as both a web app and a desktop app. Slack does something like this. In practice, though, very little code written for Electron will run in a browser.


>But something like a note taking app might want to be available as both a web app and a desktop app.

Access as a web app is much less needed in the era were everyone has not just a computer, but also their smartphone with them at all times -- it can just be a regular native mobile app.

But even if access as a web app is needed, the web version shouldn't be imposed on all other platforms just because it is the lowest/easiest common denominator for the devs.


A lot of us just want to re-use our redux/vuex files. React native and nativescript do this for mobile (much closer to native than Cordova). I haven't seen an equivalent solution for desktop. Most of the options are "stuck with one platform" or "write and maintain a second/third/fourth copy of your software"


> In practice, though, very little code

> written for Electron will run in a browser.

I think many things could run in a browser. All GUI, whole visual layer could run in a browser (maybe except system menus, but they could be recreated in HTML/CSS). All business logic also could run in browser.

Of course there are some other things won't run in browser, for example file system access (but this could be emulated by some kind of virtual file system). Or native NodeJS extensions (if application uses these). Or some system calls.

But these parts (not-compatible with browser) should be isolated from the rest of application and either ported somehow into the browser or just disabled in the browser version.

What I see is something else - projects are written in sloppy way, with bad architecture, where there is no respect for Single Responsibility Principle whatsoever. They are just written in non-portable way (it's matter of architecture rather than technology).


People weren't writing cross-platform desktop apps before Electron.

Oh. Wow.

Are we really at the point where people are rewriting history that profoundly in order to justify Electron?

Let's see... on my computer, right now, I have installed the following cross-platform desktop applications, none of which are built with Electron:

1. Chrome itself

2. Firefox

3. IntelliJ

4. Vim

5. LibreOffice

6. LyX

7. Gimp

8. VLC

9. Steam

10. VirtualBox

11. Ardour

And that's just off the top of my head.


To be fair, Steam uses a custom version of Chromium Embedded Framework, which is basically morally equivalent to Electron insofar as embedding a browser to implement cross platform guis.


I don't believe that's correct.

Steam is built using a custom GUI framework:

https://developer.valvesoftware.com/wiki/VGUI_Documentation

Yes, they embed Chromium for rendering web content, but the application itself is not rendered by Chromium.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: