Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why is Etcher 139 MB large? #3658

Open
rillig opened this issue Dec 17, 2021 · 16 comments
Open

Why is Etcher 139 MB large? #3658

rillig opened this issue Dec 17, 2021 · 16 comments

Comments

@rillig
Copy link

rillig commented Dec 17, 2021

  • Etcher version: 1.7.1
  • Operating system and architecture: Windows 10 amd64

When I downloaded Etcher, I was negatively surprised by the size of the download. For a tool that copies a file to a disk device, I would have expected 5 MB at most. On Unix-like operating systems, a simple dd if=image out=device is enough, so it shouldn't be necessary that the Windows equivalent is a million times larger.

Do you have plans to reduce the file size of the distributed binaries?

@lurch
Copy link
Contributor

lurch commented Dec 18, 2021

See #2974 ?

@A9G-Data-Droid
Copy link

After pointing to a closed issue that points to another closed issue. The answer seems to be "framework". It's Electron. Let's face it, when you're developing a desktop app with web technology then you gotta think that there is a web-server and web-browser inside each application. I'm not sure why this became popular, it's a terrible idea.

There are plenty of good ways to develop cross platform apps these days. Rust being first choice and even .NET6 would be a better choice than Electron!

@ZaLiTHkA
Copy link

ZaLiTHkA commented Jan 7, 2022

hey @A9G-Data-Droid,

There are plenty of good ways to develop cross platform apps these days. Rust being first choice and even .NET6 would be a better choice than Electron!

found a comment that may explain why this project is still using Electron at this point in time:

we were considering using other frameworks, but given the massive amount of electron APIs we use right now it's something that will probably come in the far, far future. closing for now, will re-open accordingly when we get our hands on it

#3568 (comment) by @thundron

so perhaps there's simply too much that would need to change? I haven't dug through the code myself (yet?), might do that at some point and see what comes of it.

@thundron
Copy link
Contributor

thundron commented Jan 8, 2022

@ZaLiTHkA correct! hopefully Electron will be more performant in the future, as there's multiple reasons why it still is a choice even at this point in time other than just legacy :) one example being exactly using web technologies which are very widespread!

@A9G-Data-Droid
Copy link

@thundron I think the use case for Electron is when you want to make a web application and also offer a local version using the same code base. It then makes sense to reuse the code you already had. If an application is local only, like an image burning utility, then it doesn't really make sense to code it this way. Does it need to be hosted on the web? Does it need to be accessed remotely?

Maybe you could make an image burning server but someone with physical access to the hardware is needed to connect and remove physical devices. It's a strange design decision.

@lurch
Copy link
Contributor

lurch commented Jan 10, 2022

If an application is local only, like an image burning utility, then it doesn't really make sense to code it this way.

I think it's because Balena is (or at least was) pretty deeply embedded in the Javascript / NodeJS ecosystem, and so it made sense when Etcher was first being developed? 🤷 https://www.balena.io/blog/introducing-etcher/

@nerdbaggy
Copy link

@A9G-Data-Droid

There are plenty of good ways to develop cross platform apps these days. Rust being first choice and even .NET6 would be a better choice than Electron!

Not even close. If you want to create a cross platform GUI electron is the way for now

No good gui for rust - https://www.areweguiyet.com/
.net is currently in preview for cross platform gui - https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui

@ZaLiTHkA
Copy link

FWIW, NodeGUI does look like a really good alternative (on paper, at least), but unfortunately an issue with broken hot-reloading makes it really difficult to evaluate properly.. 🤔

@Fatih120
Copy link

I really hate the webapp trend; I do not want to live in a future where all my applications that should be 2mb applets are each their own web browser especially when here I can just fall back onto rufus. Don't get me wrong, etcher works well, but choices like that add to the bloated internet problem.

@anzenchitai
Copy link

I decided to give it a try after facing some issues with Rufus. 125 megabytes just to burn an image to a USB flash drive? Just no.

@davidak
Copy link

davidak commented Feb 2, 2023

@anzenchitai try USBImager instead. It says "less than 192 Kilobytes".

@My1
Copy link

My1 commented Aug 10, 2023

I really hate the webapp trend; I do not want to live in a future where all my applications that should be 2mb applets are each their own web browser especially when here I can just fall back onto rufus. Don't get me wrong, etcher works well, but choices like that add to the bloated internet problem.

not only that these monsters obviously also consume a lot more working resources, i.e. ram and CPU

@thynus
Copy link

thynus commented Nov 24, 2024

On my m1 mac mini the app is 365.9MB. Meanwhile, Audacity which uses wxWidgets is only 169MB. However the enormous binary size may be a non-issue for most consumers and require an investment in developer time that would not generate revenue?

@My1
Copy link

My1 commented Nov 24, 2024

on Mac the issue is a lot worse than on other platforms as on Mac you have (once again) the Universal Binary which packages the application for 2 architectures in one package, while currently needed so the application can be more easily pushed to both Intel and Apple Silicon Macs, that thing was also used during the transition away from PowerPC to Intel, as well as for the transition from 32 to 64 bit on Intel.

@thynus
Copy link

thynus commented Nov 24, 2024

Unless I am missing something this is the Apple Silicon only binary not a Universal Binary according to the get info box. FYI Universal Binaries out of the box packages only 2 different platform binaries (YMMV) the brilliant emacsformacos packages more than 2 in their Universal Binary. For example x86_32, x86_64, arm64.

@thynus
Copy link

thynus commented Nov 24, 2024

Found this nice write up:
https://www.umlboard.com/blog/moving-from-electron-to-tauri-1/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests