![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
- 640kb,
- apps,
- dos,
- electron,
- javascript
Very brief (promise!) ramblings on application bloat
My #1 annoyance these days, because it is so egregious, is Electron apps.
I guess because the only language some programmers know is Javascript, of which I know little but what little I know places it marginally above PHP in intrinsic horror.
So people write standalone apps in a language intended for tweaking web pages, meaning that to deploy those apps requires embedding an entire web browser into every app.
And entire popular businesses, for example Slack, do not as far as I can tell have an actual native client. The only way to access the service is via a glorified web page, running inside an embedded browser. Despite which, it can't actually authenticate on its own and needs ANOTHER web browser to be available to do that.
Electron apps make Java ones look lean and mean and efficient.
Apparently, expecting a language that can compile to native machine code that executes directly on a CPU, and which makes API calls to the host OS in order to display a UI, is quaint and retro now.
And it's perfectly acceptable to have a multi-billion-dollar business that requires a local client, but which does not in fact offer native clients of any form for any OS on the market.
It's enough to make me want to go back to DOS, it really is. Never mind "nobody will ever need more than 640kB"... if you can't do it in 640kB and still have enough room for the user's data, maybe you should reconsider what you are doing and how you are doing it.
no subject
Oh, gawd. Now I've said it, someone will think of writing it. Edit: NodeOS (https://github.com/NodeOS) uses a Linux kernel, and, presumably, device drivers. Its userland is all Node.js, but I was thinking of a kernel in Javascript.
no subject
Setting aside your invocation of eldritch horrors with alacrity...
Is it just me or is it very sad and rather worrying if only performance-critical stuff is being written in proper compiled languages?
no subject
The last time I wrote anything large in a scripting language, it was bash, because I wanted to get better at using it and all the work was being done by UNIX find and cp anyway.
no subject
no subject
Hard agree. Sadly, I don't always get the option.
Bizarrely enough, in my current role, one of the limiting factors is not file format support, but clipboard format support.
So either I can hand-write raw HTML -- ew -- or I can write in something easy that I can copy and paste as rich text.
So far that seems to leave me 2 main choices: MS Word, not ideal as I am on Linux, or Markdown.
I've found 2 apps that handle Markdown well, give me a live preview, and can output in a format my job's tools accept. :-)
Both are Electron things. :-(
no subject
no subject
Luckily I very rarely have to use Teams now... a former role was MS-based (to my horror) but these days it's Google stuff.
But I use Skype all the time to videocall my mum, and the MS rewrite in JS is appalling. It's so sluggish it's barely usable at all... and they dropped support for older OSes, including older versions of iOS, which means she is now on her fourth iPad. Just to support Skype.
MS seems to be awful at JS. Google, perhaps unsurprisingly, relatively good at it.
no subject
no subject
They were and are.
IIRC this is all due to embracing Android and wanting a common code base between Windows, Mac, iOS and Android apps. :-(
I would have thought they'd have been better employed fixing .NET across all of the platforms, and writing in that, but noooooooooo...
Apparently, according to a HN comment to my post that this is copy-pasted from, there is a little more to Electron than it being a Javascript app. It is entirely possible to have native Javascript apps that target native APIs. GNOME Shell is one.
The real problem isn't JS, it's frameworks such as Node. It's not that Electron apps are written in JS, it's that they are written in JS that targets Node or other web-centric frameworks, and that's why they have to embed an entire browser.
I need to learn more about this. :-(
no subject