News for hackers. Stuff that matters.
Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Monday August 16, 2021 @11:47PM (#28206007)
What's funny about having to rely on unauthorized clones to provide a fast native UX was that Spotify's original client back in 2008 started out as beautifully light, custom rendered native client.

Few Apps ever had that wow factor the first time I used it, it was so much lighter and more responsive than anything else of the day. I remember being perplexed at how I could search and skip to any part of a song quicker than iTunes could looking at a local library. Everything was latency-free and instantaneous.

We were building a Music Startup at the time, so we investigated how it worked. We we’re very surprised we couldn’t find any evidence of an established UI toolkit. It looked as though they had built their own custom UI renderer and optimized TCP protocol which sent back its metadata in XML. Their traffic looked like it was initially seeded from their own (or CDN) servers (for best latency) and then overtime we would see some P2P traffic on the wire.

Our QT/C++ client had decent performance but was noticeably heavier than Spotify's. I was disappointed to see their native client eventually be abandoned and succumb to become yet another Chromium wrapper. I expect it fell to the pressures of a growing startup adding 100s of developers (without the skill of their original CTO/devs) where a native UI couldn't be updated and re-iterated as fast as a Web App. I wish they maintained 2 desktop clients, and left their native client alone to just be an audio player and push all their new social features to their new flagship CEF app.

It's unfortunate the skill and desire of building fast native UIs are being lost to Electron and CEF wrappers. Seems the larger the organization the more likely they are to build new Web rendered Desktop Apps and we have to rely on unauthorized Indie efforts like this for fast, responsive native UIs.

Re:Psst: Fast Spotify client with native GUI, without Electr... by ClawsOnPaws on Tuesday August 17, 2021 @03:59AM (#28207347)
Something that Chromium apps do give you however, for free for the most part, is accessibility. I just tried the GUI version of this client and was not surprised to find out that I could not use it. The new Spotify UI released a few months ago is the most accessible Spotify has ever been. Landmarks, clear labels, headings, and even aria-trickery to automatically announce things using my screen reader. I remember being very frustrated with the old UI's to the point where I chose another service just because it was more accessible, even if it didn't have a desktop app. YouTube Music and Deezer had much better UI's from the get go. At this point, I'm almost happy to see an Electron app. It doesn't guarantee accessibility, but the likelyhood is so, so, so much higher than any modern cross-platform UI framework. I'd almost go as far as to not call these UI's native. Because if they were, if they used native controls, the accessibility would be there. The OS vendors spend a lot of time to make them usable and consistent. Sadly, these UI frameworks don't, or can't. Sure, psst has a CLI, but I only get panics. I can't do -h to find out what I can do with it, I can only call it with a spotify URL and get it to play and exit once it's done. It feels like the cli was included as a sort of testing tool to check the underlying libs and code, and not as a usable version of the app itself - but it's still very early in development so the GUI might be the same. I can't tell.
Re:Psst: Fast Spotify client with native GUI, without Electr... by csmpltn on Tuesday August 17, 2021 @08:17AM (#28209042)
Here's how these things usually go: first, you start small. You build something you can show other people. You try to generate some traction and build interest around your idea, validating it at a very small scale (friends, family, "Show HN", etc). You gradually expand that cycle of people. You get into a routine of iterating on improvements, adding new features, and gradually scaling things up. You probably get a couple of people to join you on that journey, because the more popular your product becomes - the more asks you'll be getting, and the more work it takes to scale it out. Rinse and repeat.

The reality is that we can't expect every single hobby project to support every single use-case from day one. Painfully for all - the current state of things in this space is such that building accessibility into your product is not trivial and hence it gets postponed "for later".

Now, on to a completely honest question: why don't we have screen readers that can consistently translate the "visual" version to a version people with visibility impairments can understand in a more generic manner, without requiring every single piece of software to adjust itself to every single flavor of a screen reader? I'm honestly asking why can't we solve the whole problem by offloading it to the screen reader itself. Can we solve this by simply offering a text-only command-line like version of every product? (ie. as opposed to building "beautiful"/"designed" experiences that get downsampled by the screen-reader anyways)? Sort of like building a sitemap.xml file that lets the user with a screen reader do everything a user with the full-blown GUI can. Sounds like an opportunity to create a cross-industry standard?

Edit: getting downvoted for comments like this is why I'm honestly considering just closing my account and not participating in any more such conversations going forward.

Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @08:46AM (#28209247)
I upvoted you to combat your downvote because your initial paragraphs was a very reasonable description of the journey of a lot of hobby projects and its unreasonable to expect alpha apps (built using a GUI FX in active development) racing to get out an MVP is going to have accessibility nailed out of the gate.

Your last paragraph for a magic screen reader is that it simply doesn't exist, so in its absence you need to use a GUI FX that supports accessibility for it to be accessible. If all the screen reader can see is a rendered bitmap they're not going to be able to identify what's a UI control or how to interact with it, which group of pixels is decorative and which is functional or how it will be able to determine the difference between a real App and a screenshot of it? With the recent real-time AI powering "copy text from image" maybe a generic reader is going to be more advanced than what's historically been possible.

But I don't really know how screen readers work, I'm assuming they need to work in tandem with GUI FX's which is able to describe the purpose and roles of its different UI elements, so if you use native OS controls it's going to be able to know how to inspect different controls of running Apps and how to send events to them.

Re:Psst: Fast Spotify client with native GUI, without Electr... by ericbarrett on Tuesday August 17, 2021 @09:17AM (#28209498)
> If all the screen reader can see is a rendered bitmap they're not going to be able to identify what's a UI control or how to interact with it

This has been the status quo for decades of computing, but it seems quaint in this age of instant ML-driven image recognition. Anybody doing anything in the accessibility space with ML?

Re:Psst: Fast Spotify client with native GUI, without Electr... by mwcampbell on Tuesday August 17, 2021 @09:22AM (#28209543)
Re:Psst: Fast Spotify client with native GUI, without Electr... by dailyanchovy on Tuesday August 17, 2021 @08:49AM (#28209270)
I read your comment and agree. Without thinking it through, it seems that if every program provided a full CLI and a sitemap like file, then a screenreader should be able to integrate with said program.

I don't know much about the accessibility business, but my impression is that the screenreaders are all very expensive. Maybe providing a universal interface as described would level the playing field, maybe that's not desired (by the big brands).

Re:Psst: Fast Spotify client with native GUI, without Electr... by disabled on Tuesday August 17, 2021 @01:35PM (#28212574)
> I don't know much about the accessibility business, but my impression is that the screenreaders are all very expensive. Maybe providing a universal interface as described would level the playing field, maybe that's not desired (by the big brands).

False. I have a print-related disability and I rely on screenreaders.

I use Orca on Ubuntu. However, the default voices for Orca are deplorable (by default eSpeak text to speech engine).

Most people do not know this, but https://oralux.org sells machine learning high quality voices (NeoSpeech engine) for $35 per voice at most which work directly with Orca. Here are the English text to speech voices: https://www.oralux.org/voice.php#english_american_english

Re:Psst: Fast Spotify client with native GUI, without Electr... by eloisius on Tuesday August 17, 2021 @09:29AM (#28209610)
This is an interesting idea for app-interoperability in general. It brings to mind Apple Automator, which I have no idea how works, but can sometimes be used to make Apps interoperate. It'd be pretty cool if every app did have a sitemap-like API spec that that mapped out the core of the app, and the UI sat on top of that.
Re:Psst: Fast Spotify client with native GUI, without Electr... by mitemte on Tuesday August 17, 2021 @09:58AM (#28209901)
A lot of the UI scripting on macOS is accomplished via accessibility APIs. If you’re interested, check out Accessibility Inspector[0], which ships with Xcode. You can inspect macOS applications in a similar, albeit much more limited way to a web browser’s interactive inspect element function.

You can also accomplish UI scripting via C/ObjC/Swift using the Application Services framework [1].

[0] https://developer.apple.com/library/archive/documentation/Ac... [1] https://developer.apple.com/documentation/applicationservice...

Re:Psst: Fast Spotify client with native GUI, without Electr... by csmpltn on Tuesday August 17, 2021 @11:20AM (#28210833)
Exactly.

We should decouple the core of the application from the UI. Have a standardized interface which exposes all available functionality to the screen reader and allows it to talk to the core directly, bypassing the UI.

Stop doing what everybody does today: stop having screen reader depend on the UI (ie. aria-labels, etc). This problem can't be solved by adding "decorations" to existing UI components. It's best solved by exposing an entirely separate interface which lets screen readers (and other hardware) interact with the core of the application directly.

This sounds like a spec, a set of language frameworks and a design pattern waiting to be written.

Re:Psst: Fast Spotify client with native GUI, without Electr... by autoexec on Tuesday August 17, 2021 @10:24PM (#28217142)
If it's done right and standardized it'd be worth it for everybody since even people who don't need accessibility features could then create their own interfaces to the programs they use customized for their preferences and workflow
Re:Psst: Fast Spotify client with native GUI, without Electr... by jcelerier on Tuesday August 17, 2021 @06:32PM (#28215551)
These APIs have existed for like three or more decades for desktop apps. That's partly why most desktop UI toolkits are based on tree of widgets: Mac and Windows's native accessibility APIs expect a tree
Re:Psst: Fast Spotify client with native GUI, without Electr... by mwcampbell on Tuesday August 17, 2021 @08:14PM (#28216295)
FWIW, the oldest accessibility API was Microsoft Active Accessibility (MSAA), which was added to Windows 95 in a service pack in 1997. Classic MacOS never had an accessibility API; the Outspoken screen reader for that OS had to rely exclusively on ugly hacks (e.g. patching Toolbox functions). OS X introduced accessibility APIs for Carbon and Cocoa in an early version; not sure which one. Unix-based desktop environments got an accessibility API, AT-SPI (thank you Sun), in the early 2000s.
Re:Psst: Fast Spotify client with native GUI, without Electr... by jcelerier on Wednesday August 18, 2021 @04:29AM (#28218835)
well TIL, I believed accessibility to already be there by the late 80s, in NeXT workstations and the first windows versions but it looks like that was not the case.
Re:Psst: Fast Spotify client with native GUI, without Electr... by jpochyla on Tuesday August 17, 2021 @04:43AM (#28207594)
Hi, the author here. Psst is definitely in alpha, and the CLI is indeed just an example (it's what I was using to test the core mechanisms). I'm sorry the accessibility is so bad now, but Druid, the GUI library, takes it very seriously -- which is not very common in custom GUI frameworks. So, fingers crossed, it should get better soon.

Re. command-line Spotify clients, there is ncspot[1] and spotify-tui[2], and if you use Linux, Spot[3] looks like a nice GTK experience.

[1] https://github.com/hrkfdn/ncspot

[2] https://github.com/Rigellute/spotify-tui

[3] https://github.com/xou816/spot

Re:Psst: Fast Spotify client with native GUI, without Electr... by miki123211 on Tuesday August 17, 2021 @04:39AM (#28207569)
This is, unfortunately, a very common occurrence when GUI frameworks are concerned. For some reason, framework authors like to mislead and say that their framework is native, when it looks native but actually isn't. WX and SWT are the two notable exceptions here, they do indeed use native OS controls.

If you want to use a native GUI framework because of accessibility, check if it's as native as it claims.

Re:Psst: Fast Spotify client with native GUI, without Electr... by OOPMan on Tuesday August 17, 2021 @07:15AM (#28208604)
You're comparing a person's side project to years of work on this in Chromium.

Seems rather like comparing someone's homemade bottle rocket to a Saturn V...

Re:Psst: Fast Spotify client with native GUI, without Electr... by blowski on Tuesday August 17, 2021 @07:47AM (#28208841)
Your analogy doesn't make sense since I'm paying the same amount either way - so of course I'll choose the Saturn V.

Perhaps a better analogy would be whether you want a fast but fragile kit car missing some features, or a well-built but slower caravan.

Re:Psst: Fast Spotify client with native GUI, without Electr... by bovermyer on Tuesday August 17, 2021 @07:53AM (#28208885)
To be fair, accessibility is not listed on psst's roadmap at all yet.

I'm intrigued by this client, but I'll wait for a beta before trying it out.

Re:Psst: Fast Spotify client with native GUI, without Electr... by dalmo3 on Tuesday August 17, 2021 @07:54AM (#28208893)
Fun fact about Spotify web's accessibility: Alt+left/right are used to both navigate pages AND go back/skip a song. It is truly an abomination.
Re:Psst: Fast Spotify client with native GUI, without Electr... by jatone on Tuesday August 17, 2021 @10:09AM (#28210035)
I honestly think we need to rethink accessibility from the ground up. modern advances in OCR and machine learning should allow us to do accessibility entirely from the GPU output.

it'd take awhile to perfect but i think it'd ease the burden tremendously for software developers and those who need accessibility.

Re:Psst: Fast Spotify client with native GUI, without Electr... by mwcampbell on Tuesday August 17, 2021 @11:28AM (#28210932)
> it'd take awhile to perfect

Some of us can't wait. That's why I, for one, continue to advocate for developers to make their applications accessible with the currently available tools. It's also why I'm trying, with my AccessKit [1] project (which admittedly is taking time to get off the ground), to make it easier for GUI toolkits to implement the current baroque platform accessibility APIs.

I'm also reluctant to concede that we're doomed to reconstruct UI content and semantics probabilistically from pixels, when that information is already there somewhere in the app. But it may be the best long-term solution to the social problem of trying to get everyone to implement accessibility.

[1]: https://github.com/AccessKit/accesskit

Re:Psst: Fast Spotify client with native GUI, without Electr... by blowski on Tuesday August 17, 2021 @11:04AM (#28210661)
You're onto something here. As long as accessibility is the job of the developer, software accessibility will reamin "on the roadmap" for many projects. There's simply too much to learn, too many battles to fight, and accessibility tends to offer to little obvious and immediate value compared to other priorities.

Legislation is not really the answer, or we'd already have great accessibility.

In other areas, we've automated and outsourced it - CI/CD, security, infrastructure. Think how hard it was to manage an RDBMS cluster or version control repository 20 years ago, and now even a junior developer is able to have both within minutes. We have frameworks like React.

In that time, accessibility has actually got harder, because of more devices, technologies, network connections, and more people with a wider range of accessibility needs.

I'm not sure what it would look like. Maybe a new way of rendering content, maybe a new framework that puts accessibility as a first-class concept.

Re:Psst: Fast Spotify client with native GUI, without Electr... by ap-andersson on Tuesday August 17, 2021 @01:50AM (#28206613)
If you are interested in their story how the original client and architecture came to be and then how it changed to what it is today they have a podcast you can listen to: "Spotify: A Product Story" - https://pca.st/cbo7khrm

Here's also a blog post related to the topic: https://engineering.atspotify.com/2021/08/04/four-lessons-we...

Re:Psst: Fast Spotify client with native GUI, without Electr... by vsnf on Tuesday August 17, 2021 @03:08AM (#28207045)
Just finished listening to this, thanks for the recommendation.

They spend some time interviewing Lars Ulrich of Metallica in the context of of the Napster lawsuit. He comes across in this interview as still upset at Napster for what they did, and he is at turns indignant and also emotionally wounded at the fact that they are perceived as the villains in the story. In particular he cannot seem to reconcile his belief that they, and I quote "are the most fan friendly band on this planet" with suing Napster for $100k per download in damages, a ludicrous and arrogant sum. I am not a Metallica fan and do not listen to their music (out of disinterest, not antifandom. Metal isn't my genre), but it is striking to me to see how 20 years on they still don't get it.

Re:Psst: Fast Spotify client with native GUI, without Electr... by scns on Tuesday August 17, 2021 @04:09AM (#28207397)
I watched a documentary they made about themselves... Only went there because two band colleagues ask me if i wanna come. In one scene he stands in front of a 4mx4m painting he is going to auction off. Some colors smeared over black foundation, ugly as hell if you'd ask for my irrelevant opinion. Sipping a drink he says: "Sometimes i stand here and ask myself: 'What did the artist think when he made it?'"

Slayers' drummer Dave Lombardo said about his colleague Kerry King: "He is the dumbest person i know."

You don't have to be smart, your ego problems figured out or a likeable personality to make great music.

Narcissim plays its part too. I think actually is okay to want to be admired by others by accomplishing great things. I think it is a biological urge to attract a mate. Doseage makes the poison though.

Re:Psst: Fast Spotify client with native GUI, without Electr... by toxik on Tuesday August 17, 2021 @04:21AM (#28207448)
Ulrich took it personally, thinking it was somebody stealing from him. I'm convinced Metallica would have faded to irrelevance far earlier if people hadn't downloaded their music.

A lot of musicians still think this way, "I should be able to make a living from my craft and thus piracy is theft." But that's a misunderstanding, I believe -- people would still pay money for music, just like they pay money to creators on YouTube and the likes even if most of the content is freely available.

Re:Psst: Fast Spotify client with native GUI, without Electr... by scns on Tuesday August 17, 2021 @06:16AM (#28208186)
Studies showed that people who download more, spend more money on music than those who don't.
Re:Psst: Fast Spotify client with native GUI, without Electr... by drdec on Tuesday August 17, 2021 @06:27AM (#28208264)
It strikes me as totally reasonable and predictable that the people who spend the most money on music would be the people who download the most music.
Re:Psst: Fast Spotify client with native GUI, without Electr... by sincerely on Tuesday August 17, 2021 @05:29PM (#28215097)
>I'm convinced Metallica would have faded to irrelevance far earlier if people hadn't downloaded their music.

No offense but this is wishful thinking, they're one of the best selling bands of all time.

Re:Psst: Fast Spotify client with native GUI, without Electr... by brianzelip on Tuesday August 17, 2021 @10:40AM (#28210351)
> 20 years on they still don't get it

Here's a great clip (from the amazingly deep diving podcast What Had Happened Was) with El-P from Run the Jewels, et al, about why RTJ gives away their albums, https://www.youtube.com/watch?v=TdtLTw7Xsj8.

Re:Psst: Fast Spotify client with native GUI, without Electr... by inter_netuser on Tuesday August 17, 2021 @03:19AM (#28207100)
Money tends to change people.
Re:Psst: Fast Spotify client with native GUI, without Electr... by Nevermark on Tuesday August 17, 2021 @05:15AM (#28207780)
Anything that qualitatively changes what survival means to us, will change someone. For good, bad, indifferent. For most people a combination.

A close friend gave me insight on why success changes people, after I hit a milestone that mattered to me. He told me, "You are still going to have problems, they are just going to be different problems."

Each of our moral outlooks, stability, suitability for state of life, relatability, etc., is heavily dependent on our relationship with our survival environment. And success radically changes that relationship qualitatively, when it changes it much quantitatively.

Re:Psst: Fast Spotify client with native GUI, without Electr... by inter_netuser on Tuesday August 17, 2021 @05:50AM (#28207982)
I think this is by far the best quantification of this phenomena.

Did you read about the "what survival means to us" somewhere, or was that just convos with friends?

Re:Psst: Fast Spotify client with native GUI, without Electr... by Nevermark on Saturday August 21, 2021 @11:56PM (#28262730)
Just a convo with one friend.
Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @02:05AM (#28206672)
Thanks! It's great to read the backstory of how the original Spotify client came to be:

> "Not to go into too much detail here, but at the time, most of the internet was made up of “thin clients,” like web pages or Flash-based clients that ran in-browser, and used more traditional, standardized protocols like HTTPS. Seeing the limitations of that, Ludde and a team of engineers ran in the exact opposite direction, creating a stand-alone “fat client,” building entirely new protocols and hybridizing client-server and P2P technology to suit their own ends. (Check out Episode 01, “How do you steal from a pirate?”, to hear more of that nitty-gritty stuff about persistent TCP connections and how our P2P implementation saved us bandwidth cost.) It was only by rethinking every layer of our infrastructure that we were able to pull Spotify off, to create that magic moment of double-clicking on a new song and having it instantly play. And speaking of magic …"

Having been an early user of the beta I presumed it had to be driven by people with this mindset from rethinking everything from bottom up to provide the best UX possible, would really love to read more about the technology used in the original Desktop client?

EDIT: Currently listening to “How do you steal from a pirate?” which is providing a more detailed backstory on the origins of Spotify:

https://open.spotify.com/episode/1jHRUXkeiUh44CK4KZQb0h?si=d...

Sounds like Ludde Strigeus, the creator of µTorrent was the key hire to make the original Desktop Client UX possible whose Desktop & P2P expertise was able to convince the rest of dev team to go down the path they did. Some interesting insights, they used Ogg Vorbis instead of mp3 using a custom designed TCP protocol because they were better able to strip packet bits down to transport just the audio bits required for playback.

> Michelle: The thing that happened that was kind of pure magic in that meeting was that [Daniel] did a comparison. He started playing a song on the software, and the song played so quick, so instant … I mean, I don’t know if people remember, but playback was slow back then. Even if you had an MP3 on your computer, and you played it via, you know, Winamp, iTunes, this was faster. And we were like, “You have the files on your computer, right?” And he was like, “No, it’s in the cloud.”

I had the same initial experience where I was blown away at how instant and responsive it was, at first I didn't believe it and thought it was doing some sort of pre-caching magic where it'd start downloading before selecting each song. So ran lots of tests where I did first time searches and immediately scroll to songs down the list of search results (to bypass any caches) and could see that it was indeed pulling traffic in real-time, the time from click/scrubbing to audio playing was just unbelievably fast.

Re:Psst: Fast Spotify client with native GUI, without Electr... by fps_doug on Tuesday August 17, 2021 @04:37AM (#28207556)
Yes, I miss this so much, I actually stopped using Spotify about 6 years ago. This might be nerdy, but the feeling of instant playback was just great.

This Electron crap is really a race to the bottom, so you can hire the cheapest college drop-outs to cobble together some JavaScript to add feature number 1001.

On another note, this ludde guy is one of the few rock stars in IT to me. Had a lot of fun on ScummVM, played OpenTTD to death, used µTorrent in College, you name it...

Re:Psst: Fast Spotify client with native GUI, without Electr... by mikeyjk on Tuesday August 17, 2021 @08:16AM (#28209033)
I'm really not seeing the features raining down on the electron client anyway. Seems like it has been the same clunky experience as always.
Re:Psst: Fast Spotify client with native GUI, without Electr... by disgruntledphd2 on Tuesday August 17, 2021 @01:05PM (#28212192)
It's probably easier for various teams not to break things, and it provides a more widely known environment (the browser essentially) to ensure that new hires can be pretty productive.

I definitely miss native apps, but I understand why they're less common now.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jayjader on Tuesday August 17, 2021 @06:25AM (#28208245)
> It was only by rethinking every layer of our infrastructure that we were able to pull Spotify off, to create that magic moment of double-clicking on a new song and having it instantly play. And speaking of magic …

This reminds me of a conference that John Carmack gave (in 2019?) where he goes over how [the occulus team] got input latency down to a manageable amount on modern hardware.

It's an interesting data point that both these efforts to produce "magic" required an in-depth "rethinking" of many of the underlying stack layers.

Re:Psst: Fast Spotify client with native GUI, without Electr... by MasterYoda on Tuesday August 17, 2021 @05:12AM (#28207759)
I guess much that did the first client light weight was because it was developed by Ludvig Strigeus. He devloped the very light and popular uTorrent client. Very early for Spotify they bought uTorrent AB, not for the uTorrent client, but because they wanted his skills and he was the person that developed the first Spotify client. A few month later Spotify sold the uTorrent client to Torrent Inc.

Ludvig Strigeus is a skilled developer and have got many awards, like the Polhem Prize which is a Swedish award for a high-level technological innovation or an ingenious solution to a technical problem. If I recall correctly, he is very good at writing very small and optimized c++ programs, but the code is very hard for others to understand and maintain. So I guess when Spotify become bigger and more developer needed to work with the code they needed a more "main stream" solution and had to abandon the first client.

Re:Psst: Fast Spotify client with native GUI, without Electr... by zanderz on Tuesday August 17, 2021 @03:17PM (#28213717)
The early versions of uTorrent were on the order of 80KB in size, it really was amazing. BitTorrent the company re-skinned it as BitTorrent the software and offered both versions for a few years, differing only by icons and colors, but fans held to strong opinions about which was technically better. It is true that the code was hard to maintain and extend though.
Re:Psst: Fast Spotify client with native GUI, without Electr... by judge2020 on Tuesday August 17, 2021 @12:11AM (#28206157)
The problem (or rather value proposition) is that the only thing that matters is the end-user's perceived value, and that's almost always in the form of features and stability. Most people don't care that it takes an extra 10-100 milliseconds for the UI to react compared to a native app, especially given they just want to listen to music, which the app does just fine. If people specifically don't like the social features, they'll be mad at the decision to implement those social features instead of 'what they used for the tech stack' since ultimately Spotify could have developed the same features in a native app with just a few extra weeks of sprint, if that.
Re:Psst: Fast Spotify client with native GUI, without Electr... by westoncb on Tuesday August 17, 2021 @12:41AM (#28206299)
The outrage around these supposedly egregious performance issues is more understandable when you consider that developers who spend a lot of time tuning performance in their work would naturally develop a 'selective attention bias,' magnifying the significance of what to others are negligible if not imperceptible differences.

Imagine the frustration of someone who, for example, did work on sound insulation for cooling systems: they sit out on a patio for dinner with friends and the sound of an inexpertly designed air conditioner appears to them as intolerably intrusive; meanwhile, no one else at the meal notices until it's pointed out.

Re:Psst: Fast Spotify client with native GUI, without Electr... by blub on Tuesday August 17, 2021 @02:09AM (#28206693)
Judging by the dismissals of performance concerns seen in typical online discussion threads, I'm not sure that developers working on performance tuning in any meaningful way still post online.

On the contrary, I have the impression that people snubbing performance while claiming that user satisfaction or business goals are the only things that matter do not care about performance or dare I say technical brilliance at all.

Re:Psst: Fast Spotify client with native GUI, without Electr... by yomly on Tuesday August 17, 2021 @05:42AM (#28207937)
I'm starting to come to the conclusion that performance is much more important than we realise.

This thread is about how Spotify seemed like magic in the early days. The original iPhone seemed like magic. Netflix seems like magic in how fast it can stream. Similarly, early google and amazon were always fast.

I believe our subconscious values speed as an indication of quality far more than our product owners know how to measure for.

Re:Psst: Fast Spotify client with native GUI, without Electr... by dimmke on Tuesday August 17, 2021 @10:00AM (#28209947)
I can only share my experience. I used Spotify for the first time in 2011. It completely defied what I thought was possible with music streaming.

Songs would play immediately. It was faster than iTunes. I believe Spotify is still faster than Apple Music.

This was at a time when I had no expectation that my smartphone's internet was fast enough to do much of anything. It was so impressive, that I became a paying customer and have been a paying Spotify customer for 10 years.

And Spotify pulls a lot of annoying bullshit. They have a habit of treating their users like shit in various ways - you pay and don't get ads in between songs, but they still spam pop ups and try to direct your behavior in various ways. It feels like their attitude towards you as a user is very much influenced by the "free tier" even if you're a paying customer.

Their various app UIs have suffered greatly over the years (current incarnation is mostly tolerable)

But the base thing they do - play music faster than any other service is what has kept me. I also don't think it is ethical that Apple can offer a competing service, while forcing Spotify to give up a significant cut of its revenue. I think it should be illegal, so I likely would never pay for Apple Music because of that.

Re:Psst: Fast Spotify client with native GUI, without Electr... by Cederfjard on Tuesday August 17, 2021 @04:25AM (#28207480)
In terms of running a business, surely user satisfaction and business goals are much more directly relevant than performance in and of itself, except insofar it contributes to the former? So it's not surprising to me that you'd see a lot of that sentiment on a forum hosted by a startup accelerator, nor that it's what for-profit organizations optimize for. That doesn't mean that people can't also have an appreciation for well-performing or technically brilliant code.
Re:Psst: Fast Spotify client with native GUI, without Electr... by westoncb on Tuesday August 17, 2021 @03:59AM (#28207349)
> I'm not sure that developers working on performance tuning in any meaningful way still post online

This is a very confusing comment to me since "cares a lot about performance" is probably one of the most consistent attributes of the HN readership—or they are at least a highly vocal subset of the community.

Personally, I respect technical brilliance, but believe it comes in many varieties, of which performance tuning is just one and not on any kind of higher plane.

Re:Psst: Fast Spotify client with native GUI, without Electr... by runawaybottle on Tuesday August 17, 2021 @01:49AM (#28206608)
The imperceptible becomes perceptible when you make it noticeably more perceptible. A better point would be to not even show the user what they are missing out on, because then that will be the standard. The danger of the latter is it is very likely your competitor(s) will show it to users anyway.

I’d let the guy that tinkers on performance keep tinkering.

Re:Psst: Fast Spotify client with native GUI, without Electr... by westoncb on Tuesday August 17, 2021 @02:36AM (#28206846)
Absolutely. Anyone building on top of performance critical systems should have a healthy bit of gratitude for the engineers who were interested to specialize there.

That said, I think it's good to remain as objective as possible about the actual impact of optimizing for performance in different domains.

So for instance, the impact of attention paid to performance in the codecs used by a music/video player, or the v8 runtime, or rendering or networking subsystems in e.g. macOS or Chromium is huge.

However, should we expect the impact of optimizing to be similar in application-level code for consumer apps? I would argue no (granting that exceptions exist). At this layer the computations are for business and display logic, and calling into highly performant subsystems. Additionally, they are typically 'leaves,' not dependencies of other systems (which would cause their performance choices to ramify).

This is not to say consumer apps are able to ignore performance concerns: you can still make garbage that way. But you'd be deep into the region of diminishing returns if you poured as many resources into performance for application-level code on something like Spotify as you did on e.g. codecs it uses or low-level rendering code it depends on.

And that's the reason tech like Electron is so often selected by folks whose bottom line is massively affective by their ability to be objective about these issues.

Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @03:05AM (#28207029)
There's a huge difference in the performance levels you're talking about, which creates a risk of unintentional equivocation.

I've written long rants about this in the past, so let me draw a picture instead:

   codecs,
   chrome     old spotify    slack, teams,
   renderer      |           current spotify
      |          |               | 
   |--v----------v----x----------v--------|
  FAST                |                 SLOW
                  slow enough
                to notice during
                  casual use
   
   \________/\________/\________/\________/
       |         |         |          |
      overkill   |       bad UX       |
                 |             you're just being
             good UX             mean to users
       (your app should be here)
Re:Psst: Fast Spotify client with native GUI, without Electr... by westoncb on Tuesday August 17, 2021 @03:28AM (#28207157)
A couple things here.

First is that this is fundamentally a question of tradeoffs, which means a single axis diagram like this is fundamentally misleading.

For instance, we have the conclusion about 'being mean to users' toward the slow end of the scale. But if the tradeoff means the app costs more, or has fewer accessibility or language features, or doesn't run on the user's chosen OS—which is more mean?

Second, this topic is contentious not because Spotify is slow but because many readers believe that building on Electron implies your app will be slow and is a basically negligent technology decision, a blight on the field of software engineering, and so on and so on... So, while I agree with your placement of Teams (though not Spotify incidentally), saying that because a couple Electron apps are not optimally snappy in this context reinforces the (imo) mistaken attribution of non-snappiness to Electron: afaict, of the major Electron apps out, there are at least as many that are snappy, and of the ones somewhat lacking in this department there are no native apps with feature parity to compare against (i.e. for Slack or Teams; Spotify otoh, maybe it is really bad for some people—not my experience, and the sample of 1 wouldn't prove much).

In any case, I like the diagram and largely agree with its assertions in isolation.

Edit: I'd be happy to take a look at one of your longer rants if you want to point me to one. I am genuinely interested in better understanding the situation if I've missed something.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jcelerier on Tuesday August 17, 2021 @04:24AM (#28207472)
> and of the ones somewhat lacking in this department there are no native apps with feature parity to compare against (i.e. for Slack

https://cancel.fm/ripcord/

literally developed by one person in Qt Widgets, covers both Slack and Discord, the installed size of the AppImage on linux is 30 megabytes

    $ smem -k | grep ripcord 
    jcelerier ripcord                            0    60.2M    63.6M    84.9M
with a dozen slack workspaces open and ~20 tabs
Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @05:21AM (#28207805)
Ripcord is lovely, I'm a paying customer[0] and highly recommend it. I used it for years with Slack, and have only good things to say about the experience. It's also a living proof that all the bloat in Slack and similar apps is absolutely not necessary.

That said, the issue with Ripcord and similar is that they're all living on borrowed time - and using them means risking your own account. It's only a matter of time before Slack and Discord start to ban people using alternate clients - and then poof, Ripcord is dead.

--

[0] - Fancy way of saying "bought a license when the dev finally enabled throwing some money towards them".

Re:Psst: Fast Spotify client with native GUI, without Electr... by antihero on Tuesday August 17, 2021 @01:46PM (#28212686)
> It's only a matter of time before Slack and Discord start to ban people using alternate clients

Pretty sure in the case of Slack that their business customers will have words when a bunch of their developers can't suddently communicate with the business...

Re:Psst: Fast Spotify client with native GUI, without Electr... by void_mint on Tuesday August 17, 2021 @04:13PM (#28214329)
I'd wager those devs will be told to use the official Slack client.
Re:Psst: Fast Spotify client with native GUI, without Electr... by antihero on Wednesday August 18, 2021 @04:09AM (#28218733)
So there’s no loss to using ripcord in the mean time.
Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Wednesday August 18, 2021 @05:15AM (#28219082)
There isn't, as long as you're willing to tolerate the risk of getting your account banned for blatant ToS violation. Companies like Slack tend to ban first, ask question never, and good luck reaching customer support if you aren't a paying business customer.

(FWIW, I judged the risk was wort the effort in my case, and was a happy Ripcord user for the years I had to use Slack.)

Re:Psst: Fast Spotify client with native GUI, without Electr... by westoncb on Tuesday August 17, 2021 @05:48AM (#28207972)
That's pretty awesome, hadn't heard of it before.

That said, I think it's important to consider how much development time is spent on iterating as a new product's design is figured out. The company developing Slack has probably done the net work of building it 20 times over as its feature set developed and morphed over the years—and I'm sure Slack's actual complete feature set eclipses Ripcords (most of the difference coming in via features not essential to most individual users, but key to the business).

The workspace and tab counts are also hard to read much meaning from since most of the memory usage is dependent on the media that's been loaded into the app. How many web page previews, videos, images, etc. are in those tabs?

In any case, at the end of the day our sample sizes here are just too small to draw the conclusions people on here so often do about Electron. We know you can move fast with it (development speed), and that apps built with it can be fast (e.g. VSCode, Github desktop client, Discord)—but people can also build slow apps with it (no surprise), and there is a somewhat large constant factor for install size (~50mb base).

In my mind that does not stack up to merit the kind of complaints about Electron that can be found here every day.

Re:Psst: Fast Spotify client with native GUI, without Electr... by MereInterest on Tuesday August 17, 2021 @08:11AM (#28209004)
> apps built with it can be fast (e.g. VSCode, Github desktop client, Discord)

I can't speak to the other two, but there is no way I would describe Discord's client as "fast". Starting the application takes 8-10 seconds during which it pops up several different windows on top. Switching between channels has a delay of about 1 second or so. If that channel isn't in cache, then it adds another 3-6 seconds of delay.

Switching between views isn't a new task, and isn't an infrequent one. If I think back to pidgin 20 years ago, the startup time was much faster, and switching between tabs had no perceptible delay. Discord has the advantage of 6 years of Dennard scaling followed by another 14 years of Moore's Law, so it has zero excuse for not being able to perform those same tasks to the same standard.

Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @06:26AM (#28208258)
You raise very good points, that together make the picture even more complex :).

> The company developing Slack has probably done the net work of building it 20 times over as its feature set developed and morphed over the years

That's definitely true, especially in areas where they were innovating (or at least experimenting with features that were not common in the space). There's a cost to R&D, and I'll agree that preferring velocity is important to minimize that cost, which justifies the use of "nice for devs, bad for UX" tools[0].

> I'm sure Slack's actual complete feature set eclipses Ripcords

That's true. Ripcord doesn't replicate Slack 1:1, there were few "sparkly" that were cut (at least when I used it ~2 years ago), and of course a lot of the chrome that got removed could be considered features by some. But at least by metric of productivity, Ripcord's UX eclipses that of Slack.

> (most of the difference coming in via features not essential to most individual users, but key to the business)

In this particular case, I'd say it was 90% just removal of resource-intensive bloat. But that's a good observation in general: one of the reasons some users are dissatisfied with official apps is because of what they[2] deem as user-hostile features, existing to exploit the user instead of aiding them. Obviously, they're put there because they're the key to the business. Plenty of obviously bad UX can be easily explained when one looks at how the vendor actually makes money.

> How many web page previews, videos, images, etc. are in those tabs?

Ripcord either doesn't load those or is lazy about it. But when it does, you at least get the full picture, instead of having to click through some gallery-like popup interface :).

> apps built with [Electron] can be fast (e.g. VSCode, Github desktop client, Discord)

People will contest with you here because they're using a different reference point for "fast". VSCode is impressively fast... for an Electron app. Not so much in comparison to desktop-native apps implementing equivalent features. And that's the one well-known exception, a typical Electron application is noticeably slower and more resource-intensive than an equivalent desktop app.

> large constant factor for install size (~50mb base)

This is not something that people care about unless you're doing something silly, like an Electron TODO app that weighs 50MB and uses many times more of RAM, where the reference comparison is against a WinAPI app that would weigh 50 kilobytes and use not much more of memory.

This is also why people don't generally complain about VS Code being Electron - it actually makes good use of all the features its platform offers. But most Electron apps? Picking Electron saves developers a little bit of time, at the cost of heavy resource tax for all users. That's annoying. Especially if you have experience with native software that gives you reference points to compare.

--

[0] - I'm definitely guilty of this myself. At my previous job, I developed a prototype for 2.0 version of the company's flagship product in two weeks, in... ObservableHQ[1]. The actual work to reimplement those features in our product took almost a year. I did joke we should probably ship the prototype in the meantime (especially given that our main competitor was an Excel plugin), but we never seriously considered that.

[1] - https://observablehq.com/

[2] - And when I say "they", I also mean myself in most such discussions.

Re:Psst: Fast Spotify client with native GUI, without Electr... by Const-me on Thursday August 19, 2021 @06:15AM (#28232148)
Thanks so much for that link!

They got my €18 immediately after I managed to change font sizes and typefaces to the ones I like.

Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @05:17AM (#28207788)
> First is that this is fundamentally a question of tradeoffs, which means a single axis diagram like this is fundamentally misleading.

Agreed on the tradeoffs, and the diagram is a projection of complex parameter space onto a single axis.

> But if the tradeoff means the app costs more, or has fewer accessibility or language features, or doesn't run on the user's chosen OS—which is more mean?

That's a very tricky question, because relationship between performance and those other factors is not straightforward. For example, the cost of making an app in a typical startup has zero relation to what the users pay - development is funded from investor money, and user-facing price is set by whatever shenanigans the business is doing at the moment - e.g. $0 to corner the market or maximize growth, or $10 as a calculated point that maximizes money extraction from a growing user base, etc.

(One would think there's no free lunch, and eventually the price has to come close to costs - but that's not how startups economy works. If you get to the point of having to turn actual profit, you've already missed your exit.)

Related to this is a second point: in a winner-takes-all market, the most successful app will suck the oxygen out of the room, preventing others from doing better work. Success typically isn't determined by the app itself - the app is usually backed by a service, which makes it not commodizable. If you need Teams because of network effects, you won't switch to Slack even though the app is better. You won't dump Spotify for a competitor that doesn't have an equivalent musical catalog. Etc.

The point I'm trying to make is: the trade-offs are often arbitrary choices. Would it be possible for an app to successfully compete with Spotify while having fast, native clients for every platform and full accessibility? Definitely. But it's not happening because it's not possible for that app to break into that market in the first place. Our would-be app can't compete on being a better music streaming player - it has to first reproduce the entire value-offering, including the streaming service, the library, and countless of deals negotiated with labels and musicians. This isn't happening, and so Spotify isn't getting any feedback from the market about their godawful garbage apps.

> because many readers believe that building on Electron implies your app will be slow and is a basically negligent technology decision, a blight on the field of software engineering, and so on and so on...

I'm partial to this view. The way I see it, picking Electron by default lands you smack in the middle of what I labeled as "bad UX" zone. It takes hard work - the kind of work you've described as trading against accessibility or existence - to move it into the "good UX" zone. That work isn't usually done - you don't pick Electron if you want to make a snappy app, you pick it because you care about velocity, cornering your little part of the market. So Electron apps tend to move towards the "now you're being mean" zone - which is where this common view of "Electron = bloat" comes from.

Re:Psst: Fast Spotify client with native GUI, without Electr... by westoncb on Tuesday August 17, 2021 @06:15AM (#28208176)
> ... the cost of making an app in a typical startup has zero relation to what the users pay ...

These aspects of where the money comes from are orthogonal to the tradeoffs problem though: at the end of the day you have some quantity of money and spending it on A means you don't spend it on B. If performance was sacrificed, you can't look at that in isolation: whether it was a good decision or not depends on what it was traded for.

> But it's not happening because it's not possible for that app to break into that market in the first place.

That whole situation is unfortunate, but tech like Electron that allows companies to take advantage of it also enables independent developers to build things they wouldn't otherwise have time for. It's purely an increase in power and individuals can use it for good or evil.

> It takes hard work - ... - to move it into the "good UX" zone.

This isn't true. If you are to the point of having noticeable performance problems using the DOM/Chromium to render the kind of desktop application UI you might build with QT—you have seriously fucked up (imo). Out of the box this should be blazingly fast; there is nothing extra you need to do to make it fast. Just like don't run expensive computations on the render thread and don't be sloppy lol.

Where the situation complicates is once 'web development culture' is brought into the picture—and I think that's an interesting topic in itself—but it's separate from attributes inherent in Electron.

Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @06:31AM (#28208296)
> Where the situation complicates is once 'web development culture' is brought into the picture—and I think that's an interesting topic in itself—but it's separate from attributes inherent in Electron.

Fair enough. Myself, I mentally conflate the two - and I suppose so are most of the people criticizing Electron. This position is not without its merit, though: one of the main selling points of Electron is that you can leverage all the libraries developed for the Web.

It's the same thing as with regular web apps - modern browsers are amazingly fast, and you can create snappy experiences with vanilla JS and enough elbow grease. But people naturally reach for modern frameworks - and that very decision is what usually kills snappiness at the spot.

Re:Psst: Fast Spotify client with native GUI, without Electr... by bavell on Tuesday August 17, 2021 @09:51AM (#28209835)
Great thread and discussion. IMO, there's some overhead to using a framework but it's marginal compared to the data model/flow/architecture you've chosen to implement. I don't think reaching for a framework kills snappiness nearly as quickly as reaching for a convenient but inefficient data model.
Re:Psst: Fast Spotify client with native GUI, without Electr... by westoncb on Tuesday August 17, 2021 @06:43PM (#28215643)
> you can create snappy experiences with vanilla JS and enough elbow grease ... But people naturally reach for modern frameworks - and that very decision is what usually kills snappiness at the spot

I think there is still a misconception here though: A) no elbow grease is required, and B) just using a popular framework (React, Vue) is not going to slow things down.

RE A, I would recommend just giving this a shot if you haven't: try building a desktop application-like UI with html/css/js executed by Chromium. My expectation of what you would find: it is snappy by default, and it's not even clear how you would write UI code bad enough to create a sluggish experience like e.g. Teams. IMO the explanation probably lies within some organizational structure at Microsoft, not the tech they're building on. (One exception to the rule of things being fast by default: with animations it's fairly easy to shoot yourself in the foot, but it doesn't typically take more effort for performant animations, just basic knowledge of what is quick and what is resource intensive.)

RE B, similar situation here: I think if you try building something with React/Vue you will see that they are also fast by default, and that no extra work is required to make them fast. That said, they (have the potential to) do a lot under the hood, so the potential for triggering something that would cause slowness is higher than without.

After writing this it seems like our disagreement may come down to this: my point is that the tech isn't inherently slow and that a disciplined/experienced programmer can use them to rapidly build high quality software; but maybe from your perspective the more significant thing is that in practice many developers using the technology do end up making sluggish/bloated software, so: that the tech allows people to make slow things fairly easily is more important than its equal potential to make fast things. I.e. the problem is that there are no guardrails + it is the tech of choice of a huge community of developers, many of whom would benefit by the guardrails? (I don't main to blame devs here so much, it's probably more that fault of businesses' priorities than anything)

Re:Psst: Fast Spotify client with native GUI, without Electr... by scns on Tuesday August 17, 2021 @08:03AM (#28208957)
You can pick a modern framework that cares about performance, eg Svelte or Solid.
Re:Psst: Fast Spotify client with native GUI, without Electr... by SilverRed on Tuesday August 17, 2021 @02:01AM (#28206660)
None of the competitors care about making the ui 20ms faster. Apple music just flat out didn't work for me, totally broken for the web version and not even an electron app.

Spotify is already better than the alternatives.

Re:Psst: Fast Spotify client with native GUI, without Electr... by snek_case on Tuesday August 17, 2021 @01:36AM (#28206546)
The Spotify website and phone apps don't just have performance issues, they have awful bugs that have been left unfixed for months/years. When streaming to a Chromecast, the UI quickly gets out of sync, randomly disconnects, etc. I'm resorting to using a bluetooth receiver connected to my amplifier because that works better. The recommendations are also getting worse IMO, though that's more subjective, hard to quantify, but the amount of time I spend using Spotify has gone down a lot, just because I'm not discovering enough interesting tracks anymore.

IMO, Spotify is neglecting its core features, and that will ultimately hurt the platform. However, there is such a thing as network effect, and they may have the broadest selection of music. That will keep the platform growing, up to a point. Eventually, the growth numbers may peak and slow down. It's just that there's a lot of inertia right now, and the growth is still going upwards, but eventually, gravity might catch up.

Re:Psst: Fast Spotify client with native GUI, without Electr... by ouchjars on Tuesday August 17, 2021 @03:24AM (#28207134)
> The recommendations are also getting worse IMO

It seems to me that this happens on a per-user basis as recommendations are overfitted to the recommendations they've already listened to. They overfit so much that if you put a playlist of 1000 tracks you like on shuffle, it will only play the hundred or so tracks the algorithm has decided you "really like", and it will play almost the same selection if you put it on shuffle the next day.

YouTube music (music on YouTube, not YouTube Music) works the same way but less subtly. I had a great few months discovering music through their recommendations, until literally every song I listened to would be followed on autoplay by "Sergio Mendes feat. Black Eyed Peas - Mas Que Nada" or "Funky Destination - The Inside Man (Soopasoul remix)".

Re:Psst: Fast Spotify client with native GUI, without Electr... by srmarm on Tuesday August 17, 2021 @07:38AM (#28208772)
During the first lockdown my girlfriend and I would put music videos on youtube on a Friday night. No matter where we started we'd end up funnelled to 'Len - Steal my Sunshine' and then a predictable list of likable but before long thoroughly overplayed songs.

It became a bit of an in-joke with us but yeah the youtube recommendation algorithm is dreadful.

Re:Psst: Fast Spotify client with native GUI, without Electr... by Shacklz on Tuesday August 17, 2021 @03:24AM (#28207131)
> Most people don't care that it takes an extra 10-100 milliseconds

I probably wouldn't care about it too much if they didn't mess up the rest of their apps into the dogturd that they currently are. Doing bad UX is one thing, making UX consistently worse with pretty much every update another. And that's what Spotify has been doing for years now - if I could go back to a client-version from a few years ago, I would, immediately, without thinking twice.

The fun part? My company jumped on the SAFe-train a while ago, and Spotify was heralded as the "prime example" of where agile and all that works out really well.

I have no idea what they are doing, but whatever it is - if they continue like this, I'll go back to pirating music, because they're getting really close to having just-as-bad of an experience as that. And I really don't mind paying 20 bucks for my family account; experience is all I care about.

Re:Psst: Fast Spotify client with native GUI, without Electr... by open-source-ux on Tuesday August 17, 2021 @02:41AM (#28206874)
Users do notice speed issues in apps and websites.

The NNGroup has done studies with users to gather reactions to slow websites in 1997 and 2010. They remain relevant in 2021 to both apps and websites: "Users really care about speed in interaction design" [1]

A few weeks ago someone on HN shared the reflections of the developer of SumatraPDF - a native Windows PDF reader that is small, lightweight and performant (all the things that Adobe Acrobat Reader is not).

From the developer Krzysztof Kowalczyk: "I believe being small and seemingly fast was a big reason for adoption...there will never be a time when users want bloated and slow apps, so being small and fast is a permanent advantage." [2]

[1] Website Response Times (2010): https://www.nngroup.com/articles/website-response-times/

[2] Lessons learned from 15 years of SumatraPDF : https://blog.kowalczyk.info/article/2f72237a4230410a888acbfc...

Re:Psst: Fast Spotify client with native GUI, without Electr... by blub on Tuesday August 17, 2021 @02:34AM (#28206836)
Generic statements such as "most people don't care [...] extra 10-100ms for the UI" need to be supported by evidence, especially since those 100ms are added to existing latency and 100ms is considered the threshold where operations feel instantaneous [1].

Still, for certain things 100ms is too much. Android famously had a round-trip audio latency of a bit above 100ms which made it a poor choice for music apps - in contrast to iOS. They now require 20ms in the Android Compatibility Definition Document and admit that musicians require 10ms [2].

In addition to that, hitting the 100ms threshold doesn't mean that lag is not noticeable or not annoying. There was an article about keyboard lag posted on HN a while ago, and the top comment was likewise interesting: https://news.ycombinator.com/item?id=15486494.

[1]: https://www.nngroup.com/articles/response-times-3-important-...

[2]: https://developer.android.com/ndk/guides/audio/audio-latency

Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @03:15AM (#28207080)
Yup. 100ms may be working as "instantaneous" in isolation. If you start chaining interactions, it absolutely isn't.

Once per 100ms means 10 times per second. A game running at 10FPS would be considered unplayable, not just because of choppy rendering, but also because of input lag.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jack_pp on Tuesday August 17, 2021 @01:37AM (#28206557)
Spotify's Android app is of very poor quality.

Search is just so basic, you can not have any typos whatsoever.

There is no proper history function. Say you start a radio, it only remembers that you started a radio but if you come back to it you probably will not have the same songs.

Connectivity is piss poor. If you lost connection you will have to restart the app otherwise you won't be able to use search.

While this is about the native desktop client, I assume it has similar problems so the argument that it is only a couple milliseconds of latency doesn't hold up. Their UX is the worst I've ever had to deal with in a music app.

Re:Psst: Fast Spotify client with native GUI, without Electr... by vxNsr on Tuesday August 17, 2021 @02:26AM (#28206788)
You know what’s fascinating, I find these same things so annoying and also use it less because of that… but crucially I still pay for it. So in essence I’m their best customer. I pay and I don’t use it. All streaming platforms operate like gyms, they want the most paying customers who forget they even pay for the service and don’t really use it.

I’m guessing someone in Spotify’s marketing dept or user retention came up with an algo that determined the features/bugs that would make the service just bad enough that it’s still usable (and thus worth paying for) but too annoying to use too often.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jack_pp on Tuesday August 17, 2021 @03:26AM (#28207144)
Yeah i still pay for it too even though I mostly use youtube music now which is much better in my opinion. I'll go ahead and cancel it because of this thread.
Re:Psst: Fast Spotify client with native GUI, without Electr... by gmassman on Tuesday August 17, 2021 @01:45AM (#28206590)
It's true. I'm sad to see how far downhill Spotify's UX has slid on all fronts, but especially native. They are also suffering significantly on the customer service end. I asked for a data dump months ago and haven't gotten anything more than an automated "we're working on it" in May.
Re:Psst: Fast Spotify client with native GUI, without Electr... by bradstewart on Tuesday August 17, 2021 @10:35AM (#28210304)
The most irritating thing to me is the constant shuffling of the menu. I'm sure they're running some sort of A/B test, but every update seems to randomly moving the menus around for no apparent reason.
Re:Psst: Fast Spotify client with native GUI, without Electr... by ryosuke on Tuesday August 17, 2021 @05:37AM (#28207896)
I've had the same exact experience. You lose connection once and there's no way to get back to your music without restarting the app. The iOS version is better but still not amazing.
Re:Psst: Fast Spotify client with native GUI, without Electr... by rightbyte on Tuesday August 17, 2021 @05:55AM (#28208026)
> Search is just so basic, you can not have any typos whatsoever.

I'd rather have queries for exactly what I type then Google's irrelevant "never gonna let you down" answers.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jamil7 on Tuesday August 17, 2021 @02:47AM (#28206906)
The iOS client isn’t much better, it seems as if they’ve given up on decent offline support all together.
Re:Psst: Fast Spotify client with native GUI, without Electr... by systemvoltage on Tuesday August 17, 2021 @01:16AM (#28206451)
If we followed similar arguments about hardware, we wouldn't have Apple today. The entire premise of Apple's hardware is that it is beautiful, well designed, with attention to details even in places where the user would never interact (motherboard layout and finish).

You might be guessing from intuition that 10-100ms latency doesn't matter, but I suspect that it does. You can feel the philsophy of the company when you use their products and they feel wonderful. It's a culmination of attention to detail in every aspect of development. I love Sublime Text precisely because of how fast it is.

Re:Psst: Fast Spotify client with native GUI, without Electr... by imachine1980_ on Tuesday August 17, 2021 @01:31AM (#28206514)
trashcan, butterfly keyboard, bending displays, less intuitive user interface in post of similar style whit ios?
Re:Psst: Fast Spotify client with native GUI, without Electr... by systemvoltage on Tuesday August 17, 2021 @02:00AM (#28206654)
Touche, we need some finest software equivalent of Rolls Royces. Luxury software industry doesn't exist, I wish it did. I'd gladly pay 2x for a piece of software that is well crafted.
Re:Psst: Fast Spotify client with native GUI, without Electr... by panda88888 on Tuesday August 17, 2021 @02:09AM (#28206697)
Rolls Royces equivalent software would cost at least 10x if the cost ratio is analogous to the vehicle prices.

And they would expect you to have an assistant to work the software for you. ;P

Re:Psst: Fast Spotify client with native GUI, without Electr... by inter_netuser on Tuesday August 17, 2021 @03:27AM (#28207150)
Crudely put, luxury market is iOS.

A lot more “luxury” apps compared to android, and priced accordingly.

e.g. $50 for a todo list app, etc.

Re:Psst: Fast Spotify client with native GUI, without Electr... by ipv6ipv4 on Tuesday August 17, 2021 @02:00AM (#28206655)
I disagree with the assessment that an extra 10-100ms doesn’t matter.

How pleasant an app is to use does affect a user’s perception of an app and product even if they can’t articulate it. Fit, finish and polish do matter.

Re:Psst: Fast Spotify client with native GUI, without Electr... by inter_netuser on Tuesday August 17, 2021 @03:24AM (#28207133)
Arguing app performance doesn’t matter sounds like extra polish and better fitting parts without gaps or creaks on luxury cars just do not matter.

Yes, rusty creaking lambos are the best. The rustier and creakier the better.

Re:Psst: Fast Spotify client with native GUI, without Electr... by laurent92 on Tuesday August 17, 2021 @03:19AM (#28207101)
This. 10ms matters.

On my first iPad, gestures seemed to actually move the screen like paper. Now you perform the gesture and the screen does it’s animation. It doesn’t feel alive. And the animation gets in the way, because you need to wait for it.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jgb1984 on Tuesday August 17, 2021 @03:12AM (#28207066)
Myself and every (non-technical) user of Spotify I know complains about the horrible mobile and desktop apps. The android one is an absolute dog, even on mid to high end smartphones.

If you neglect your core features in exchange for pointless trinkets you're setting yourself up for failure.

The first alternative to show up with an equally vast catalog, but a light and fast interface is going to win a lot of customers in no time.

Remember this is streaming: there is no friction for me to switch. I export/import my playlists and it's done.

Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @05:41AM (#28207924)
> The first alternative to show up with an equally vast catalog (...)

This is exactly why Spotify can decay so badly and still succeed. This is why most widely-used apps are so bloated and offer such ridiculously bad UX. It's because the whole point of the business behind them is to ensure there will be no alternative.

Slack, Teams, Discord, et al. live off network effects. You'll go where the community is. At work, you'll use what your employer picks for you, and your employer has a huge list of concerns[0] that are more important to them than user experience. Spotify survives because of the catalog - making a streaming app is relatively trivial; reproducing all the deals with labels and individual artists is an insurmountable barrier. Netflix was untouchable up until their distribution deals expired, at which point the owners of the content all spun up their own streaming services - but a random entrepreneur can't possibly break into that market.

--

[0] - Ranging from "does it tick the right cybersecurity questionnaire checkboxes", through "does it integrate with our SSO", "does it work with our SharePoint", to "was the golfing with the salesperson fun".

Re:Psst: Fast Spotify client with native GUI, without Electr... by jgb1984 on Tuesday August 17, 2021 @06:09AM (#28208141)
How many devs do they employ? How big is their cashflow? And still they fail to develop a glorified winamp that's not an exercise in frustration to use? The thing is bloated, slow and riddled with bugs that go years unfixed. Why take the risk of offering such a crap experience, just because you can afford it? Hubris? Incompetence? Both?
Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @06:28AM (#28208279)
> Why take the risk of offering such a crap experience, just because you can afford it? Hubris? Incompetence? Both?

They have an insurmountable barrier to entry built out of their deals with labels and artists. They just don't care - caring cost money that could be used elsewhere in the business.

Re:Psst: Fast Spotify client with native GUI, without Electr... by hfsh on Tuesday August 17, 2021 @07:02AM (#28208514)
>This is exactly why Spotify can decay so badly and still succeed.

The thing is, that for many people Spotify wasn't competing with other platforms. Spotify was more convenient than downloading music. And at some point of decay, it no longer is.

Re:Psst: Fast Spotify client with native GUI, without Electr... by shp0ngle on Tuesday August 17, 2021 @03:22AM (#28207121)
I mean

I have one of the fastest laptops (Apple M1 MacBook Pro) and now I opened Spotify and it was just a black screen for about 1 minute before it showed anything. Then it started.

It is usable. But not good.

Re:Psst: Fast Spotify client with native GUI, without Electr... by thesuitonym on Tuesday August 17, 2021 @10:52AM (#28210495)
> Most people don't care that it takes an extra 10-100 milliseconds for the UI to react compared to a native app

You can tell this is true because people keep complaining about it, and developers keep reminding us that we don't actually care about how slow apps are.

Re:Psst: Fast Spotify client with native GUI, without Electr... by legulere on Tuesday August 17, 2021 @01:35AM (#28206539)
The problem is that the people with decision power over software are usually not the ones who actually use it and latency issues are more of a subconscious thing. Slow programs just feel less good to use until they reach a pretty high threshold where it feels unbearable.

For speed good enough is just very far away from good (factor 10-1000)

Re:Psst: Fast Spotify client with native GUI, without Electr... by spoonjim on Tuesday August 17, 2021 @01:43AM (#28206584)
The stability of Spotify is awful, I use Spotify to entertain my kids in the daytime and put them to bed at night so I’m a heavy user. Connecting to external speakers through Connect is very unstable.

The thing that keeps me on Spotify is that I’ve invested a lot (but not insane) time in curating my playlists. If I was guaranteed a high quality experience with a competitor I would make the switch but I’m not going to make the switch just to find out that the competitor also sucks.

Re:Psst: Fast Spotify client with native GUI, without Electr... by bigfudge on Tuesday August 17, 2021 @03:06AM (#28207033)
Transferring playlists is pretty easy. There’s a web app that connnects to most services and moves tracks between them
Re:Psst: Fast Spotify client with native GUI, without Electr... by nicoburns on Tuesday August 17, 2021 @05:21AM (#28207804)
The problem is it's only 10-100 milliseconds when my computer is otherwise unloaded. When my machine is under high load that turns into several seconds.
Re:Psst: Fast Spotify client with native GUI, without Electr... by handrous on Tuesday August 17, 2021 @10:52AM (#28210488)
My wife doesn't know WTF Electron is, but definitely notices when a pile of Electron "apps" are slowing her computer to a crawl.
Re:Psst: Fast Spotify client with native GUI, without Electr... by ohthehugemanate on Tuesday August 17, 2021 @06:00AM (#28208068)
> the only thing that matters is the end-user's perceived value, and that's almost always in the form of features and stability.

I think here it's more accurate to say, "the business' impression of the end-user's perceived value".

Because a snappy user experience DOES have real value; in web we are very conscious that milliseconds cost viewers in load and response times. It's well documented that brand positivity is connected to load and response times.

But users don't know to tell you that until the performance gets REALLY bad. Consequently it's hard to get this value from a user survey, and hard to communicate internally as a value prop. Capabilities are much more business process friendly.

Re:Psst: Fast Spotify client with native GUI, without Electr... by specialist on Tuesday August 17, 2021 @01:45AM (#28206591)
Probably. But I'd like to think fit & finish makes an app more sticky.
Re:Psst: Fast Spotify client with native GUI, without Electr... by southerntofu on Tuesday August 17, 2021 @04:19AM (#28207439)
> Most people don't care that it takes an extra 10-100 milliseconds for the UI

TLDR: up to 100ms latency is fine, but alongside higher RAM usage, and when applied to all programs across your machine (not just a single app), hell breaks loose.

I entirely agree with this statement. However, most people don't have a high-end machine like the developers test on, and actual difference in latency between an electron app and a web app may be over an order of magnitude larger.

The problem is in many parts of the world (including in poorer communities of the global north) people rely on second-hand hardware which even in 2021 typically has 1-4GB of RAM, so a single application taking hundreds of megabytes when not over a gigabyte of RAM will quickly lead to you swap hell and render your entire machine slower.

Despite being an ardent GNU/Linux user, I believe the linux kernel OOM is close to the worst that can be done in this matter (although there are certain progresses with eg. earlyoom), but MacOS and Windows are certainly not immune from it. You'd be surprised just how much people avoid using their computer altogether when they don't absolutely need it, just because it's slow as hell, just because developers in their ~ivory towers~ offices didn't do testing on reasonable second-hand hardware.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jcelerier on Tuesday August 17, 2021 @04:26AM (#28207486)
I don't understand in which universe 100ms latency is fine. It's an insane amount of time. Hell, when you're used to 140+hz refresh rate, apps that have hardcoded a 60fps GUI refresh loop, so 16ms between two frames, are terribly obvious (and really feel like a pain to use)
Re:Psst: Fast Spotify client with native GUI, without Electr... by southerntofu on Tuesday August 17, 2021 @04:58AM (#28207679)
It's not good, but it's not the worst. Of course i prefer applications which feel instantaneous, but these are hard to come by nowadays. I don't have strong opinions for 140Hz refresh rate, because i don't think i ever had monitors with more than 60Hz.

Many modern JS/Electron apps are in fact network bound for UI updates which is the worst possible thing you can do... just try to use element.io in a Tor Browser on a normal xDSL connection and you'll see what i mean (unless it's improved recently). So on this scale of the absurdity of modern software engineering, 100ms latency for user interaction is not all that bad... although my GUI/CLI tools in the 90s were much snappier than that and we have in fact greatly regressed as a field.

Re:Psst: Fast Spotify client with native GUI, without Electr... by jcelerier on Tuesday August 17, 2021 @05:54AM (#28208006)
> Many modern JS/Electron apps

made my blood boil every time I had to use them. Even the poster child for a good Electron app, VS code, while packed with cool features, feels so sluggish next to Qt Creator that it distracts me from my work constantly when I use it.

Thankfully, on my Linux desktop, the actual number of such apps I actually need is precisely zero, everything has at least one (much snappier) Qt or GTK alternative.

> just try to use element.io in a Tor Browser on a normal xDSL connection and you'll see what i mean (unless it's improved recently).

I just tried without Tor and counted 5-6 seconds between the time where I clicked on "Open in your browser" and the page actually showing up here: https://element.io/get-started, so I'll happily pass

Re:Psst: Fast Spotify client with native GUI, without Electr... by gsich on Tuesday August 17, 2021 @07:04AM (#28208528)
They do care if they have a comparison.
Re:Psst: Fast Spotify client with native GUI, without Electr... by tjbiddle on Tuesday August 17, 2021 @01:34AM (#28206537)
Spotify has certainly degraded over time. My latest frustration: Controlling external devices via my computer or phone.

I'll often play from my phone and connect it to my Echo speaker group. This used to work so seamlessly - it was beautiful.

But now - it takes 10 seconds for the initial connect. If I hit play/pause there's a 5-second delay to the point where I'll tap it twice, which is also delayed, and then it'll stutter and jump around. And worst of all: I'll hit pause, come back to it in a few minutes, and it's completely disconnected.

Re:Psst: Fast Spotify client with native GUI, without Electr... by miki123211 on Tuesday August 17, 2021 @04:34AM (#28207535)
One of the big (for me) issues with the old, native client was accessibility, or the complete lack of it.

As a screen reader user, I couldn't use Spotify at all before the Chromium client was released, first in beta and then in stable.

Spotify's desktop accessibility was... passable, but far from great. It improved massively with the most recent UI redesign, which is almost universally hated by sighted folks.

This is a pattern I see pretty often, Reddit is another great example. Old Reddit is almost unusable to me, the new one is a massive improvement.

Re:Psst: Fast Spotify client with native GUI, without Electr... by amerine on Tuesday August 17, 2021 @12:33AM (#28206261)
Rdio's app was stunning compared to Spotify imo.
Re:Psst: Fast Spotify client with native GUI, without Electr... by montag on Tuesday August 17, 2021 @02:01AM (#28206659)
Rdio was great, but it could not compete with Spotify’s performance. The funny thing is, those performance advantages (p2p streaming and a native C++ desktop client) are now ancient history. Rdio was ahead of its time.
Re:Psst: Fast Spotify client with native GUI, without Electr... by djhworld on Tuesday August 17, 2021 @04:20AM (#28207446)
Additionally Spotify's original app came out at the time iTunes was (is?) a big bloated mess, especially on Windows.

When Spotify came along it felt like a breath of fresh air, light, nimble, instant playback. Obviously the streaming approach was a departure from the older way, but it just felt so much better to use.

Such a shame they seem to have lost their way with the browser based thing.

Re:Psst: Fast Spotify client with native GUI, without Electr... by matheusmoreira on Tuesday August 17, 2021 @12:27PM (#28211676)
> unauthorized clones

Are we really living in a world where we need "authorization" to replace some corporation's software with our own?

Re:Psst: Fast Spotify client with native GUI, without Electr... by cronix on Tuesday August 17, 2021 @03:28PM (#28213835)
> Spotify's original client back in 2008 started out as beautifully light, custom rendered native client.

I think time is a large contributing factor. A lot of things start off simple and elegant. Then you have to come up with new features year after year after year (how old is the product?) in order to not appear stagnant and keep customers happy. "Oh, this other app got x feature, I want this in the app I use too!!!"

Here's kind of a video to illustrate the point, where Rick talks about iTunes. How it used to be, and how it evolved and is now. iTunes once ruled the world. It was simple, and elegant.

https://www.youtube.com/watch?v=MKJjLwMUPJI

Re:Psst: Fast Spotify client with native GUI, without Electr... by stayfrosty420 on Tuesday August 17, 2021 @05:17AM (#28207790)
Spotify removed a lot of their great social features from that time, as well as Spotify apps. Almost everything about Spotify has gotten much worse except the reccomendation algorithm.
Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @12:57AM (#28206365)
You can build snappy UIs with Electron. It’s easy to conflate organizational bloat’s consequences with something intrinsic to Electron.

Edit:

Upset downvoters care to elaborate? Or just huffing into the void?

Re:Psst: Fast Spotify client with native GUI, without Electr... by ducktective on Tuesday August 17, 2021 @01:54AM (#28206626)
Didn't downvote, but can you name a couple of Electron apps that are sna...,hell,.. not sluggish?

People usually point to VSCode...If that is the epitome of a responsive, lag-free software then I claim Electron defenders haven't seen snappy application.

Do people even remember Winamp?

Re:Psst: Fast Spotify client with native GUI, without Electr... by yboris on Tuesday August 17, 2021 @11:13AM (#28210755)
I built an Electron app Video Hub App and it's fast:

https://github.com/whyboris/Video-Hub-App

Electron is overkill for a todo app that you want users to open/close many times per day. But if it's an app that's used for 90% while it's open and is used a few times per week, who cares if it takes 2 seconds to start?

I don't understand what everyone is moaning about with Electron. My app uses 130mb of RAM -- is that too much to ask for, for a dedicated video browser?

ps - here's also a file renamer I built with Electron: https://github.com/whyboris/Simplest-File-Renamer

Re:Psst: Fast Spotify client with native GUI, without Electr... by kristiandupont on Tuesday August 17, 2021 @02:35AM (#28206843)
In my experience, my VSCode setup responds just as fast as my fully extended VIM does.
Re:Psst: Fast Spotify client with native GUI, without Electr... by inter_netuser on Tuesday August 17, 2021 @03:29AM (#28207162)
Are you remoting into your vim on a satellite link or some really far away box somewhere?

I see no other rational explanation here

Re:Psst: Fast Spotify client with native GUI, without Electr... by jamil7 on Tuesday August 17, 2021 @02:53AM (#28206940)
Somethings wrong with your vim setup then.
Re:Psst: Fast Spotify client with native GUI, without Electr... by skydhash on Thursday August 19, 2021 @08:08AM (#28232776)
I barely have released the return key after typing mvim and the macvim window is already there. Even Sublime is not that fast.
Re:Psst: Fast Spotify client with native GUI, without Electr... by iCarrot on Tuesday August 17, 2021 @02:17AM (#28206741)
Aside from the initial load that all Electron apps suffer from, Insomnia feels pretty snappy to me. Granted, I only have a few dozens of API that load 20KB of JSON max.

https://insomnia.rest/

Re:Psst: Fast Spotify client with native GUI, without Electr... by vladvasiliu on Tuesday August 17, 2021 @03:34AM (#28207192)
I love Insomnia and usually recommend it to others.

But I remember a few months ago I was developing a basic API and testing it through Insomnia. At first, I almost had a heart attack seeing the time it took to answer, between clicking "send" and getting a response back. All this running on localhost, on an old but fairly powerful box (i7-3930k, 64 GB ram). My first reaction was I must have had some sleep() lying around.

Then I looked at the details, and the actual time taken handling the call, etc, as reported by Insomnia was a few ms, all the rest was... I don't know what.

But I do agree than other than that, when interacting with the app itself (switch requests, type, etc) it feels snappy enough. I usually use it alongside IntelliJ, which while fairly fast, isn't terminal-level instantaneous.

Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @01:48AM (#28206606)
Maybe try elaborating yourself? The constant criticism of Electron Apps is that they're bloated and slow, you're claiming otherwise but missed the part providing any presumption of evidence to the contrary.

I've yet to experience any Electron App that's close to the snappiness and UX of the original native Spotify client, I'd like to hear about good examples of Electron Apps comparable to it.

Re:Psst: Fast Spotify client with native GUI, without Electr... by Kiro on Tuesday August 17, 2021 @02:32AM (#28206824)
Electron adds no more overhead than Chrome does. Any snappy web app can be packaged as an Electron app and be equally snappy. So if there are no snappy Electron apps it's because of the web, not Electron.
Re:Psst: Fast Spotify client with native GUI, without Electr... by TeMPOraL on Tuesday August 17, 2021 @03:18AM (#28207094)
> So if there are no snappy Electron apps it's because of the web, not Electron.

That is, indeed, the argument, except without the "if" part.

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @01:58AM (#28206648)
The web is filled with bloated and slow web applications. This is nothing new. Electron is taking the fall for existing on a popular platform that lots of fast moving companies are using and unfortunately gumming up with feature creep and poor architectural design.

I don’t care to share details of my past employers but I have absolutely worked on web apps that ran 60 Hz on mobile and looked beautiful to boot.

It was a team of senior devs though, and it was a small shop. We didn’t suffer from the same organizational issues at the time but as we grew, sure enough - the web application slowed as the need to move quickly and cut corners arose.

The point is that the web offers you a vast array of performance footguns that anyone on a tight schedule is going to wind up firing off at one time or another. Electron isn’t to blame. It’s architecture and code practices.

But the web is easy to hate, and by association Electron is going to take a ton of flack.

Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @02:12AM (#28206717)
Right, so still no evidence despite continuing to claim otherwise. Lets start off easy, what's the best example of a publicly downloadable Electron App that has the snappiest UX?

Having experienced the original Spotify App myself and having used many Electron Apps daily for years I'd posit that it's naive to claim the responsiveness and snappiness of the original Spotify App could ever be reimplemented in Electron. You're claiming it is, so lets hear about some examples we can actually use?

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @02:28AM (#28206799)
No evidence? I have no obligation to hold your hand.

I’ve worked in the industry for something on the order of like 15 years and have worked on extremely snappy web apps that I don’t personally care to name given my association with them.

I’m sorry you are disappointed by the web. I actually find VSCode to be an impressive achievement with Electron, though, fwiw - which is probably not much given your obvious predisposition.

Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @03:06AM (#28207036)
If you make a ludicrous claim the onus is on you to provide some resemblance of evidence to back it up, the extent and reasons you go into avoid doing so is obvious and transparent.

VS Code is a good general multi-purpose text editor that I use daily, but it's nowhere near the responsiveness and performance of a native editors like Sublime Text.

Opening a 1MB text file with no other VS Code windows open takes up 350MB, Sublime is 48MB. If I want to view a file quickly I'll use a native text editor. But please keep baselessly spouting how Electron produces the snappiest apps and how it's everyone elses fault for assuming just because every Electron App they've ever used is slow, it's not Electron's fault - which apparently when used in stealth internally produces just as fast and snappy UX's as native Apps.

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @04:38AM (#28207563)
You’re misrepresenting my argument.

I did not say Electron intrinsically produces snappy apps. I said that one CAN produce snappy Electron apps.

Which is indeed true, but as highlighted elsewhere by more reasonable individuals - the baseline for the web is slow. It requires expertise to do right, and in ways other platforms might not demand.

The benefit? Run it everywhere. The downside? $$$ and time. That’s why most just take their “run everywhere” benefit and accept the fact their app is going to be slow and/or a hog.

We’re discussing the platform’s potential, not the common case result of the platform’s broad userbase.

Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @05:13AM (#28207763)
> I said that one CAN produce snappy Electron apps.

You're still asserting they CAN without being able to cite any that does. You've only highlighted everyone's favorite VS Code example whose performance and resource usage is definitely not comparable to native text editors.

Everyone already knows the obvious benefits of Electron and why it's popular, that's irrelevant to your baseless snappiness claims on a thread about the impressive UX and responsiveness of Spotify's original Desktop App which even they themselves was not able to recreate when they moved to their new Desktop's CEF/Web UI architecture.

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @11:01AM (#28210622)
One needn’t exist for my claim to be true. It’s based on how the actual platform works and having built performant web sites. I would agree nearly every mainstream Electron implementation is a mess, but so is nearly every mainstream website. It’s rare companies deem it important to build that level of performance because by and large customers don’t give enough of a shit. Except Hackernews posters, that is.
Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @07:46PM (#28216092)
> One needn’t exist for my claim to be true.

Which explains everything.

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Friday August 20, 2021 @07:43PM (#28252651)
Having built them, I have nothing to prove to a bunch of goofs on here :)
Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Saturday August 21, 2021 @01:59AM (#28254606)
Of course you have, and no you're not fooling anyone.
Re:Psst: Fast Spotify client with native GUI, without Electr... by ducktective on Tuesday August 17, 2021 @02:06AM (#28206684)
It doesn't matter if that rotating loading indicator icon is rendered at 120hz or how fancy the boot animation is presenting latest commodities of the company shop...

When I open a software, I did so for a purpose, and I expect to actually do the thing as fast as possible and be done with UI...that's the reason why TUI apps are popular with power-users

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @02:09AM (#28206696)
That’s not what I mean when I say 60 Hz. I’m referring to performance navigating about the app. There was a small startup latency to populate the store but it was smooth sailing after that. Even that you could probably optimize out today with a talented team given all the new PWA tech.

I will say though that I’ve yet to work anywhere else that held themselves to a comparable performance standard.

Re:Psst: Fast Spotify client with native GUI, without Electr... by vxNsr on Tuesday August 17, 2021 @02:31AM (#28206820)
You claim electron apps can be fast but don’t give examples. Native apps are fast and there are many examples.

I have yet to use a fast electron app that didn’t hog ram.

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @11:07AM (#28210695)
Yep. I’m not familiar with a lot of great web apps anymore. The web has gotten really lazy, these days.

To the extent you understand the tech, though, you understand the problem was never the platform but really the hands it resides in. Nobody thinks its worth the extra work required to heavily optimize a web application.

One needn’t exist for me to be right, as unsatisfying as that may be to a group of folks unfamiliar with frontend perf on the web platform.

Re:Psst: Fast Spotify client with native GUI, without Electr... by vxNsr on Tuesday August 17, 2021 @02:57PM (#28213510)
Anything is possible. No one here is arguing it’s absolutely impossible for an electron app to be fast. But as you said the amount of work it would take is simply not worth it… with a lot less effort you could make a much more performant native app, so it’s never gonna happen.

You’re being pedantic and are upset that you’re being called out.

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @05:00PM (#28214800)
Hardly. I think it’s extremely worth the investment to make performant web applications. It’s the true vision of write once run everywhere. That a lot of naive leadership teams don’t understand or care to invest in that is a mistake - or perhaps a forced hand due to the lockout of web apps from the phone app ecosystem - not a demonstration of infallible analysis on the utility of the web platform.

The problem is not Electron. It’s far bigger than Electron. I realize this is a take that requires knowledge of the web platform and industry, however, and as such may simply be lost on folks without that context.

You’re being hard headed and am upset I don’t agree with you. Hope that helps

Re:Psst: Fast Spotify client with native GUI, without Electr... by neolog on Tuesday August 17, 2021 @02:33AM (#28206832)
https://pavelfatin.com/typing-with-pleasure/#editor-benchmar...

Atom is the Electron-based editor from GitHub. It's way slower than the others.

I can't think of any Electron apps that have low response latency. VScode's is noticeably much higher than, say, Emacs.

Re:Psst: Fast Spotify client with native GUI, without Electr... by blub on Tuesday August 17, 2021 @02:19AM (#28206750)
Web technologies are default-slow while native (except Java on Android) is typically default-fast. One needs to go out of their way to create a slow native app, even if it's of course possible.

Slowness is the natural state of web applications and creating a fast web application is much more difficult and requires a senior team with knowledge about browser implementation in order to avoid or work around the performance pitfalls.

I also have the feeling that such performance comparisons are done with the assumption that the apps under test are almost the only thing running on the machine. If every applications were to start 10 processes taking 1 GB of RAM things would get uncomfortably slow.

Re:Psst: Fast Spotify client with native GUI, without Electr... by neolog on Tuesday August 17, 2021 @02:28AM (#28206798)
> native (except Java on Android) is typically default-fast

Is anything fast on Android? I have a 2017 Samsung and it's always been slow.

Re:Psst: Fast Spotify client with native GUI, without Electr... by GekkePrutser on Tuesday August 17, 2021 @04:30AM (#28207509)
Upgrade :) I just upgraded from my Samsung S8 to a OnePlus 8 and the difference is amazing. Apps install in a second again instead of 20 and everything feels snappy.

I don't upgrade often for financial and environmental reasons but we're not at the stage yet where smartphones are a commodity and performance is stable over the years. There's still performance gains every year and they add up.

Re:Psst: Fast Spotify client with native GUI, without Electr... by handrous on Tuesday August 17, 2021 @03:02PM (#28213561)
Off and on Android (and iOS) developer here: no, not really, unless you throw top-end hardware at it.
Re:Psst: Fast Spotify client with native GUI, without Electr... by cjblomqvist on Tuesday August 17, 2021 @01:31AM (#28206513)
Up-voted for the same reason as the edit - I'd love to hear some fact based arguments why this comment should be down voted (why it's not possible to build performant applications with Electron)
Re:Psst: Fast Spotify client with native GUI, without Electr... by zwaps on Tuesday August 17, 2021 @02:42AM (#28206883)
Op did not provide a single example of an Electron app that competes with native performance. When pushed, they became indignant and said that they have personally worked on several snappy Electron apps, which, however are secret. Also, there are apparently no other examples of Electron apps readily at hand.

So we end up where we were, with VsCode as singular example, and in turn, with the distinctive suspicion that the inability of anyone to point to even one decently performing Electron app may just simply be because Electron is not very good.

The downvotes then probably arise from the fact that this argument has been replayed on HN hundreds of times.

Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @04:39AM (#28207570)
It’s nothing to do with Electron specifically and everything to do with the web as a platform and the requisite work to make performant apps.
Re:Psst: Fast Spotify client with native GUI, without Electr... by slumpt_ on Tuesday August 17, 2021 @01:35AM (#28206543)
It’s certainly an easy fall-person for their performance issues, but it seems just as reasonable to blame an ever-expanding feature set, including advertisements and all of the analytics to go with, along with a great deal of just… age? Spotify isn’t a young company anymore, and they’ve been maintaining their shop for long enough that the kitchen sink is undoubtedly strapped to their app by now.
Re:Psst: Fast Spotify client with native GUI, without Electr... by rzzzt on Tuesday August 17, 2021 @01:52AM (#28206620)
Can it send e-mails?
Re:Psst: Fast Spotify client with native GUI, without Electr... by jcelerier on Tuesday August 17, 2021 @04:20AM (#28207445)
> Our QT/C++ client had decent performance but was noticeably heavier than Spotify's.

Wasn't Spotify's client Qt too ?

Re:Psst: Fast Spotify client with native GUI, without Electr... by mythz on Tuesday August 17, 2021 @04:59AM (#28207684)
The original Windows and Mac clients didn't use Qt, it appears the Linux version released after did. Here's what I found scouting quora:

> Qt is only used on Linux. The native parts is built with our own custom toolkit on top of a canvas- and window-abstraction layer. The canvas/window stuff is implemented with Qt on Linux, but with native stuff on win/mac. Then we have the HTML5 views, which use Chromium Embedded Framework.

https://www.quora.com/What-is-spotify-Windows-Mac-GUI-app-bu...

> Proprietary technology written in C++, C and a tad of assembler. A list of third party technology used can be read by going to Help → Show Licenses in Spotify, or by opening file://localhost/Applications/Spotify.app/Contents/Resources/licenses.xhtml (if you're on Mac OS).

https://www.quora.com/How-did-Spotify-make-a-multiplatform-l...

The list of deps is insightful looks like they used WTL for their Windows UI, no idea how they made it work on Mac as well:

Boost, Expat, FastDelegate, giflib, libjpeg, libogg, libvorbis, Mersenne Twister, zlib, NSIS (Windows only), Windows Template Library (Windows only), Growl (Max OS X only), Lua

Re:Psst: Fast Spotify client with native GUI, without Electr... by jcelerier on Tuesday August 17, 2021 @05:51AM (#28207989)
TIL, I only ever used it on Linux and assumed it was the same everywhere
Re:Psst: Fast Spotify client with native GUI, without Electr... by huhtenberg on Tuesday August 17, 2021 @12:52PM (#28212028)
> started out as beautifully light, custom rendered native client

Very much expected - back then the main Spotify developer was Ludde, an author of another little marvel - uTorrent.

[1] https://en.wikipedia.org/wiki/Ludvig_Strigeus

Re:Psst: Fast Spotify client with native GUI, without Electr... by twobitshifter on Tuesday August 17, 2021 @08:39AM (#28209181)
Loading and rendering HTML can be extremely fast. The slowness we see with apps is a result of bloat, and it’s happened to our native apps too.
Re:Psst: Fast Spotify client with native GUI, without Electr... by spullara on Tuesday August 17, 2021 @03:58AM (#28207341)
I really don't know what yall are going on about. I hit play on a song in spotify and it just plays instantly.
Re:Psst: Fast Spotify client with native GUI, without Electr... by ilrwbwrkhv on Wednesday August 18, 2021 @12:56AM (#28217907)
Even on the iPad app they don't follow basic things like swipe left on the edge to go back.