Hello! One thing I cannot possibly understand is how ElectronJS does actually resolve the problems created by other GUI frameworks. If I am correct about this, the primary “problems” many developers face when creating a GUI app are : ->Inconsistent looks across platforms (not native feeling). ->Writing UI for each platform is tedious and expensive.
Inconsistent looks across platforms First, why is native looks so important? The majority of apps today have their own distinguished look anyway. Native look is usually very simple or ugly and only suitable for small scientific or internal applications, not consumer users that expect colors and effects.
Also, JS + HTML + CSS doesn’t even fix that “problem”. HTML and CSS are native to browser, which is natively supported by the…
Hello! One thing I cannot possibly understand is how ElectronJS does actually resolve the problems created by other GUI frameworks. If I am correct about this, the primary “problems” many developers face when creating a GUI app are : ->Inconsistent looks across platforms (not native feeling). ->Writing UI for each platform is tedious and expensive.
Inconsistent looks across platforms First, why is native looks so important? The majority of apps today have their own distinguished look anyway. Native look is usually very simple or ugly and only suitable for small scientific or internal applications, not consumer users that expect colors and effects.
Also, JS + HTML + CSS doesn’t even fix that “problem”. HTML and CSS are native to browser, which is natively supported by the majority of devices already. So this approach gives browser native look, not OS native look.
On top of that, web apps GUIs are not standard as you’d expect OS native apps to look. they all look different as CSS allows high levels of costumization.
Writing UI for each platform is tedious and expensive Second of all, in my experience, writing one frontend for all platforms doesn’t translate as smooth as it sounds in practice. You will still end up with lots of config files for different types of devices and you’ll spend a lot of time debugging on each of them.
So, how does ElectronJS/JS/HTML/CSS fix all the problems described above, if they can be considered problems at all? All I see is a lot of technical debt because Chromium instances are expensive and the hardware suffers a lot from it. Also, if someone separates the backend and frontend as perfectly decoupled, can’t you just write a native frontend for each platform you’re aiming to deploy on? Wouldn’t that be easier because you’d know each platform’s limits instead of trying to do a jack of all trades that works decent on all and sacrifice optimization and maximum ergonomy?
Some things for the end I keep saying this, in 2010 I remember being able to do almost the same stuff on a computer as I am doing now. So instead of having an even smoother experience and better multitasking capabilities on new hardware, I feel like nothing has changed. It’s just like a person sells their small apartament and buys a big house but they start to keep buying useless stuff that fill up the space in the house like a hoarder. They will still feel like living in small space.
I bought myself a small old laptop with and i5 and 4GB of RAM and that little thing works like a rocket with Linux and other apps like LibreOffice for MicrosoftOffice and other third party clients. Just installing Windows and Discord would fill the poor memory of that small thing but with Linux it’s quite decent at browsing and multitasking.
I hope I didn’t speak non-sense but I am genuinly curious what do you think and if there’s something I can improve about my mindest. I don’t want to be a hater but I find JS’s commodity to be too bad of a tradeoff compared to the lost performance. I think it would’ve been better if at least we had a runtime environment like the JVM to run all those Electron apps instead of opening a Chromium instance for each. But even then, ergonomy would suffer on devices and I find it funny how even mid tier phones struggle with those apps from time to time when they should run blazingly fast. That doesn’t only affect user experience but things like battery life and more and more devices become obsolete, leading to more e-waste.