Would sharing help a lot though? DOM will still eat up a ton of memory and windows are each using a separate process. I have not done this for a while but a year or so ago communicating between two windows in an Electron application was insane.
The rendering engine in Windows is accessible. It has not been as advanced as V8 but it is getting better and that means you can, or will soon be able to, create an app with html+css+js and run it on Windows without downloading a full engine.
For the more common solutions I think computers already have enough memory to handle this. The boot time is a bit too long but if each app uses 200-300 MB does not mean _that_ much when the computers have 8 GB or more.
I'm typically the defender of electron on these threads. I think its a great way for devs to get an MVP out there quickly. But there is a time and a place for electron.
electron good
- IDEs, markdown editors, visual git clients, things that are front and center
electron bad
- music players, tray notifiers, app launchers, things that work in the background
On windows and mac I use foobar for music and greenshot for screen grabs because they use minimal resources.
The main reason I went with electron is that fantastic system tray integration. System tray integration with the native .Net is an unholy mess. The windows 10 UWP apps do not have a way to integrate with the taskbar. WPF requires interop with win32 code or a half baked 10 year old depreciated WinForms component.
And none of the native solutions allow me to shape and design the UI like I want to without compromises.
Electron may not the best in every aspect. But it was the only sensible and feasible choice for what I wanted my app to behave like.
For me, a small performance hit is justified for being able to make exactly what I want.
Having used foobar2000 for many many years, I've loved its power and customizability, but I do wish that there was a modern way to customize its UI.
The basics are simple, but if you want to do styling tweaks or anything approaching a "custom" UI, you need to start hacking away at an obscure C++ SDK or an even weirder mishmash of GDI+ and old JavaScript.
If there was a modern and easily customizable frontend to foobar2000's core audio and media library engine, I'd be in love. Something like Zeit's Hyper, but for music. I'd be willing to trade off Electron resource usage if it meant I could set up the UI just how I like it.
I see a lot of negative comments on these electron threads (rightfully so, especially if one cares about resources / performance). Question is: what other frameworks would you recommend for developing cross-platform desktop apps ?
I don’t have a good answer to the framework question, but I do have an opinion about cross-platform. Why make cross-platform a priority over efficiency and user experience? I bounce between Mac and Windows daily, and my least favorite apps are those that try to run on both. They are often resource hogs and provide a UI experience that feels worse than native apps. Electron apps have the least bad UI experience, but are resource hogs. One app I use for work, Mendeley, uses Qt for its UI I believe, and it’s garbage on both platforms- so I use the web interface instead. Give me a good native app instead of a suboptimal cross platform one.
I often think the issue isn’t cross platform though: it’s that there is a cohort of developers who know a toolchain (JS+web), and use frameworks that let them live in that instead of investing the time and effort to learn how to write an app well using a toolchain not built for those focused on web/browser models of programming.
Yes, I am new to all of this so I see the electron hate because of the resource usage but then never see any meaningful discussion on what people would rather be used.
It seems to be this Qt thing which appears to have it's own tradeoffs (which are?) and then...is that it? So is it going to be a case of not having any cross platform desktop apps or having something that uses 2-300mb of RAM that developers won't give you street cred for?
Maybe the focus should be on making electron more performant. Sounds like MS has found a way to do it with VS Code so doesn't that sound like a better alternative than to not have any cross platform apps?
I'm very partial to Quod Libet. It is utterly flexible and has probably the most powerful tagging engine of any media player. Customizing it just right takes a little bit of work and is a little bit arcane, but once it's there, navigating a huge library of music is completely fluid and intuitive.
I don't play music from my Linux machine often, but when I do it's from deadbeef. Big view of the current playlist, tabs for others and keyboard shortcuts for playback control works for me.
However, I found out that for me tui is where it's at for music players. Using cmus combined with a drop down terminal such as tilda or a tiling windows manager is the most comfortable i've been with music players.
You can't throw folders with subfolders at it to make a playlist out of them. The music files have to be in the same folder. Where's the unobtrusive in that if I have to create my playlist first?
Thanks for pointing that out. I tend to curate my library as a playlist itself without sub-folders so I never gave a thought to it.
I am working on a playlist system after all the feedback i got. Will definitely look into the sub-folders way.
Oh, and unobtrusive is for the fact that the player stays completely in the background without a single notification or interruption to your work.
hey is anyone interested in building a modern frontend for Foobar2000?
edit:
I think from the Foobar2000 sdk alone, you'd see how advanced that thing is.. I mean, extension points everywhere, dsp plugin support, built-in query & library management, codecs, gapless processing, all of that written in a scalable & native architecture.
It truly lacks a proper UI toolkit though. The current options are quite outdated that I'd rather fall back to the default Win32 UI.
So, Electron frontend + C/S communication with Foobar2000? I'd totally buy into it.
Internally, both foobar2000 and Chrome/Electron use ffmpeg for audio processing and codec support. The web audio api allows for writing all sorts of equalizers and audio processing effects.
Extensions and query and library management can be coded in JS easily, like VSCode, Hyper and others do.
Electron frontend communicating with foobar2000 sdk for every little interaction will lead to a huge mess of performance and latency issues. It's better to rebuild the whole thing in electron instead.
Is there a subsonic interface/client that integrates nicely natively? Having to have it in a browser tab and not having music hotkeys is kind of a bitch.
It currently only works with mp3, wma and ogg files. Flac had some codec issues when I checked it in the beginning. Might have changed as I recall chrome having done something in this regard.
Will definitely check if the new versions of electron support it. If it does support flac, I'll get it working on the next release.
[+] [-] tambourine_man|7 years ago|reply
As a user, I simply won’t accept it. Platform integration is suboptimal at best and resource usage is preposterous.
If this is the future of desktop software, and it seems like it is, we have got to find a better solution.
There has to be a way to share the rendering engine and Node process among the many Electron apps that are proliferating on the user’s machine.
[+] [-] yoz-y|7 years ago|reply
[+] [-] onion2k|7 years ago|reply
I prefer it when one app crashes it doesn't kill a bunch of others.
[+] [-] jbergens|7 years ago|reply
For the more common solutions I think computers already have enough memory to handle this. The boot time is a bit too long but if each app uses 200-300 MB does not mean _that_ much when the computers have 8 GB or more.
[+] [-] benbristow|7 years ago|reply
[+] [-] roryisok|7 years ago|reply
electron good - IDEs, markdown editors, visual git clients, things that are front and center
electron bad - music players, tray notifiers, app launchers, things that work in the background
On windows and mac I use foobar for music and greenshot for screen grabs because they use minimal resources.
[+] [-] quantummkv|7 years ago|reply
And none of the native solutions allow me to shape and design the UI like I want to without compromises.
Electron may not the best in every aspect. But it was the only sensible and feasible choice for what I wanted my app to behave like.
For me, a small performance hit is justified for being able to make exactly what I want.
[+] [-] lediur|7 years ago|reply
The basics are simple, but if you want to do styling tweaks or anything approaching a "custom" UI, you need to start hacking away at an obscure C++ SDK or an even weirder mishmash of GDI+ and old JavaScript.
If there was a modern and easily customizable frontend to foobar2000's core audio and media library engine, I'd be in love. Something like Zeit's Hyper, but for music. I'd be willing to trade off Electron resource usage if it meant I could set up the UI just how I like it.
[+] [-] cageface|7 years ago|reply
https://swinsian.com/
Between that and xld I don’t feel like I’m missing foobar too much.
[+] [-] wst_|7 years ago|reply
[+] [-] anotherevan|7 years ago|reply
[+] [-] themodelplumber|7 years ago|reply
(Need 1: Player must remind me of WinAMP)
[+] [-] zabana|7 years ago|reply
[+] [-] cjslep|7 years ago|reply
[+] [-] ms013|7 years ago|reply
I often think the issue isn’t cross platform though: it’s that there is a cohort of developers who know a toolchain (JS+web), and use frameworks that let them live in that instead of investing the time and effort to learn how to write an app well using a toolchain not built for those focused on web/browser models of programming.
[+] [-] chasote|7 years ago|reply
It seems to be this Qt thing which appears to have it's own tradeoffs (which are?) and then...is that it? So is it going to be a case of not having any cross platform desktop apps or having something that uses 2-300mb of RAM that developers won't give you street cred for?
Maybe the focus should be on making electron more performant. Sounds like MS has found a way to do it with VS Code so doesn't that sound like a better alternative than to not have any cross platform apps?
[+] [-] cift|7 years ago|reply
[+] [-] Something1234|7 years ago|reply
http://deadbeef.sourceforge.net/
[+] [-] KozmoNau7|7 years ago|reply
https://quodlibet.readthedocs.io/
[+] [-] crtasm|7 years ago|reply
[+] [-] snovv_crash|7 years ago|reply
https://www.albinoblacksheep.com/download/billy
[+] [-] Jerry2|7 years ago|reply
https://audacious-media-player.org
[+] [-] cift|7 years ago|reply
[+] [-] designcode|7 years ago|reply
[+] [-] marssaxman|7 years ago|reply
[+] [-] dmitrygr|7 years ago|reply
[+] [-] gilmi|7 years ago|reply
However, I found out that for me tui is where it's at for music players. Using cmus combined with a drop down terminal such as tilda or a tiling windows manager is the most comfortable i've been with music players.
[+] [-] giorgosts|7 years ago|reply
[+] [-] quantummkv|7 years ago|reply
Oh, and unobtrusive is for the fact that the player stays completely in the background without a single notification or interruption to your work.
[+] [-] v-yadli|7 years ago|reply
edit:
I think from the Foobar2000 sdk alone, you'd see how advanced that thing is.. I mean, extension points everywhere, dsp plugin support, built-in query & library management, codecs, gapless processing, all of that written in a scalable & native architecture.
It truly lacks a proper UI toolkit though. The current options are quite outdated that I'd rather fall back to the default Win32 UI.
So, Electron frontend + C/S communication with Foobar2000? I'd totally buy into it.
[+] [-] quantummkv|7 years ago|reply
Extensions and query and library management can be coded in JS easily, like VSCode, Hyper and others do.
Electron frontend communicating with foobar2000 sdk for every little interaction will lead to a huge mess of performance and latency issues. It's better to rebuild the whole thing in electron instead.
[+] [-] dvfjsdhgfv|7 years ago|reply
It's a good occasion to change the "Hello world" window title.
[+] [-] antihero|7 years ago|reply
[+] [-] Dolores12|7 years ago|reply
[+] [-] rootlocus|7 years ago|reply
[+] [-] quantummkv|7 years ago|reply
Will definitely check if the new versions of electron support it. If it does support flac, I'll get it working on the next release.
[+] [-] johnwheeler|7 years ago|reply
[+] [-] Rjevski|7 years ago|reply
Well besides eating half your RAM and melting down your battery.
[+] [-] znpy|7 years ago|reply
[deleted]