I’m starting to use my website for rants sometimes now. Please choose a category by scrolling down and choosing from the right hand side-bar if you want more valuable info.
That being said, on to the show.
Have you ever used electron before? You probably don’t know. Most people that have, don’t know unless they’ve encountered issues. Electron is a bloated framework that allows you to create JavaScript software as a full application (like an EXE file), instead of running in a web browser like JavaScript is designed for.
Instead of creating a new JavaScript run-time engine that’s been stripped down, they basically run the chrome web browser (chromium) disguised as an app. When you run one of these programs, you will see several copies of the same EXE running in task manager around 5 times or more. A full featured web browser will understandably run several “copies” of itself at once for holding multiple tabs. This makes the browser run more efficiently and also protects against crashes if one of the tabs you have open “performs an illegal operation” – LOL Windows 98. Essentially meaning that it performed an invalid instruction on the CPU – which is what Windows 98 was getting at when they say that. Anyway, in an application that is only running one instance and does not contain multiple tabs, there is absolutely no point in doing this. It shows that this group of programmers do not care. This is the least efficient framework in terms of RAM usage that I have ever seen. It also takes up a decent amount of drive space.
Take, for example, the program called balenaEtcher. This is a simple tool that allows you to install almost any operating system on a USB drive. Essentially, all it has to do is format and partition the drive, write the files, and write some type of boot loader to the USB so the computer will see it as a bootable system. It doesn’t contain any operating system files itself or anything – just the means to install your OS from a given source. Knowing this, it should be a very small program, however, it uses 184MB + more in the app data folder. That’s after I deleted the extra language files (which I don’t know why so much software doesn’t just ask you in the installer what language you want – instead it copies every single language to every system). 184 MB doesn’t seem like much today, so maybe you think I’m just being a hardass, well, let’s take another example. There is another program that does the exact same thing as balenaEtcher – it’s called Rufus. It uses 1.1 MB. And another called UnetBootin, it uses 4.7 MB. Rufus could fit on a floppy. That’s a factor of 167 times smaller than balena. Now you see the point?
On top of that, there is 0% reason why a program such as this should use a web technology like JavaScript. JS does what it does for web pages very effectively, but to use it for an actual application that performs ‘system’ level functions is asinine. I could understand if they wanted the convenience of a web interface or a canvas for performing JavaScript graphics, but this is a program with literally three buttons on the screen. It also bundles an OpenGL library with it cause we need a 3D engine to make three buttons. It could just as easily be rendered in WinAPI, QT, GTK+, or whatever for cross platform support, but they chose JavaScript. This shows that these people are web devs, not software developers. Does it work though? Usually. I have had it crash multiple times on Windows 7 though, when I was using the electrum bitcoin wallet which is based on electron. (BTW: In this instance it makes sense to use electron because a bitcoin wallet is more like a web application, but I digress.)
Say you are at a restaurant and you order food. The waiter brings you your meal, but it has all of the scraps left over from the kitchen. The real meal is there too, but it’s dispersed in the scraps. Would you eat it or send it back? Now let’s say those scraps become invisible, but you can tell they are still there. Do you still want to eat it? I doubt it. It’s the same thing with programming an EXE in JS. A lot of people just like to pretend that those scraps aren’t there. So what are you, a purist or a bum?
Take another example. There is a game called Shut In. It’s not a game worth playing IMO, but that’s not the point. It uses a JavaScript framework that is likely electron, but could be another similar clone. This game uses 196 MB of drive space and almost 500 MB of RAM with at least FOUR COPIES of it running. Not bad? But wait, there’s more; this game is smaller and MORE pixelated than even DOS games! The screen resolution of it is around 200×200 pixels. This was done on purpose to give it a retro vibe, which is cool. However, a game like this could be around 10 – 50 KB in size and be exactly the same thing if it were programmed natively. Even using the most modern proper tools, a game like this would be 1 MB. Just use AGS!!! Adventure Game Studio could produce the exact same thing in a couple MB and it’s EASIER than using JavaScript. I could understand programming a game like this in JavaScript if you wanted to run it directly in a web browser – that makes sense, but when you want to make an EXE, don’t use JavaScript. JS has gotten WAY too overrated. It’s a web language and should keep doing what it does best.
And not to harp on the person that made this, they probably don’t know any better.
Thanks for being such a source of insight. illplaywithyou
I’m always inspired by your words. hot nude cams
You have a gift for explaining things clearly. Best Adult Web Cams
I can’t wait to share this with my friends. What Is A Cryptocurrency
Your article helped me a lot, is there any more related content? Thanks!
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.