Electrons 'n stuff ...

Once upon a time we had big computers running programs, with lots of dumb green screen terminals hanging off them. Processing and logic was centralised on the server, the dumb terminals just handled the presentation.

Then came Windows, business logic and processing migrated over to personal computers and the central computer became little more than a glorified file server.

This was followed by the Internet. Processing and logic jumped back onto the servers and the presentation layer became something you viewed via a web browser. In principle we're back to where we started, just with bigger computers and prettier software viewed through a browser portal.

The remaining step to close the loop is to do away with the browser so we have native client applications talking directly to a remove server ... enter Electron.

Electron

At the moment most online applications are implemented as Web pages, and although this can be convenient, web pages are not as flexible and feature rich as native applications. I'm talking specifically about things like Facebook, Twitter, GMail and so forth.

Electron is a project aimed at the next generation of applications where the online browser based applications we use today become native applications in their own right, with very little effort with regards to conversion.

Fundamentally it's a NodeJS wrapper that lets us run Javascript programs on our local machines outside of a browser, while at the same time using Chrome as the application's User Interface.

Why?

Electron applications are a function of Chrome, so if you write an Electron application it will run on any platform that Chrome supports. (which is most platforms including Linux, iOS and Windows)

Your electron version of the application can be launched directly from the desktop, access notification messages, and sit in the tool-tray as an always-on background application.

As a local NodeJS application, it will have far more access to your local system than a Sandboxed browser application, so there is the potential for writing far more flexible and powerful applications.

The differences may seem subtle, but the differences in operation with regards to what you can do are impressive. Just to give you an idea, take a look at the apps currently available and the quality of those apps ...

Bear in mind these are all new, yet they're all looking pretty polished. The ability to produce polished cross-platform apps in a short time-frame seems to be another feature of the Electron model.

Random prediction :: 2016 will be the year of the Electron .. :)