I am not understanding what all the hype is about "Electron". What does it bring to the table that I can't code myself? So many apps are based upon Electron.
> What does it bring to the table that I can't code myself?
The ability to create reasonably good-looking cross-platform desktop applications using Node.js. Obviously Electron is not much use to you if you're already experienced in the native development kit of your platform, but if your main expertise is Node.js (which is the case for an increasing number of developers), Electron is quite handy.
I am a person who always wanted to develop native desktop applications, but ended up developing for the web instead because the barrier to entry is lower.
Now I have the opportunity to do what I actually wanted to do.
I think this marks why Hacker News is biased against Electron. I really appreciate your eager to develop desktop applications, but Electron apps are _not_ native. It brings web technologies to the desktop. This is clearly an advantage for web developers, as it, as you just said, lowers the barrier to entry. Custom UIs are in my opinion also much easier to develop using Electron - this is exactly what HTML/CSS/JS were designed for. But these apps don't fit into the operating system. They use few of the available APIs, they are restricted to a common layer of abstraction, which means they can only use features available on Windows/OS X/Linux and none of the platform specific features, they are always "statically linked" (what I mean is every Electron app ships it's own libraries and the whole framework itself), etc.
As you said, Electron clearly has its advantages. But I appreciate the effort when a developer creates an application using the target platform's native language, frameworks and usage patterns (in this case, Swift, AppKit and the Cocoa APIs). The result is, in my opinion, clearly worth the effort and a wonderful piece of software to use.
Technically speaking, HTML was designed for reading and sharing scientific documents, CSS was meant for styling documents in minor ways, and JS was slapped on to compete with web "web applets" made by Microsoft and Sun.
Technically speaking, none of what you wrote is relevant today. (To pick a major nit, CSS was always meant to be able to re-skin a site completely, hardly "minor".)
Web development has ballooned into a capable, flexible and highly complex beast. It is evolving (understatement) but it can be used to produce very complex apps now, witness the Google productivity apps.
All that said, true native apps provide a superior user experience if done well.
Now try to share that program with your Windows- or Linux-using friends.
That sort of gets to how I feel about Electron apps. If you don't like Electron apps, then just pretend any app made with it isn't available for your platform, as would likely be the case if they were not using a cross-platform library.
> Now try to share that program with your Windows- or Linux-using friends.
There is always the Qt5 option, although I'd be curious to see how much overhead (latency, battery consumption, etc) Qt brings over a program built directly in Cocoa.
The comment you replied to explains the problem with your logic: the easy creation of apps using Electron exposes nontrivial security issues that will likely not get caught because speed is a priority.
I was about to say, "not that many apps, all I can think of is Atom and VS Code", but I was surprised by the size of this list: http://electron.atom.io/apps/
I've never used it, but it sounds potentially great for people who do a lot of web development. It's a frictionless way for them to share code and other assets between native(isher) desktop apps and web projects. For web developers who don't do desktop development at all, it's also a relatively frictionless way to ship a desktop app.
If you don't need a cross-platform UI toolkit, and/or don't need to (or want to) use web technologies in a desktop app, it wouldn't be a net positive. Obviously there are downsides in terms of performance and not having a native UI. The upsides depend on your requirements, which range from 0 to >= the downsides.
The company I work for has an Electron app and the advantage of it is that we can take our existing Node.js-powered online product and package it up for desktop/offline use with just some minimal work. We don't have to maintain two completely separate codebases.
Curious, what do you have against Electron built apps? I feel like the last few apps I've used that were built on Electron actually worked quite nicely. Wondering what you found bad with them...
Their UI feels alien on every platform. The startup time, memory consumption and general performance is subpar to native applications.
Generally, I feel like developers who make software for platforms individually care more for user experience. Like this app, for example, it feels polished, uses the native OS X UI elements and performs super fast (much due to Swift in its nature being faster than JavaScript).
I certainly see the point and some use cases for Electron, however I dislike the recent trend of reinventing the wheel of every application using Electron.
I'm developing an Electron application and I have to agree with you. Although I do not care much about memory consumption, the startup time on a Windows laptop I have sucks too much. Also, I've been doing web development for the last 5 years but web frontend tools are such a PITA even comparing to desktop crossplatform tools, let alone platform specific frameworks..
I think it's a pretty nice option when you don't have the time and resources to develop native applications for a few platforms, or for enterprise apps that are mostly a web front end with a few nice to haves.
As a JavaScript developer, I use and don't dislike Electron apps (currently running Atom!) but one thing I do have to say is that they use a lot more battery power and CPU. As much as I like Feross' work, I tried using WebTorrent Desktop[1] but after some hours of running it my Macbook's fans turned on. To me, a torrent client should always sit quietly in the background taking up as little resources as possible.
Electron is the current fad for web devs creating desktop apps, so he's saying its a nic change to see someone actually implement a desktop app actually using the native desktop toolkit and metaphors and not what ever ill conceived platform alien system they've developed.
I thought that was some "funny" ancient app with technology from way back when. I know nothing about the Apple ecosystem and did not really read much of the text, but that screenshot did kind of look like the past.
I thought this was an official app for a moment. Saw this:
"The app has a powerful search feature. When you first launch the app, It indexes the videos database and downloads transcripts from ASCIIWWDC, so when you search, not only will you get search results from session titles and descriptions, but also from what the presenter said in the sessions."
And was all pissed off.
"Damnit, Apple, how about you do something similar for the App Store?!?"
I mean in a general sense. I'd pay for all sorts of things I currently get for free — writing, art, software, videos — if it was as easy as clicking a button. Getting out my wallet, entering a credit card number, and going through the payment steps is too much work for a quarter.
Pretty cool. I've been wanting something like this for a bit sine I've been wanting to make an app and this coming up so I can keep in touch with the new technologies being announced . Thanks!
Electron based app takes way too long to start up. Yes, I like visual studio code etc. But I hate its startup time so for quick changes I just use sublime text or vim.
A well defined interface, designed specifically for the platform the author targeted. Major props to the author!