Even Firefox seems to just keep stripping out useful functionality for power users for some bizarre reason, no more full themes, limited extension APIs, poor UI customization and less advanced features like "view image", it's like they're trying to alienate their most dedicated fanbase in an attempt to steal some marketshare back from Chrome.
Microsoft Teams runs so poorly on my work laptop that it's barely usable and lacks simple features like Push-to-Talk.
Good cross-platform UI is hard, and web technology is seen as an "easy" way out because you can hire plenty of resources and yes -- it does seem silly to reinvent the wheel when HTML/CSS have implemented something already. Electron is basically the Java Applets/AWT/Swing of our time, because it lets teams prioritize features and delivery speed over great, performant, UX. And to be fair, for simple use cases, it's works well. But when you're at the level of MS Teams, I absolutely agree -- that app could be far better tuned. It actually runs much better inside a browser or in the native iOS app, which is a giant middle finger to Microsoft's platform ambitions -- it's like they're not even incentivizing people to take advantage of Windows.
Deleting or not including features is a separate "thing" though, I feel. Gnome had it with Nautilus, for instance -- it's definitely not solely an Electron thing. It's the "designer knows best" mentality that fails to strike a good balance between simplicity and customizability, and not taking the time to understand what users want.
Interestingly, Zoom (ignoring their various other issues) is a company that seems to do this well. They have a reasonably good UX to start with, but they don't shy away from offering more options and features if you so want. And they try to offer a decent native experience on Windows and iOS [I haven't tried them on macOS], as well as web, although of course the pure web experience could be far better. I think there's a lesson there for Microsoft, which got a good chunk of their lunch eaten by Zoom twice over (Skype and Teams, at least in video-conferencing -- Teams is of course quite successful in team collaboration) and also for browser-based Google Meet: ignoring good UX in favour of a lowest-common-denominator interface just creates space for competitors.
We're never going to go back to the old days. Back then desktop computing was 100% of end user computing and everyone assumed all users end up as power users.
Now desktop computing is ~30% of end user computing and shrinking and we realize that most people have absolutely no desire to become power users. It's not that they can't, they don't want to (think other interests, anti-intellectualism, etc).
Also mobile computing by its nature (being on the move, having to pay attention to real life, constrained hardware interfaces) requires simplified UIs.
And, yes, the market is shrinking and you can see the rust spots. Pidgin used to be a top-notch multi-messenger, now it's a ghost town. Just one example.
I don't know what the end state is, but I can't imagine it's pretty, especially since fewer and fewer people will use desktops/laptops, both as absolute numbers and as percentages.
If I'm writing serious business software the web and desktop are king and quickly becoming synonymous given technologies like xamarin forms, ionic, and electron. I'm building an app in ionic using html/css/JavaScript (angular) that is primarily for desktop (electron) but will deploy to mobile and web, allowing me to meet people where and how they want to work.
It was so good that it was the first project i gave some money, then they killed the database connection...i was pretty angry at them, never used it since then.
These other apps are for curating your own audio files.
Also what does "bloated election app" mean? Because it seems like it's just a meme at this point.
I'm using the desktop app right now. It's using 160mb of ram and it's very responsive.
Teams is just a bad application.
A lot of shitty "enterprise" software is written in Java. If I started saying Java = Bad software. I'm sure many people would disagree.
I don't understand this objection. Every time people say "software is slow today: compare Spotify to Winamp/Xmms", the objectiion is that Spotify isn't Xmms, it's a music streaming service. But so what? Why can't a music streaming service be fast to start up? It's already a thick client. My life isn't going to end if I can start playing music within milliseconds but the playlist is a few tracks different compared to a hypothetical playlist that was hypothetically edited on another computer which doesn't exist because I use spotify exclusively on my phone.
There is something about Spotify that means if I play a track for the first time it will have to wait a few seconds to start streaming. But what is it about Spotify that means that it takes several times longer to start playing the same track I was listening to just before it crashed compared to how long Winamp took?
> I'm using the desktop app right now. It's using 160mb of ram and it's very responsive.
This feels a little like it's meant to be irony, except that you clearly mean it seriously. You don't see anything wrong with a webservice client that has local caches using 160 MB ram? And you think that's not bloated, in comparison to a music player that ran on a machine which had 8 MB ram - even for the operating system?
My experience with Spotify is that it's basically a loading symbol. I more or less switch between two playlists (Discover Weekly and Liked Songs, with occasional forreys into the albums of tracks I hear and like). Every time it gets kicked out of memory - which happens extremely fast on my phone with 8 GB ram - it takes ages to get back up to the point it was before. (Compared to my podcast app (Antenna Pod), which only gets kicked out of memory over night when everything seems to, and which is fast and responsive even when just starting.)
Spotify isn't really a song player. It is a song license management system with arbitrary playlists referencing song data whose licensing may change.
You want to access the same data under the same license. Spotify isn't sure the license hasn't changed since it last started streaming to you.
The misery of such a system is exacerbated by buggy client software.
Maybe if the Spotify API was more like the Stripe of music licensing systems, you'd sideload your own client.
I don’t really understand the rant about Spotify. In my experience it’s one of the “good” modern apps. One of the amazing features that it has is the remote playback control - I can listen to the music from my PS4 and control it from any of my devices that have Spotify installed.
What they could do better is the playlist organizer, the existing one is too simple.
I mostly agree that the overall quality of the modern software is subpar, comparing to the gems from the past (vim, emacs, winamp, vlc, etc), but Spotify is more or less fine.
They are relatively high resolution. That look good on my 4k screen.
How much ram do those decoded assets take up?
Your 8MB ram computer would not handle network streaming, decoding 320kbs/s audio, displaying a high resolution UI, etc.
The comparison is ridiculous.
There's a difference between today where people use 4k displays to back in the days when 1024x768 was high end. That's 10x the amount of pixels.
-
Also your complaints seem to be about the speed of your internet connection.
The average person does not wait multiple seconds to play a song.
Reduce the quality of your streaming if you want it to be more responsive.
--
Also your phone seems to be a bad phone.
Storage speed and CPU power are also factors in how fast a device runs software.
My 3 year old Note 9 works perfectly fine.
It means the memory and CPU consumption could be reduced had it was written using more lightweight framework like C#/.NET, C++, or something else, like PWA in browser instead of a full, seperate, single Chromium instance for one app.
You can build or port a web app to electron using mature and productive tools (html/css/boostrap/typescript/angular...god forbid React). What's more to say.
The compiled language ecosphere requires each their own set of tools for each platform. Beside electron the next best cross platform framework (xamarin forms) uses proprietryish UI document description (XAML) requiring the developer to work through another huge learning curve.
Especially in a time when smartphones are the main platform for most consumers.
Winamp was already mentioned in another comment. While 160mb is "fine" on 16gb systems, it's still much more than similar apps used to take up and will not be much fun on a 4gb system, which is what many not so technical people still use daily.
As a whole Spotify includes way more functionality than winamp, they have completely different goals though. Winamp is a player, Spotify is a service. Nobody would use Spotify as a pure music client, you can't really compare them.
- I can play any song or podcast that I want without ordering a CD (that I couldn't afford as a kid) or opening up a torrent client.
- Curation is taken care of. Every song I've ever "liked" or added to a playlist is available on any of my devices, without me having to worry about syncing.
- I can discover music similar to an artist or song with Song Radio. I have curated playlists created for me based on my tastes (Discover Weekly).
- I can cast to any other device, like a Sound bar.
- I can run this application on Mac, Linux and Windows and it works without a hitch on all 3. I remember back when native applications simply didn't appear on Linux. Skype was the dominant video calling service and it simply didn't work on Linux. Now you can choose the OS that you want knowing that all software will work, without mucking around with Wine.
There's two kinds of people - those that pretend that Spotify and others don't have any new features compared to Winamp 5.0. The second kind pretend that these features are useless or no one wants them. Nope, I like the status quo just fine. So do tens of millions of others.
All of that software is still available. Download Winamp (https://www.winamp.com) or whatever other "lightweight" players you want. Fact is, people voted with their wallets and they went with the streaming services that use electron for their clients.
Spotify makes it cheap to use without ownership - like uber basically - and millions do like that.
I blame the greedy music business that really didn't want to sell singles.
They've been forced to change - partially thanks to amazon and apple - but they embraced the change too late, and instead change was forced upon them.
The music biz could of made a version of limewire where people could pay for songs at a fair price and get top quality.. take advantage of the curation people were doing, and more - but they went to courts to block instead.
There's more than 2 kinds of people.
Some people voted with their wallets for MusicMatch Jukebox 7.1 - then yahoo took it, ruined it, then killed it.
Many people are voting with their wallets to borrow music from a fancy playlist company - that's cool -and I'm glad it exists. I prefer to own music that I can put on different devices myself and access anywhere anytime without an internet connection or worrying that my license key is not valid.
FI android did AirDrop I think the tide would be different. Amazon an excellent buy digital audio options (via computer) - sadly they make it very hard to download and own digital mp3s using the android app -
I get that some of these decisions are based on the whole - push them to the subscription /rent to use model where we win having lots of people who use it little.. but I prefer to download to the computer unzip and plugin a cable to transfer.
So while tech of the yesteryear is fine, some of the 'modern tech' is purposefully handicapping in some ways - and sometimes they are doing so to keep people hooked on drip-to-use-not-own-rent-forever models.
The good is that more people can enjoy more music - so yay spotify. The bad is that I don't think it's as good for the bands, and depending on the magic wifi can leave you high and dry when you need tunes the most - but at least you'll have a few dollars in your pocket :)
That rent and never own economy is good for some things, but it's not for everything for everybody.
Another Winamp plug-in that’s incredibly useful is the disk-writer, included with the application. With it you can use any of the input plugins to transcode files to uncompressed WAV format.
Streamripper.
Others can't remember atm. Good times hunting through the plugins and themes.
And that is acceptable for a music player ???.
There's also the song data for what's playing now and next song.
You don't seem to understand what the application is doing.
Why is that so different from Java or .NET?
Simply because it's an easy meme.
It means (1) high memory usage (although people are ridiculously oversensitive about this relative to CPU use) (2) long startup times (3) high ambient CPU usage and (4) a high-latency interface (on average machines - anything is snappy on a brand-new $1k M1 Macbook Air).
> and it's very responsive
On what CPU? Will it still be responsive on a 8-year-old Core i5 on one of my Thinkpads?
Electron will be using GPU rendering.
What kind of GPU performance does your 8 year old laptop have?
Probably a minimum of 5x less performance than a smart phone.
What does "more powerful" even mean? If you mean "better single-threaded CPU performance", I absolutely don't believe you. If you mean "better multi-threaded CPU performance", I might believe you, but would need evidence.
Moreover, that's irrelevant. I, and everyone else who talks about "bloated Electron apps" (including in this thread) is almost exclusively referring to desktop applications. Why would we be talking about running Electron on a smartphone?
> Electron will be using GPU rendering.
Sure. Can you show that CPU usage will still be low? In my experience with Electron applications on a newer laptop with decent graphics (can play Dota 2), CPU usage is still 15% of a single core while literally nothing is happening.
https://browser.geekbench.com/android_devices/samsung-galaxy...
Similar performance to an average Haswell Laptop CPU.
https://browser.geekbench.com/processors/intel-core-i7-4600u
Also it has the Intel 4000 series. This GPU lagged in rendering the windows desktop on 1080. Let alone with a dual monitor setup.
It's not irrelevant. My point is that your ancient CPU with a horrible GPU is less powerful than a mid range smart phone.
Or a secondhand flagship.
There needs to come a point where you accept that your hardware is crap not the software.
Dota 2 is 7 years old. It wasn't decent graphics back in 2013. You may as well have said that the laptop runs minesweeper with decent graphics.
Go load up Genshin Impact. It runs on smartphones, but I imagine might set your new laptop on fire.
Why is your 15% thing the fault of electron? Microsoft teams is a crap application it's not the frameworks fault.
I'd say the majority of shitty applications I've used is coded in Java.
I've used plenty of enterprise tools that spit out the lovely error message "NullPointerException"
Is it fair to say that all apps coded with Java is shit?
But also where are you getting your 15% from?
However, it doesn't matter.
> It's not irrelevant. My point is that your ancient CPU with a horrible GPU is less powerful than a mid range smart phone.
I literally pointed out exactly why it's irrelevant, and you completely ignored me. I'll point it out again:
> I, and everyone else who talks about "bloated Electron apps" (including in this thread) is almost exclusively referring to desktop applications.
Comparing phones to laptops is an apples-to-oranges comparison. It doesn't matter if a low-end phone might be able to run an Electron app well, because we're not talking about low-end phones - the discussion in this thread, as well as almost every other thread that refers to "bloated Electron applications", is talking exclusively about desktops.
If your "point is that your ancient CPU with a horrible GPU is less powerful than a mid range smart phone", then your point is also irrelevant for the purposes of people talking about bloated Electron apps, because almost none of them are discussing phones.
> There needs to come a point where you accept that your hardware is crap not the software.
Yes, and 7-year-old hardware is not that point for these programs - maybe for ML training, but not chat apps. That point only occurs when hardware is slow enough that the algorithms needed to run the core functionality cannot run quickly on it. Software that does not make efficient use of its hardware is crap. Electron does not make efficient use of its hardware.
Electron is either crap, or makes it so easy to write crap that it might as well be. There's a reason that you see people so often complaining about it, and that's because it's so inefficient that it causes a noticeably poor user experience, even for developers running on mid-range devices (which makes it far worse on low-end devices).
As evidence, Ripcord[1] offers a substantial subset of the features of Discord and Slack[2] with significantly better performance. The fact that it's made by a single person and yet manages to significantly out-perform large teams of (ostensibly) competent engineers while still implementing the core functionality provides strong evidence that it is the framework's fault, because it's clearly not because those features are somehow intrinsically computationally expensive to implement.
> I'd say the majority of shitty applications I've used is coded in Java.
Yes, and I think that Java is a terrible platform, too, speaking from experience with Minecraft, GNU Electric, Netbeans, and Eclipse. That doesn't make Electron any less bad.
> Is it fair to say that all apps coded with Java is shit?
Nobody said that they (or Electron apps) are. All of the complaints that I've seen, including mine, is that Electron generally has terrible performance, strongly encourages bad performance, that all major applications built in it are slow, and while it might be possible to build fast tools in it, we haven't seen them.
> But also where are you getting your 15% from?
...literally the CPU usage of Discord while it's running.
[1] https://cancel.fm/ripcord/ [2] https://dev.cancel.fm/service_features
That being said, I stream Spotify music through foobar using an external plugin, mainly because it is so light. Yeah, it isn't perfect, but if there was a demand for a light app, it is perfectly possible.
https://josephg.com/blog/electron-is-flash-for-the-desktop/
While I don't appreciate most of Apples business strategies, I have to admit that Steve Jobs was right about banning Flash. It was eating the battery runtime of MacBooks. And Steve Jobs would have banned[1] Electron probably already years ago, because it is consuming so much memory.
But especially so many big tech companies use Electron? The UI is non native, the JavaScript doesn't offer best performance, the binaries are big and the memory consumption is high. First, because some companies we're in need for a replacement of Flash[2]. Second, web developers are cheap. Third, it reduces time to market. Especially the big tech companies are "monopoly mode" - gather quicker more users than others and dominate.
Who pays? You, at least three times:
* Bad usability, slow execution and awkward UI
* Hardware requirements. You have to buy more RAM. In case of most laptops with soldered RAM you have to buy new laptops.
* Either they take or data or your license fees
I don't claim that platform native developers will code more efficient but developers who can code in C, C++, Rust or even Python can provide you with fast, small and slick applications where you don't have to wait until some JS loads the textblock for some placeholder while your scrolling - their applications aren't even faster necessarily. Likely these developers keep their data locally, update this data when appropriate (keyboard, file or network) and don't launch an entire web-browser. I recommend providing a base foundation and using a native toolkit of the platform, either Gtk or Qt[3]. This is not a new recommendation, the issue is that the industry prefers to ignores well known, recommend practices.
Now. Microsoft Teams?
+ Available on Linux
+ Quick and easy installation via Flatpak
o You can spend a lot of money for integrations
- Quoting is not possible on desktop
- Slow startup
- Fullscreen hidden instead of using "l" or "F11" keys
- Notifications Management is a maze of options
[1] Not fully correct. Electron is forbidden on iOS because it is a full blown webbrowser. Maybe also for less well meant reasons.
[2] History repeats. They refuse to learn?
[3] Actually Google did that. Chrome used on Linux Gtk, on MacOS it used Quartz and on Windows some layer to Win32. It was a fast and lean and the UI was native.
https://invisible-island.net/ncurses/ // classic
https://github.com/willmcgugan/rich // blingbling
https://github.com/dankamongmen/notcurses // hacker
For the old stuff I recommend looking close at airports, savings-banks or part-dealers. When it is influenced by mainframes you will notice likely forwards/backwards is done by F7/F8. How do you depict an plane with seats in TUI? I assume an array, 80 rows and 10 columns ;)
I'm impressed how flawless elderly co-workers work with TUIs. They read the screen, think and type and the work is done. I guess the straight workflow, clean user-interface and similarities to paper forms improve usability. I guess modal dialogs, popup warnings, status icons, right click and the modern long press are not an improvement in usability. And the many tiny icons and bars in modern text processors aren't a help either.
I think we can learn a lot more from old programmers.
No you just need front, middle, back, window, handicap? and how many seats next to each other for your travel buddy's. That's the cool thing, no need to use your mouse, no need to show more information than needed for the job.
I've been using computers since Apple IIe and am much happier with things today than versions of the past. There are certainly hiccups along the way, but no way am I going to trade what I have today for what I used in 80s/90s.
To me the ribbon was almost peak UI. It's tainted because it was introduced around the same time that designers started winning the "user friendly" vs "looks pretty" battle, but the ribbon is definitely from the "user friendly" side. They provide large targets, they have icons and text to help remember them better, the button size varies according to relative likelihood, some menu is always open instead of closing as soon as you start doing something. The ribbon was a genuine attempt at giving all users access to a powerful piece of software: a tool to upgrade the mental model of users instead of reaching for the lowest common denominator.
The biggest limitation of them seems to be that they don't help teach people the shortcut keys. To me that's not important because I'm never going to use them, but others like them, and by hiding them they've gone from seeming like a utility for experienced users to being a secret for hackers that could be removed at any time.
But they seem like a genuine improvement in contrast to the old system of either text-or-icons, absence of meaningful hierarchy, menus that are hard to study because as soon as you interact with them they disappear, or the new system of gratuitously hidden options, secret buttons, and apps which prioritise branding and a sense of eternal instability and change over predictability and approachability.
You can customize every section and it's very easy to pick up, I'm sure if you'd have to spend some time with office nowadays you'd agree. I'd take them over old-style nondescript toolbars by now.
If I have to believe this[1] thread, then Office 365 is now an Electron app, which would explain the slowness.
Sadly, support ended October of 2020, so it's time to find something else before too long. It is not going to be contemporary Office.
Quote from the article - "The old testers at Microsoft checked lots of things: they checked if fonts were consistent and legible, they checked that the location of controls on dialog boxes was reasonable and neatly aligned, they checked whether the screen flickered when you did things, they looked at how the UI flowed, they considered how easy the software was to use, how consistent the wording was, they worried about performance, they checked the spelling and grammar of all the error messages, and they spent a lot of time making sure that the user interface was consistent from one part of the product to another, because a consistent user interface is easier to use than an inconsistent one.".
I want this laser engraved on a big stick that is then used to beat every UX designer on the planet before they are allowed to touch anything.
I have never seen a Microsoft product with a consistent UI, though…
Case in point, I often use the F10 shortcut to use the old school menu on Firefox because I find it quicker and simpler than the other menu.
We were able to have latency free interaction with basic controls in the 80s.