Windows: Most people use C++, C# (C Sharp), for development. This may include using/reusing some open source .NET libraries to make applications across all the windows ecosystem like Windows store, windows phone, windows desktop application.
Mac: On Mac, we have a clear abstraction of technologies we use to create applications. We have the "Cocoa" layer, which includes all the technologies we require to create the application user Interface and it’s used tother with Objective C programming language
For Linux you can have some flexibility and develop apps using C++/Java/Python
When an Electron application is started, it launches the main process. Within one application instance, there is always exactly one main process. This process has no access to DOM (Document Object Model) APIs, is windowless, and behaves a lot like a Node.js process
As soon as the main process has initialized, it is able to open windows. Those windows run in their own process and are referred to as renderer processes. In Electron, each web page runs in its own process. The distinction is important: Renderer processes have the familiar DOM with window and document objects, can create and render HTML elements, and have Chromium’s developer tools available, whereas the main process is really just a Node.js process.
In NW.js the main entry point of an application is a web page or a JS script. You specify this entry via package.json main property. In Electron, the entry point is a JavaScript script. Instead of providing a URL directly, you manually create a browser window and load an HTML file using the API.
On build process NW.js builds all Chromium; Electron uses libchromiumcontent to access Chromium's Content API
NW.js has built-in support for compiling your source code to protected binaries. Electron is packaging its applications with asar, which contains the applications' unprotected source code.
GUI library that uses the native GUI technologies of each platform