etcher icon indicating copy to clipboard operation
etcher copied to clipboard

Why is Etcher 139 MB large?

Open rillig opened this issue 3 years ago • 12 comments

  • 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?

rillig avatar Dec 17 '21 17:12 rillig

See #2974 ?

lurch avatar Dec 18 '21 04:12 lurch

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!

A9G-Data-Droid avatar Jan 06 '22 21:01 A9G-Data-Droid

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

https://github.com/balena-io/etcher/issues/3568#issuecomment-910199560 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.

ZaLiTHkA avatar Jan 07 '22 09:01 ZaLiTHkA

@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!

thundron avatar Jan 08 '22 18:01 thundron

@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.

A9G-Data-Droid avatar Jan 10 '22 16:01 A9G-Data-Droid

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? :shrug: https://www.balena.io/blog/introducing-etcher/

lurch avatar Jan 10 '22 16:01 lurch

@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

nerdbaggy avatar Jan 15 '22 03:01 nerdbaggy

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.. 🤔

ZaLiTHkA avatar Jan 16 '22 05:01 ZaLiTHkA

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.

Fatih120 avatar Jan 18 '22 11:01 Fatih120

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.

anzenchitai avatar Feb 02 '23 02:02 anzenchitai

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

davidak avatar Feb 02 '23 04:02 davidak

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

My1 avatar Aug 10 '23 11:08 My1