6 ms·
It comes down to difficulties of getting a team together that can implement cross-platform software. Shipping native implementations is more than quadruple the
by pen2l 4y ago
It comes down to difficulties of getting a team together that can implement cross-platform software. Shipping native implementations is more than quadruple the work and cost as compared to shipping with Electron, which is reliably cross-platform and doesn't need you to gather programmers who can pull off native work, not to mention the complications in communication and management that arise after headcount of a group gets larger. There are now alternatives to Electron (Tauri/Rust and Wails/Go) and some Electron projects are starting to transfer over (like 1Password -- you can really feel difference) but it'll take time for the ecosystem to mature and become more attractive than Electron for the average project.
But right now, Electron remains a solid choice if you want to ship cross-platform desktop software without overextending on budget and time. Moreover, it's possible to make Electron apps that aren't terrible if they're optimized enough (Discord, VSCode, etc.).
PDF software is a different ball game as PDF is a behemoth of a specification. Did you know you could envelope 3d models within PDF files? Obviously a stripped down implementation (which you should use, if you don't require the fancier parts of PDF) will be snappier.
- kaba0 4y agoDid you just list the advantages of web tech in the first half and then called PDF spec a behemoth? :D Actually, PDF is not that bad at all. Sure, it has gotten some additions over the years, but even those are not actually too foreign to the original design.
- pen2l 4y agoAt least webtech has some excuse for being a gargantuan tarantula and having its legs everywhere, PDF software is supposed to be basic document software but overreaches.
- rayiner 4y agoThe slowness seems to be from the UI. PDF engines, except pdf.js, are very fast. On my Mac Mini MuPDF can render 60-100 pages per second, which means for a typical PDF you don’t even have to cache more than a couple of pages in memory at a time. Emacs (pdf-tools) uses poppler, which is slower, but still can handle scrolling through 300 mb PDFs no problem. And the Acrobat engine itself is fast. Prior to Acrobat DC it ran very smoothly on old hardware. PDF has a lot of features, but it’s not complicated. If your PDF doesn’t contain a 3D model, that’s just some code that takes up room in the library but probably doesn’t even get paged in. A PDF is just a command stream, and the commands for drawing text are straightforward: https://www.oreilly.com/library/view/developing-with-pdf/9781449327903/ch04.html https://www.oreilly.com/library/view/developing-with-pdf/978... As to cross platform software, what about Qt, or GTK, or WxWidgets? There isn’t a single decent Electron app. Even VSCode uses CPU sitting there doing nothing. It’s a freaking text editor, what’s happening in the background?!
- pen2l 4y ago> PDF has a lot of features, but it’s not complicated. I'm not sure about, Acrobat reader in particular is very complicated, I'll rehash a famous old reddit comment -- Acrobat doesn't just read PDFs, it's a mail server, document lifecycle management system, DRM client, full-fledged document tracking system, it can have forms, it can gather statistics for your docs when you share them, it has audio and video playback. The manual is a couple thousand pages. Adobe's proposition to businesses is "You want a complete content tracking system? Wanna be able to effortlessly conduct surveys? Get next-level telemetry data from your users? Have we got the thing for you... the best part is all of your clients already have it installed!" So good on you for ditching Adobe and not enabling this bull, SumatraPDF/emac's pdf-tools is perfect. Regarding native GUI toolkits, they work but they're more work than Electron to deal with. Secondly, the big thing that us nerds keep failing to recognize is that software needs to be easy to use for grandmas and grandpas, part of that means having consistency in UI for users across the board from one system to the other. See how Zoom is nearly identical when using on iPad or Windows 7 or even Linux? Couldn't pull that off with GTK. I think with Qt you can modify your widgets quite a bit but you still don't have control over the minutiae of UI like you do with Electron. Don't get me wrong it is still the wrong choice many times; the abomination that is MS Teams and Spotify is a flagrant violation of good taste and should be set on fire and nuked out of the fucking orbit, it is a heinous crime especially for big companies with the means to arrange large teams to build and deploy apps made with non-WebView-based frameworks, but for small shops I don't see any issue with Electron's use. VSCode launches instantaneously on my M2 Macbook Air. Zoom works flawlessly, along with a host of other Electron-based apps. I don't care too much if it's using some CPU here and there if I can't discern any slowness. Anyway, apps made with Tauri are much better in terms of CPU and memory usage, 1Password moved from Electron and Tauri and I'm certain more will follow and the next wave of desktop apps will surely be speedier now that Electron's slowness has become a bit of a meme.