
Electron is Cancer - caspervonb
https://medium.com/@caspervonb/electron-is-cancer-b066108e6c32
======
hguhghuff
Ahhh get over it.

Electron is awesome. It lets me build powerful desktop apps in JavaScript.
Nothing else lets me do that so well as electron.

And let me say something to you if you're concerned about its memory usage:

Don't use it. No one is forcing you.

If you don't use it then you won't need to whine about it.

~~~
stephenr
Did you read the article? The author addresses this exact argument (being able
to reuse web dev skills on a desktop app):

> Okay, sure having a plumber cut out a square wheel from a plank is also a
> lot easier to do than having a woodworker carve a perfectly round wooden
> wheel, but it is gonna be one hell of a bumpy ride, and square wheels are
> actually fine, right?

~~~
bfrydl
I suppose that might loosely qualify as “addressing” the argument. It's really
just a joke though, isn't it? Enabling rapid cross-platform application
development with web skillsets is not really in any way similar to using
square wheels.

------
bananicorn
Honestly, many apps could just as well be developed with red[0], maybe not in
javascript, but with the smoothest cross-platform compilation I've ever seen.

Runs in 1mb of ram, and the download size of most apps made with it won't
exceed that either. It's no C for sure, but it's really amazing to have cross-
platform gui-support bundled into the language itself (windows & mac is ready,
android and linux are in the works)

So yes, no re-use of webdev skills, but a really fun language, and immediate
results - had I known about red before javascript, I would've never picked up
JS.

[0] [http://www.red-lang.org/](http://www.red-lang.org/)

~~~
jetti
For cross platform I've started looking at Free Pascal with Lazarus. It uses
the native GUI so it looks like a MacOS app and also a Windows app. It also
has support for Android and iOS. It may get passed over by most because it is
based on Pascal but overall, I think it is great (from what I've done with it)

~~~
bananicorn
That sounds interesting - if I can compile to everywhere from linux, I might
give it a shot. The language itself or its reputation is not a problem to me,
as long as the syntax isn't quite brainfuck-like and the performance not
completely abysmal, I'm fine.

~~~
jetti
Unfortunately you aren't able to do that from Linux. It is a write once,
compile everywhere language. If you want iOS and macOS you need to have a Mac
to compile. Same goes with Windows. Here is a list of all platforms that the
Free Pascal compiler is available on (and thus you can compile for):
[https://www.freepascal.org/download.var](https://www.freepascal.org/download.var)

------
abiox
personally, i feel that "X is cancer" is a gross and callous sort of language
to use.

i agree that electron is a suboptimal choice for a variety of reasons.
however, one should probably ask a) why aren't these electron-based tools
written with another technology and b) would they even exist at all were it
not for electron?

perhaps the answer to the "electron crisis" isn't whining, but developing a
new and better option (or renovating an existing one) that developers will
actually want to use.

~~~
com2kid
> perhaps the answer to the "electron crisis" isn't whining, but developing a
> new and better option (or renovating an existing one) that developers will
> actually want to use.

This is a huge part of it.

If I want to make a cross platform app, and I don't want to spend 1/3rd of my
dev budget on cross-plat abstraction layers, then electron solves a real
problem.

I can spin up multiple teams, hiring talent that understands 3+ different UI
toolkits in depth, write 3 different apps, or use Electron.

I can spin up a huge cross-plat team that papers over the file system, app
permissions, authentication, the clipboard, sharing, media playback, and text
editing, or use Electron.

Now as features get more advanced, platform specific implementations will be
needed, but to get up and running quickly, and to get something that people
want to use, Electron is a great solution.

As for the article's comment

> There is nothing desktop like about Electron applications, they always feel
> out of place, even the simplest elements like the native menu bar is not
> available.

Every app now days tries to be its own thing, Chrome feels out of place,
Firefox feels out of place, Notepad++ is maybe the one app I use that feels
like a Windows app. FWIW Microsoft Office, the parts of which, combined,
likely make up the most commonly used Windows app, has always felt different
from the rest of Windows, because they acknowledge that specialized apps can
use specialized UIs.

In the case of Slack, the UI is designed around what the product does. And a
browser as a chat room is obvious, chats have been hosted in HTML like
containers for ages, and a browser engine supports all the types of things
users want to do in chat now days. If you had to choose a tech stack that:

1\. Is primarily text based 2\. Allows for quick styling of text 3\. Supports
media inline with text

Then a browser fits all of those pretty well. The new HTML5 features that make
video chat possible are just icing on the cake. Browsers have made what once
used to be a huge differentiating factor (video chat) into something that
almost feels commoditized. Not to discount the huge amount of work that is
still needed to get video chat working, but working video chat used to be an
idea that got huge amounts of startup funding, but now with modern tech
stacks, it is measured in engineering sprints.

What to do video chat natively? Well, I've certainly noticed that all the
native video chat apps on my PC are sorta iffy. The effort to make it work was
put into Chrome, why shouldn't everyone else benefit?

------
Kuraj
I understand the performance concerns but comparing a graphical IDE to a
command line based text editor is rather dishonest.

~~~
vkanko
Excuse my ignorance, but last time i checked Atom and VSC are as much as text
editors as Vim/Emacs/Sublime/Nano(only Nano having no plugin support). Also
Vim and Emacs does have native GUIs.

------
stephenr
It surely is. The new desktop Skype is electron. why?

I can see why it appeals to front end web devs who feel the need to play at
writing desktop apps - but Microsoft of all places, where they have an
_existing_ native client, now decide to go backwards and use electron.

Makes sense I guess when you consider their whole revamp of the iOS app took a
useful business tool and tried to make it into an app teenagers use to share
photographs of their genitals.

Edit: On Mac at least, you _can_ still get the pre-Electron Skype.

Go to [https://www.skype.com/en/get-skype/](https://www.skype.com/en/get-
skype/), pick "Get classic Skype" in the blue button/dropdown combo thing.

You're welcome.

~~~
ezekg
I feel like the snark directed at front-end devs was a little uncalled for, as
if somehow they're lesser programmers. But I do agree that users of Skype (and
Slack) would benefit greatly from them ditching Electron and going native (and
my RAM would be a lot happier too).

~~~
stephenr
Not at all. I have great respect for front-end devs, just as I have great
respect for master builders. I just don't expect either of them to bake me a
wedding cake, or write me a desktop application.

The same snark would be directed at people thinking GWT is/was a good solution
for Java dev's trying to create web GUI's without understanding html&css.

