1. 70
  1.  

  2. 31

    Spotify isn’t built with Electron, so technically speaking the official Spotify client is already “without Electron”. 😛

    Spotify uses Chromium Embedded Framework, which uses C++ on the non-UI side to provide desktop integration, whereas Electron uses a full copy of Node, essentially shipping multiple instances of the V8 JavaScript engine. I know hating on Electron is the cool thing to do nowadays, but let’s make sure we’re complaining about the correct embedded browser engine framework.

    1. 7

      I hate to be that guy, but… this is really the same crap. Both are the web technologies which somehow managed to escape outside the regular web browser which shouldn’t be permitted, or at least definitely not welcomed like it currently is, “bcuz oh god you can do dem apps but no GUI libz omg”.

      If we don’t do something about this, they’ll somehow take over the business and throw us ~30 years back, sinking in tape, glue and tangled wires.

    2. 13

      Native GUI, but all the screenshots I see for the toolkit sure don’t look native…

      1. 11

        The hyphen does a lot of work in druid’s title: it’s a rust-native toolkit, but not a rust native widgets toolkit. Using native widgets is even listed in non-goals.

        1. 3

          Yeah. UX-wise, it’ll probably be like an Electron, just faster. Better, but not by much.

          1. 28

            Faster and lighter than electron is much better in my book. I don’t care about native look and feel, I care about not being an unresponsive resource hog.

            1. 25

              I care about native; there’s a bunch of good reasons to like consistency and accessibility. Feels that’s a dwindling base though.

              1. 10

                I care about native widgets as well—especially since MacOS text fields have basic emacs bindings—but I still consider not using electron a big win.

                1. 4

                  I agree about accessibility. For consistency, alas, there’s little of it already on Linux so I’ve learnt to not care :-).

                  1. 4

                    I’m used to low expectations, I just wish we could do better :(

        2. 9

          The official Spotify client is a hunk of junk that eats up a good third of my cpu cycles and 10-15% memory if I leave it running long enough. Excited to see another option for a third-party implementation that isn’t built on electron. I switched to ncspot a few months ago and have had a much better experience using Spotify since.

          1. 8

            I like the UI! It uses 40% of my CPU compared to Spotify’s <20% though. (Measured on a M1 Mac)

            EDIT: I just realized I was running a non-release build. I’ll try building with –release and measuring again.

            EDIT 2: OK it’s around 9%! Phew :)

            1. 4

              wait i haven’t run any of these clients, but why would a ui use any cpu? I don’t see any fancy visualization of the song in the screenshots or anything like that. Playing back a song ought to be pretty trivial. I can understand maybe like 3% to decompress the sound but anything more is iffy, especially out of the ui which has a very simple job to do.

              1. 6

                Using mpv to play some audio-only files uses about 4% on my system; note that this is with the CPU throttled down to about 1.4GHz. Add to this network, disk caching, UI updates to the seekbar and the like, and you very quickly end up at 9%.

                1. 1

                  Still doesn’t add up. Network and disk caching are trivial to the cpu and UI updates ought to be trivial since they aren’t terribly frequent.

                  1. 2

                    The GTK3 “spinner” demo takes about 6%, curl about 1%. It really does roughly add up.

              2. 3

                This is also something thats being worked on upstream. Druid is very much in progress and to my knowledge psst is the most polished app built with it.

              3. 8

                There is also spot-client, another Spotify GUI written in Rust™ which uses GTK. Both, spot-client and psst are lacking so many features¹ compared to the official client that a comparison is almost unfair. It’s more appropriate to call them minimal spotify clients.

                ¹ scrolling through huge playlists, changing their sort order, recommendations etc. (the stuff that makes Spotify good)…

                1. 1

                  I prefer the official Spotify client on desktop for the reasons you list, and use spot-client on Pinephone.

                2. 9

                  Call be a curmudgeon, but I only stream music long enough to know if I should purchase it for DRM from a site like Bandcamp. Spotify never appealed to me. I don’t like the idea of not having offline access, or paying for subscriptions, or listening to ads, or giving bands peanuts for streams. I’ll stick to mpd.

                  1. 13

                    I’m kind of a curmudgeon too, but some of these are incorrect.

                    or paying for subscriptions

                    Agree, but $120 a year for virtually unlimited music seems like a reasonable compromise to me.

                    I don’t like the idea of not having offline access

                    It has offline access with that subscription.

                    or listening to ads

                    There are no ads with that subscription.

                    or giving bands peanuts for streams.

                    I can’t comment on this. I don’t know how all that works.

                    1. 12

                      off-topic but indeed bands are given peanuts. Spotify’s goal was never the compensation of artists but the stop of piracy : https://www.businessinsider.fr/us/taylor-swift-doesnt-need-streaming-royalties-former-spotify-boss-said-2021-7

                      1. 1

                        However, the next stop is obviously subscriptions on individual artists or perhaps groups of artists. Substack for music.

                        1. 3

                          Since Bandcamp was already mentioned in this thread, just wanted to point out that they do indeed have this. As far as I’m aware, it functions kinda like Patreon, but built into the core download/streaming service.

                      2. 4

                        I know some of these concept conflict when free versus paid subscriber but I don’t see the value personally. That said, what does offline mean here? Is it DRM-free and yours to keep and and share, or is locked behind a single device, account, logevity of you being a subscriber?

                        1. 6

                          “Offline” in the sense that you can “cache” selected songs indefinitely for the Spotify client on your device.

                          I don’t know how it’s actually physically stored on disk, but I imagine it’s just a binary blob that could also have some rudimentary encryption on it. At any rate it’s definitely not designed to make songs available outside Spotify.

                          However, compared to “offline mode” in other subscription products (e.g. Netflix) I don’t think Spotify enforces any limitations on the duration or size of your offline library. Not sure what happens to your “offline” songs if your subscription expires though.

                        2. 1

                          I have Spotify Premium, and I was very annoyed to encounter ads recently on a podcast on Spotify. This may not be Spotify’s fault, but clearly Premium does not pay enough for this podcaster to abandon ads, and it is not accurate to say that there are no ads.

                          If you say “no ads on music”, then that is accurate AFAIK.

                        3. 4

                          But if you buy an album and stream it, you’re giving the artists extra money. I only buy albums that I really love (which hasn’t really changed since pre-streaming/downloading days in high school), so when I stream music it’s either a bonus to a band or a few pennies extra to a band I normally wouldn’t listen to at all (or certainly wouldn’t buy their albums).

                          Payouts depend on a number of factors, though. Even with my meager numbers, I’ve made about $20 on streams this past year.

                          1. 2

                            The client is what I’m paying for.

                            Doing it all myself for many years was fine, recommendations are easy enough to come by … Cleaning metadata, getting album covers correct, organizing, that started to be a lot of work.

                            At a certain point, Spotify was cheap enough (for me) that having a client with any music I wanted instant-on for any device (laptop, client, kid’s tablet), and an actual, real-life, working version of what uPNP always promised but never delivered… Worth it.

                            Compensating artists is and always will be a separate topic (let’s talk about radio play baskets) and the equation still favors publishers pretty heavily (Bandcamp doesn’t get press for donating their profits some of the time because it’s no money.)

                            1. 4

                              And I choose to contribute to MusicBrainz and use Picard because I’d rather help open source

                          2. 3

                            Is the idea here to avoid Electron at all costs? Or is it to have a native GUI? I quite like the regular Spotify client and use it for hours on end every day. It’d have to be a vastly superior experience for me to switch.

                            1. 2

                              Is this your project? ‘show’ tag is for showing own project as far as I know.

                              I’d also suggest to add ‘graphics’ tag.

                              1. 7

                                It’s not really graphics programming, so that tag doesn’t fit.

                                1. 3

                                  yeah idk about graphics… Its a spotify client written in rust that happens to use a gpu enabled ui toolkit. The project itself doesn’t do much with it

                                2. 1

                                  Wanted to try it but it fails to build, too bad. At least I got links to similars projects in other comments (thanks for spot-client, a minimal client that works nicely).