the case for electron.js
This is a document I wrote for myself when I was looking for a software development platform to replace Delphi for implementing large business applications. I was interested in Electron because it offered the possibility of yet another area of development where TypeScript could be used. I like the idea that a single language (TypeScript) could be used as a standard in developing business applications for all the major places where code can run: web servers (node.js), web browsers, mobile apps (react native), and now desktop apps (with electron).
- apps look good and behave the same way on all OSes. (Ex. VSCode, Spotify¹ , MS Teams, Slack)
(¹Spotify doesn't actually use Electron, but it's based on the same technology.)
- can share expertise and code libraries with front-end web developers as well as back-end developers.
- all tools in the development stack are open source
- large footprint: every app requires the entire Chromium executable to be deployed with it (50mb for a Hello World app!)
🙂 however, business apps that do anything useful are going to be large no matter what language / development platform they are written in, so only small apps would suffer from this.
🙂 however, hardware and network communication have gotten so fast that typical business applications no longer suffer from sluggish interpreted language UIs. (Look at the success of the other interpreted or semi-interpreted environments used in business: Java, .Net, Python)
- non platform specific UI: apps on all platforms look the same so the user experience will be somewhat awkward to a user used to working with native apps.
🙂 however, tweaks for each target platform can mitigate much of the awkwardness. (ex. putting Ok/Cancel buttons in the right order, implementing standard keyboard shortcuts for the target platform, and providing a clean look to the UI with any platform specific adjustments.)
- precarious development stack: the technologies needed to develop and deploy an Electron app are made by numerous groups of developers, companies and organizations. It is easier to understand the big picture when one company like Microsoft or Oracle provides most of the development tools and processes. Bugs and security flaws in downstream libraries can cause major problems.
node-ipcpackage author's deliberate malware addition and the
colorspackage author's deliberate sabotage. | -- updated Apr. 19, 2022
- no universal solutions: I mean AT ALL. Each and every thing you’ll want to do has lots of different ways to do them. Having lots of different technologies, loads of differing opinions, and having heaps of outdated and deprecated ways of doing things posted on-line makes development in this space particularly vexing.
😐 All I can say about this is that it does offer a lot of flexibility--but yea, it’s rough.