1. 11
  1.  

  2. 35

    Focusing heavily on how it makes a robot computer feel, these posts ultimately neglect what will be the deciding factor in Electron’s success or failure: how it feels for most people to run Electron apps day-to-day.

    This is my favorite line because it doesn’t have any resemblance to reality. I nearly threw my tea at my laptop screen at the idea that people enjoy Electron apps especially the idea that they like those apps more than native applications.

    Slack is widely thought of as an application people have to deal with. Atom is an okay application, but when push comes to shove, they have to use native code to get decent performance. Basic things like resizing a window will make Slack drop frames. The writer must have a really low bar for what counts as an enjoyable application. I receive some great emails, but that doesn’t make my email client any better.

    I can speak for myself when I say Electron runs like a dream. On a typical day, I’ll have about three Atom windows open, a multi-team Slack up and running, as well as actively using and debugging my own Electron-based app Standard Notes. I’ll also have a bunch of other non-Electron apps opened or running, like Adobe Photoshop, three Terminal windows with 3–4 tabs each, Sequel Pro, Google Chrome with on average 4–5 tabs, Apple Mail, iMessage, Little Snitch, Dropbox, and iTunes/Apple Music.

    I also really enjoy this one because the long list of apps is made to sound like there’s a bunch of usage going on, but maybe this writer doesn’t realize how little consumption goes on in the background with these standard macOS apps when they’re “open” (Messages, really?). Photoshop also uses very little RAM if you don’t actually have anything open. This is also supposed to be bragging about using all of these applications on a computer with 16GB of RAM. That is quadruple the amount of RAM that most people use on a typical laptop.

    1. 11

      To those who run the slack desktop app, my question is… Why? Why not just use it in a web browser where it belongs? If people need you, they’ll find a way to contact you.

      1. 11

        The brilliance about Slack’s business is that it’s both a business application and an instant messaging platform. Both of those together create an evil combination where the people who need to use it are those who need to use it all day long.

        For any number of reasons, people generally like to be able to open/close browser tabs & windows without worry that some important business application wherein people expect a response from you within minutes (if not seconds) will be lost. This is especially true if you’re a web developer who will need to close all windows or restart the browser on a regular basis.

        Slack has just become too important in the lives of many (thus all the consternation about how terrible the app is) and using it as a separate application makes things a lot cleaner and simpler.

        1. 5

          Pinned tabs?

          Also does Slack support web push? If it does, you should be able to just close it and get notifications.

          1. 1

            Luckily, it doesn’t (I get enough notifications while I’m working, no need to spam me even more when I decide to focus and close the browser tab)

        2. 8

          I couldn’t find a way in the browser to be able to stay logged in to multiple slacks at once, so I have to run the desktop app.

          1. 6

            When you run things in a browser you lose really basic command-tab functionality in OSX

            You also have browser chrome to deal with , as well as all the browser UI cruft (don’t need to see that URL all the time)

            I think voice chat doesn’t work in Slack on the web either?

            I think some of this is solvable , but I haven’t ever found much reason to not just use the slack app that works

            1. 5

              You also have browser chrome to deal with , as well as all the browser UI cruft (don’t need to see that URL all the time)

              Not necessarily. With Chrome you can create chromeless “applications” from any URL. This is what I do with Spotify, Outlook 365, and HipChat. Spotify in particular is much faster that way than “native.”

              1. 2

                oh is this possible? How do you do this?

                1. 4

                  On Windows it’s Menu > More Tools > Add to Desktop. Then make sure that you check “Open as Window.” Voila! Your web page is now a standalone application!

                  1. 3

                    Just had a look at Chrome on Mac OS and couldn’t find anything like this.

                    I’ve been using Fluid to turn web apps into standalone apps, works quite well (aside from the resource usage of course).

                    1. 2

                      Yeah. A little searching shows that option is only available on Windows and Linux, not Mac OS.

            2. 6

              Why not just use it in a web browser where it belongs?

              Judgy judgy! :)

              I don’t particularly like running “applications” inside web browsers because my browser is a dynamic place. I open tabs, close tabs, move things around etc all the time and frequently need to restart. In short, for my use case, browsers make AWFUL persistent application platforms.

              1. 4

                I used to use Slack in the web browser. I’m on Linux and wanted to try to use Slack’s voice call features, and the browser version wouldn’t let me select my speaker/mic device, so I couldn’t use it.

                Then I heard there was a Slack desktop app, so I thought, hey maybe that will work. So I tried that. But I had the same problem.

                I never switched back to the browser version because there’s really nothing that has made me want to switch. It’s using about 700MB of RAM right now, and that feels pretty par for the course to me. My gmail tab is using just as much. As a bonus, the Slack desktop app uses my notification daemon that I have running (dunst), which lets me very easily dismiss or recall notifications without touching the mouse.

              2. 5

                Photoshop AND Sequel Pro opened at the same time?! This just reads as someone enumerating the apps installed on his laptop…

                1. 3

                  This is my favorite line because it doesn’t have any resemblance to reality. I nearly threw my tea at my laptop screen at the idea that people enjoy Electron apps especially the idea that they like those apps more than native applications.

                  Clearly native applications are better in some respects (they may be faster, more conformant to local UI norms, etc.)

                  However the key question is - Is having a cross platform electron app to solve a particular task better than not having that niche served at all?

                  1. 4

                    I was responding to the idea that the writer threw out there that Electron may use a lot of resources, but it’s in service of making a better UX & UI for users. He didn’t actually elaborate on that probably because there is no way to defend that position.

                    It’s a lot more easily defensible to talk about the business side of web apps rather than anything technical. In the particular case of Slack, that company has plenty enough money to completely rewrite their web app as a set of native apps, but why would they when everyone is already locked in?

                    I also like that he used some strange math to say that his basic note-taking application would cost $500 when, last time I checked, not even the most complicated native applications run by the smallest teams that would need the most money actually charge that much money for their apps.

                    1. 1

                      not even the most complicated native applications run by the smallest teams that would need the most money actually charge that much money for their apps

                      I wish! Have you seen what Autodesk charges? And they’re subscriptions

                    2. 3

                      To which the obvious response is: does any electron app serve a unique purpose?

                      1. 2

                        The same question could be asked of any given native technology. This is almost but not quite a troll :)

                  2. 26

                    I ought to be more concerned with where the trend in memory is going rather than where it has been.

                    Having heard (and sometimes used, whenever I wanted to do something really cool or was just feeling lazy) this argument for my entire 30-year career, I feel the need to debunk it: If you apply this argument habitually, the hardware never catches up! You’re always designing for where it’s going and it never works where it is. And now that people have stopped upgrading to 2X performance every 18 months, and are even upgrading to reduced performance machines (think tablets), that applies more than ever.

                    1. 12

                      Reminds me of the endless blog posts when the new Mackbook Pro specs came out.

                      I’m a pro, so I need at least 32GB of RAM!

                      I can see how that could make sense if every single application you run (text editor, note-taking app, email client and IRC) is a standalone JavaScript VM. Plus, this quote really gets me:

                      But advanced development machines of today are the entry level computers of tomorrow. Electron’s dream world would be one where every computer user had a luxurious amount of ram. But I think this world is fast approaching.

                      So you’re using some faith in a future that you sort of made up (the author doesn’t seem to understand the kinds of trade-offs involved in throwing in more RAM at everything) to justify objectively bad programming practices? That’s evil like littering the street with garbage because some day machines will be able to pick that up

                      1. 3

                        objectively bad programming practices

                        Objectively bad in what way in what situation? The whole premise of the article is that it might be objectively bad when your primary target is current hardware, but be just fine targeting future hardware. I’m not saying the article is right. But “objectively” is not the same thing as “universally.”

                        1. 4

                          Fair point.

                          The author is advocating purposely ignoring an entire dimension of constraints by claiming to be relying on future technology, especially when the burden on delivering such technology is not even on you.

                          We give Electron a lot of crap because of memory, but that’s just the more expensive one if you’re in the first world. Visual Studio Code is >200MB uncompressed and uses a ton of CPU. I don’t know about Atom, but I heard it’s worse.

                          Every profession’s “dream world” is one where there’s fewer to none constraints, but that’s no good reason to ignore them.

                          1. 5

                            I agree with most of your points regarding the original article. However…

                            Visual Studio Code is >200MB uncompressed and uses a ton of CPU.

                            The disk space use is about half that of JetBrains’ WebStorm, which is probably it’s closest competitor. And it does not use a ton of CPU. During very heavy usage, it consumes about 5% CPU on my machine. WebStorm on the other hand would regularly use 50%.

                            The specific issue you mentioned was unfortunate, but very uncharacteristic. VS Code is one of the best performing pieces of software on my machine.

                            1. 4

                              VS Code is one of the best performing pieces of software on my machine.

                              My understanding is that this is only true because they sunk a lot of time into reimplementing a bunch of the parts of Electron which gave them performance problems. Doesn’t fare so well for the “electron gives you an easy way to produce efficient desktop applications” argument.

                              1. 2

                                That may be true. I don’t have any commitment to Electron being terrible for performance or not. I just hate to see a good-performing piece of software misrepresented as a resource hog.

                                1. 2

                                  they sunk a lot of time into reimplementing a bunch of the parts of Electron which gave them performance problems

                                  Which ones? Any source supporting this claim?

                        2. 8

                          I’ll double down on what you’re saying about every 18 months where even people creating chips say Moore’s Law is effectively dead either now or soon. They’re doing heterogenous architectures with more threads, HW offloading of specific functions, and so on. This means the developers can’t be lazy anymore expecting the next hardware to cover up their incompetence or apathy.

                          The OP is right a bit, though, with memory where maybe they can on that as costs will eventually come down for at least what can be produced now. It happens as the equipment/I.P. gets paid off and suppliers bring in shiny, new things.

                          1. 6

                            Memory uses battery too, you know…

                            1. 2

                              I was just addressing his point. That should be factored in though.

                        3. 14

                          Electron is not good for performance, but it has a monopoly on cross platform, pretty and easily bundled applications. The monopoly is hard to break because people already know HTML.

                          1. 14

                            From the anger-inducing comments:

                            Also, I just checked and you can find more than one laptop with 16gb RAM and i7 processor for less than $1000 USD on Newegg.

                            Meanwhile, I purchased for a relative a Lenovo B50-10 with 4 Gigs of RAM and a fuckin’ Pentium for 230€.

                            1. 5

                              I purchased for a relative a Lenovo B50-10 with 4 Gigs of RAM and a fuckin’ Pentium for 230€.

                              Whoops, better return that new laptop. I’ve heard that developers only develop for laptops that have at least 16 gigs of RAM.

                            2. 9

                              Is it Electron, or is it Slack? Because whenever I see developers enjoying bashing Electron, which is definitely the pitchfork-bait of our time, the complaint seems to be really about Slack. I’d say it breaks down to

                              • 85% Slack
                              • 10% Atom (usually someone mentions that VSCode is a text editor also built on Electron, and says that it performs a lot better)
                              • 5% Spotify and everything else

                              No-one seems to complain that Github Desktop is horribly slow, but there must be a decent number of people out there using it. Spotify is barely mentioned considering that there are probably as many (or more) people using it all day, every day, than there are using Slack. Like Slack it displays a lot of lists, and graphics. And recently someone was claiming that Slack runs the development build of React in production, which seems like it could be a problem…

                              An empty Electron project consumes 40mb of RAM on my 2013 Macbook Air. Right now Spotify is using 104mb, and I’ve had it playing for hours. In the meantime, WebStorm and PyCharm are consuming 1.5gb each - by far the most of any applications I have running. PyCharm only has one small project open. I have to wonder what on earth they’re using all the RAM for. My conclusion: The JVM sucks!

                              1. 5

                                It is both. Empty project consumes 40MB of RAM and that doesn’t strike you as unreasonable? I ran desktop publishing software on Amiga 500 in less than 1/80 of this.

                                I think it is likely that I will choose to use Electron within next year at the company I currently work for with perfectly valid business reasons for its use. But I certainly will not pretend that such solution is not technically hacky and very wasteful.

                                I agree that Electron doesn’t have a monopoly on being wasteful.

                                1. 4

                                  Empty project consumes 40MB of RAM and that doesn’t strike you as unreasonable?

                                  Well, it’s empty in that it’s rendering a single page React project that says “Welcome to React” on the screen. And I have the React developer tools installed, too. 40mb of RAM is less than 1% of my 8gb. Sure, it could be done with a lot fewer resources in a native app (shout-out to Sublime Text for it’s stinginess!) But less than 1%? I just don’t really care about that level of usage. Dropbox uses a lot more, and I don’t even know what it’s doing.

                                  As for Slack, they must be aware of these complaints by now. It’s hard to imagine they don’t have people at least looking into it. I imagine we’ll see improvements in the next few months that lead to less resource usage, and snappier performance.

                                  1. 2

                                    But less than 1%? I just don’t really care about that level of usage.

                                    and yet a moment before you shouted out to Sublime Text indicating that you do notice that level of usage.

                                    Performance matters.

                                    1. 2

                                      No, I noticed Sublime only because I was looking through Activity Monitor seeing what apps were using RAM. I thought that compared to PyCharm (which admittedly does more stuff) it was pretty low on RAM usage. But they both perform just fine. If I hadn’t looked I wouldn’t have realized.

                                      Also, RAM usage and performance are not the same thing.

                                2. 1

                                  Re 1.5GB

                                  The reason might be because it’s a native app. One running on a Linux distro they like running on an x86 emulator running on JS all with window manager set up to keep app full screen. You just cant see the extra layers.

                                  They swear it was a great portability solution for the app they already wrote for that one distro. No need to maintain several versions of your native app when you can containerize it for multiple platforms in same browser. Really efficient for cash-strapped startups targeting Linux market snagging people on side who use inferior platforms.

                                  1. 2

                                    Sorry, I’m struggling to parse your post. I’m not sure what any of this has to do with Linux or x86 emulation, and I’m not sure who “they” is. Are you saying that JetBrains’ IDEs run inside Linux VMs? I thought they were all Java (or at least JVM-language) applications?

                                    1. 1

                                      It was just a joke. I thought this was about Electron applications that were all bloated. So I just ran with it. Maybe a big miss on my part.

                                3. 8

                                  Uh, has the author seen the trend of RAM prices lately? DDR4 is nowhere near as cheap as it used to be.

                                  The implication of this (and many other articles) is that Electron is inevitable, there’s not enough money, and they need to launch simultaneously on six platforms at once, oh, and, most importantly, everyone wanted to write JavaScript. Why not slow down, think a bit, and ask, “maybe we should launch on one or two of the biggest platforms our target demographic uses, and absolutely nail them?” Maybe also take a hard look at your domain and figure out what you need an all-star dev for, and what a more junior one would be fine with.

                                  Also, I really, really dislike the idea that software development consists of choosing the tools you want to use and then just forcing it to work, whether that’s from a social standpoint (Medium articles), or a technical one. It’s not about what you want to use, it’s about what solves the customer’s problem best.

                                  Edit: also, the author doesn’t need to justify himself to anyone. Just use Electron and move on. It’s an uninteresting decision, really, and they don’t need the Internet’s validation.

                                  1. 7

                                    Right, but Electron isn’t the only way to do this, and no, not everyone has a “luxurious” amount of RAM or even will in the foreseeable future. Most laptops that have enough RAM and the battery life to back it are prohibitively expensive.

                                    1. 4

                                      Isn’t this why we were supposed to use Java?

                                      1. 7

                                        Java: the language failing to deliver the capabilies Niklaus Wirth had in Pascal/P in the 80’s. And on many fewer than his 70+ supported architectures. And with many more security vulnerabilities.

                                        Seriously, I wish the Juice project took off in place of Java. We’d be running Oberon programs in our browsers. Screw Java.

                                        1. 2

                                          Does Java really solve all of these problems?

                                          1. 2

                                            That was the dream, right?

                                            1. 2

                                              But I don’t think Java is nearly as well-suited to UI design as frameworks like Electron are. Performance and portability, sure, but UI… not so much.

                                              1. 1

                                                Java is a language, not a framework. There have been many cross platform frameworks in the past. It just so happens that Electron is better. Probably because UI designers already know the tech from their web experience.

                                                1. 3

                                                  I was referring to Java the platform (i.e., the JVM) rather than Java the language. The best solution to cross-platform UI design we’ve yet found is web technologies, not the UI toolkits that have been developed on the JVM (or any UI abstraction layer, such as Qt or GTK+) so far.

                                        2. 2

                                          Funnilly enough, my 2011 Macbook Pro has 16Gb of RAM, the current Macbook pro in 2017 has 16Gb of RAM. So much for today’s top specs are the entry level machines of tomorrow.

                                          1. 1

                                            Apple have been roundly condemned for staying on low power ram - every other major manufacturer has a 32 or 64 option.