5 ms·
Hey author here :) Happy to answer any questions.
by agourlay 2y ago
Hey author here :)
Happy to answer any questions.
- amelius 2y agoWhy did you think Rust was the right tool for the job, and why not a language with a GC?
- throwadobe 2y agoWhy would one prefer a language with a GC? Iced is a great library if you are willing to put in the effort to learn it (as it's new and documentation is still mostly limited to examples)
- amelius 2y ago> Why would one prefer a language with a GC? One thing less to worry about.
- throwadobe 2y agoEverything is a tradeoff. Iced is blazing fast, with a low memory footprint (~30MB binary), cross platform, extensible and pretty elegant if a bit challenging to learn.
- amelius 2y agoYour job is to make your users happy. If you spend 2x the amount of time to build a blazing fast UI compared to a normal speed UI, then the question is if you maybe had better spent the time on things your users wanted, like features. Features are not everything, but code that is faster than necessary (or has lower memory footprint) just doesn't bring much to the table from the user's perspective, especially for UI programs. If you were writing an OS kernel or a browser, then maybe (probably even) Rust is a better choice.
- TazeTSchnitzel 2y agoFor audio software like this, using a GC-free language translates into reliable, stutter-free, low-latency playback, particularly on lower-power devices. A lot of JavaScript-based audio things I've tried, even really simple ones, become miserable experiences once GC pauses start consuming a lot of CPU. I think it's no surprise that GC'd languages are unpopular for audio applications!
- amelius 2y agoBut then you should also run it on a realtime OS.
- TazeTSchnitzel 2y agoNo, why would you? Normal OSes are pretty good at doing reliable audio playback and recording, musicians wouldn't use them otherwise. They don't guarantee five-nines but who cares. They are unlikely to ruin your audio experience.
- alt227 2y ago> the question is if you maybe had better spent the time on things your users wanted, like features. That question is for the author of the software alone to decide how they want to build their own software.
- throwadobe 2y agoYeah? Well, you know, that's just like uh, your opinion, man.
- amelius 2y agoYou just said that everything is a trade-off yourself ...
- agourlay 2y agoRust is the language I am the most proficient at this point, so it was a natural choice for me. Tuxguitar is written in Java and works perfectly fine TBH, even if Rust has clear advantages for high performance software it does not matter that much in this context.
- chungus 2y agoThanks for the great write-up. I've got an iced application that I wrote 3 years ago, and this has given me the motivation I needed to go update it
- yoavm 2y agoAwesome work! It would be super cool if this could somehow run as a WASM module. Was thinking I would then try to include it in Freetar [0], for example so it can be used to play the tablatures on a page like this: https://freetar.de/tab/joni-mitchell/a-case-of-you-chords-957219 https://freetar.de/tab/joni-mitchell/a-case-of-you-chords-95... [0] https://github.com/kmille/freetar/ https://github.com/kmille/freetar/
- agourlay 2y agoThanks, I did not know about Freetar! TBH I have a lot of things to improve before thinking about this kind of interop. But feel free to create an issue :)