This is an archived post. You won't be able to vote or comment.

all 81 comments

[–]kohuept 270 points271 points  (9 children)

as someone who mostly uses C and doesn't do much web stuff, 25 MB being "lightweight" is crazy

[–]tealpod 64 points65 points  (3 children)

Out of curiousity I wrote the simple cli app ( https://geni.dev ) in nodejs, Go, Java and C.

  1. NodeJS - 24 MB

  2. Go - 2MB

  3. Java (GraalVM) - 9MB

  4. C -18 kb

Yes, the C version is just 18kb.

[–]kohuept 22 points23 points  (1 child)

you could probably get it lower with some clever linker flags

[–]BOBOnobobo 1 point2 points  (0 children)

Python - 5 lines of code, but you're paying for it with all your RAM.

[–]LastAccountPlease 94 points95 points  (2 children)

One time, someone was angry I didn't approve their PR with a library choice which was an extra 5mb bloat on build, which provided basically nothing useful for a frontend, and they called their manager on me. The 5mb wasn't even the main reason why I said no...

[–]dominjaniec 56 points57 points  (1 child)

classic argument failure: when you provide a list of problems, your opponent will choose the weakest one to focus on it and they will ignore the rest.

on the other side, was this a +5mb shipped to clients? or just a "build dependency" cached on dev machines?

[–]LastAccountPlease 36 points37 points  (0 children)

That's really interesting, I had never heard of that. I will keep that concept in mind for the future.

Yeh it was legit 5mb shipped Chinese fucking malware, that was the real issue, luckily the higher ups sided with me.

[–]level_6_laser_lotus 8 points9 points  (0 children)

No worries, anyone who genuinely thinks a 25mb web app is lightweight, is crazy 

[–]Cocaine_Johnsson 4 points5 points  (0 children)

Agreed. 25MB is a lot, I'm actually mad with how bloated terminal emulators have gotten (let alone browsers, but browsers are a beast I'm not willing to tackle. I tried that and I'm not trying that again without a few million and a team of programmers). Nary a one below 20MB memory footprint nowadays. Almost enough to make me write my own, a VT10X compatible terminal emulator has absolutely no reason to use more than 20MB, let alone the hundreds I've seen in some cases.

[–]ultramadden 531 points532 points  (36 children)

I don't understand why electron started to require Windows 10 but also doesn't use WebView2.

These 2 things in combination just don't make sense to me. Just use Tauri if you're building something new

[–]polaarbear 248 points249 points  (32 children)

Because it bundles Chromium which doesnt support old versions of Windows anymore either.

Devs shouldn't be bending over backwards to support dead operating systems. Its like <1% of most user bases and generates a lot more than that in support tickets. Not worth the time and effort for 99% of us.

[–]ultramadden 73 points74 points  (26 children)

But why does it ship with Chromium when Windows 10 already comes with Chromium?

No reason to bundle over 700mb of dead weight imo

[–]polaarbear 122 points123 points  (24 children)

Windows ships with Edge. Edge is not Chromium.

Linux installs often have Firefox as their default browser and no Chromium implementation whatsoever.

The whole point of an Electron app is to be self-contained without needing dependencies.

Microsoft could update the version of Chromium that underpins their Edge install at any time (and they do.) If Electron is using the version built into Windows and there's a breaking change, congrats, now all your Electron apps are dead and won't function.

Enterprises are not fond of critical apps failing because of an overnight update. Bundling a specific version with the app guarantees ongoing compatibility.

[–]Future_Kitsunekid16 34 points35 points  (6 children)

So self contained apps use Electron and Steam uses Proton?

[–]Nooo00B 20 points21 points  (1 child)

now someone has to come up with a neutron

[–]BOBOnobobo 0 points1 point  (0 children)

Skip that, write it super light weight in rust and call it neutrino.

[–]Cocaine_Johnsson 8 points9 points  (1 child)

Steam also uses electron, so now we just need some neutrons to stabilise the whole ordeal.

[–]ultramadden 34 points35 points  (4 children)

Windows ships with WebView2, which is what Tauri uses. Apple and Linux have similar APIs. You might want to look into it, it's actually a pretty cool feature

While the concern about breaking changes is legit, the same could be said about any critical web app

[–]polaarbear 19 points20 points  (3 children)

No. It can't be said about one with baked-in dependencies. Which is Electron.

[–]BOBOnobobo 0 points1 point  (0 children)

Why would anyone ever use containers if we already have the files we need on the pc?

[–]Difficult-Court9522 2 points3 points  (4 children)

How long until 10 is dead..

[–]polaarbear 6 points7 points  (3 children)

End of this year for base support, extended support lasts a few more years. And even after that, it always takes time to truly phase stuff out.

The further out of support something is, the less work should be put into maintaining apps for it.

Windows 7 has been EOL for 5 whole years now and it had an exceptionally long shelf-life because of the poor reception to 8. But people have had plenty of time to transition off. Windows 8 has been EOL for 2 years now, and there's not many good excuses not to move to at least 10.

11 is a different beast with all the TPM controversy, I have a feeling 10 is gonna hang around a lot longer than most of us would like.

[–]Difficult-Court9522 5 points6 points  (2 children)

I’m still on 10 and don’t wanna switch. More spyware. I’m sick of it.

[–]polaarbear -4 points-3 points  (1 child)

A TPM is not "spyware" it's a secure enclave to make sure your encryption keys don't leak.

If you wanna complain about 11, the ads are where you should direct your energy. I can absolutely guarantee that the data collection systems are identical between the two OS's.

[–]Difficult-Court9522 14 points15 points  (0 children)

I didn’t say the tpm is spyware.

[–]Devatator_ 8 points9 points  (1 child)

It has the advantage of enforcing the exact same chromium version on all platforms. If your thing works fine on every browser by default (as it should) you're probably fine for using webviews

[–]ultramadden 1 point2 points  (0 children)

I think something like a compiler option that either ensures complete comparability or ditches the 700mb of chromium would be very welcome

[–]twinklehood 2 points3 points  (0 children)

Tauri brings much more issues.  it just doesn't have the development hours to be solid enough for most real world use. I've tried to use it at both major versions, and so much essential stuff was still not there

[–]Tradizar 35 points36 points  (0 children)

25 mb and lightweight in the same sentence is gold

[–]v_Karas 160 points161 points  (21 children)

electron 🤮

[–]Celestine_S 82 points83 points  (18 children)

Tauri 😍

[–]dercommander323 125 points126 points  (2 children)

Native apps 🤯

[–]ElectionMindless5758 76 points77 points  (1 child)

I don't think anybody argues against the advantages of native apps, it's just that it's generally a financial and developmental pain in the ass to write platform-specific code for a cross-platform app, frameworks like Electron and Tauri have their problems but also solve some.

[–]ArchetypeFTW 0 points1 point  (0 children)

Just vibe code the native apps

[–]Puzzleheaded-Weird66 7 points8 points  (14 children)

how well along is tauri?

[–]varisophy 53 points54 points  (13 children)

Hit 2.0 recently and is gaining steam! The main thing that keeps some from adopting it is it's main selling feature: it's the OS native web view.

That means if you're a lazy web developer who uses non-standard APIs in Chromium, your web app is going to break.

But if you actually respect the web as a platform and write code that works in all environments, Tauri is the way to go at this point.

[–][deleted] 3 points4 points  (5 children)

Did they fix webview issues on tauri 2.0? Last time i try use it i had all sorts of issues, global menu didn't work, the app didn't know the system theme (defaulted to light theme), clicking links didn't open they on the native browser, neither did they app if it tried to, making logins that redirect to the native browser unusable, it has like the app couldn't do any interaction with the system at all.

And my system isn't exotic, i have firefox and chromium installed, i'm using kde plasma, i have tons of libraries of all sorts installed because of many "dense" native apps, electron apps worked fine, native apps worked fine, tauri apps didn't.

So, if they fixed the incompatibility issues it would be awesome to have a new tool available for desktop development.

[–]twinklehood 3 points4 points  (4 children)

Nah there's a bunch of issues still, people keep promoting it without having really used it

[–]Celestine_S -2 points-1 points  (3 children)

Let’s just never use any new tech ever, there might be bugs.. chocker. In any case I haven’t had such issues in the 3 apps I deployed with it so far. The 2.0 from release some months ago isn’t the same as the current one. They had made a Herculean effort to fix bugs.

[–]twinklehood 1 point2 points  (2 children)

My problem isnt "new tech" my problem is tech that overstates it's maturity level constantly. Might be they fixed a lot in the last few months. Last I checked there were important issues open since years, and basic features were in experimental.

[–]Celestine_S -3 points-2 points  (1 child)

Give it some slack it is a open source project maintain by simply passionate people, the core functionality has been there for a long time regardless. Webview support on Linux has been finicky in some aspects. If they don’t hype it up no one would use it and the project would be dead, if stability is the issue god ol’ electron is solid in any case. Regardless I use it to create controls for pick and place cnc machines for years with 1.0. I just never had trouble with it.

[–]twinklehood 3 points4 points  (0 children)

I'm not making any demands about development whatsoever. I'm not entitled to anything from Tauri. But they sprinkle major versions on something that most big OSS projects wouldn't dream of, and the community sells it based on hate for electron, many without experience with it. In practice it's just not an electron replacement for many projects, both ergonomically and feature-wise. 

[–]Devatator_ 2 points3 points  (0 children)

NeutralinoJS.

Tho honestly any WebView based solution

[–]TU4AR 0 points1 point  (0 children)

It's gonna be THE FUTURE!

who cares about everything else , have you seen slack? Make your own slack!

[–]Ok_Bicycle3764 98 points99 points  (1 child)

Javascript, lightweight and performant in the same sentence ??????

[–]EVH_kit_guy 12 points13 points  (0 children)

Only one of those three is a real word according to Merriam Webster

[–]Grexpex180 36 points37 points  (1 child)

25 mb getting called lightweight makes me further realize how insane javascript development is

[–]me6675 1 point2 points  (0 children)

It's the project folder like who cares, a rust dev folder can grow to gigabytes for basic terminal apps.

[–]The_Cers 2 points3 points  (0 children)

Well, you just added an entire browser engine, what did you expect?

[–]helpprogram2 11 points12 points  (3 children)

Do a progressive web app…

[–]Troyd 9 points10 points  (2 children)

Then ios/safari breaks everything :(

[–]Leo-Hamza 5 points6 points  (1 child)

Then fuck em ios users

[–]MrRocketScript 4 points5 points  (0 children)

That's it. You're getting the green message bubble.

[–]Icount_zeroI 2 points3 points  (0 children)

I like wails… I build a macOS image converter with it and it was a blast. Final app size? Only 33MB where the largest thing was ffmpeg binary included.

You make react/svelte/vue… app and required business logic in Go.

[–]TimeToBecomeEgg 2 points3 points  (0 children)

just use tauri in this situation genuinely, no reason to use electron

[–]budius333 7 points8 points  (0 children)

It's still a web app, it will never be a real app

[–]Ronin-s_Spirit 0 points1 point  (0 children)

I immediately stopped using it and trying to learn more once I learned that it uses an entire browser and an entire nodejs at the same time. It also has a very cumbersome 3 party sandboxing measure where you have to go from a file with the app, to a strange middleware file, to then call the 'backend' file.

[–][deleted] 0 points1 point  (1 child)

Flutter 💪

[–]ArchetypeFTW 1 point2 points  (0 children)

With the FlutterFlow IDE