This article is globally so true, but there is a major error:
It is not "needs of developers" the problem, but the "needs of product manager, marketing, c-level asshole".
Like for telemetry, most of the time the business side "can", so they do.
And again, for specific app and co, most developer would complain and not like release such user-hostile software but they are forced by business to do it.
Like this stupid project manager that thinks that his product/software is the most important in the world and there is no reason why a random user would not want to install it and also that the user computer belongs to him and to the company because he is using the product, without shame.
"Developer" here isn't being used to mean only the people who directly write code. It means the entire organization responsible for developing the product, which includes the managers, marketing, and executives. As in Microsoft the company is the developer of Windows, and Windows is made in such a way as to prioritize the needs of Microsoft over the needs of Windows users. They're not prioritizing the needs of any specific employee or category of employees. All stakeholder groups on the producer side may or may not be fighting for their own specific interests, but collectively producer-side stakeholder groups are given way more of a say than consumer-side, because the consumer-side only has the purchase as their tool to influence product decisions, and thanks to various forms of lock-in and information asymmetry, they can't or won't make informed purchasing choices that force Microsoft to care about them.
Isn't it sort of obvious that practically every product developed for profit is done for the benefit of the organization doing it?
"The needs of the user" is just one factor for satisfying the primary incentive, which is making money. The needs of the user needs to be met to the point that they are willing to pay money for it, anything more you're not maximizing your profit. I mean, why would you expect anything to be different.
I primarily blame the users. They're the ones who accept this shit and still give their money. If they don't want user-hostile software, they shouldn't use it. If people refused to pay for it, things would change. And yeah, that might come with some sacrifices.
> And again, for specific app and co, most developer would complain and not like release such user-hostile software but they are forced by business to do it
For every dark pattern, invasive analytics package, adware, malware, spyware that gets added to a product, there is an actual software developer sitting in a chair, voluntarily adding it. Maybe someone here on HN, reading this very thread! Nobody is putting a gun to our heads and forcing us to do it. I've quit jobs in the past where I was asked to work on something I considered unethical. Developers have options. The job market is evidently still going gangbusters now, so who can really say they are "forced" to develop anything?
It's so strange: On one hand, people keep saying developers have tremendous leverage, and high market value, and are being sought after, and then one thread later, developers are powerless victims, having to do the will of their evil "project managers". Which one is it?
Professional Engineers have to take ethics courses and have values which include protecting the public welfare.
I would like to see something similar for people writing software.
What keeps Professional Engineers honest is that they are accountable to the discipline committee and liable for negligence. This is in stark contrast to consumer software which comes with no guarantees other than a click through EULA.
Both, because different organizations prioritize different things. In some places, developers can run the show, in others, it is the marketing team calling the shots.
I think the early startup area is driven by developers, but once a product gets some traction they transition into the product manager/marketer driven mode where dark patterns start to show up.
At the end of the day even if all devs collectively decide they won’t implement these features (which already is utopian), there will be someone in a more desparate position who would just be too glad to take the job. You may have to go looking in other countries. Or raise wages. But it will get done.
> It is not "needs of developers" the problem, but the "needs of product manager, marketing, c-level asshole".
Not entirely. Developers still make choices to use slow and bloated software stacks to save themselves time, which definitely negatively affects the user experience.
What stacks? I've yet to encounter a popular stack claiming itself as slow and bloated. React? Angular? Electron? There are very slim and fast apps built with those stacks.
And if someone built slow Electron app, I'm sure that he would build slow Qt app (not sure if Qt considered slim nowadays). It comes either from lack of experience or lack of focus on performance. And that does not depend on stack.
How slim can you really be when your stack bundles an entire web browser so you can push pixels on the screen? Focusing on performance probably requires running away from such bloat.
Remember: 25 years ago we were able to write relatively fast GUI applications. They may have gotten prettier, fancier, and screens have definitely grown larger. Still, computers are now much faster. And with M2 drives, starting a word processor or a drawing application should be instantaneous. Yet somehow it isn't.
You're right, the main problem is the lack of focus on performance. Here's the thing though: if we did focus on performance, we wouldn't have tolerated such bloated stacks in the first place.
IMO it’s the increase in platforms that have pushed people towards a cross-platform solution even though it’s pretty wasteful. In the 90s if I wanted to write an application to target most computer users I would have written a Windows application. Now, depending on the app you need to target MacOS, Linux, web, iOS, Android.
I think people underestimate how much stuff you have to learn to be an effective UI developer on a new stack. There’s layout rules, visual customization, state management, how to organize your effectively for large code based, debugging, accessibility, localization, visual effects. Not to mention how fleshed out the tooling and documentation is for the web stack. Browser dev tools are really good. It’s no wonder people want to reuse all those skills to build UIs.
If even companies like Spotify or Slack think they don’t have the resources to build custom applications per platform, smaller companies or teams won’t either. (I say think because I disagree with their strategy but that’s beside the point). We need a way for people to use their web stack knowledge without requiring a full browser.
I think web-dev, for better or worse, has pioneered a lot of UI concepts and design strategies purely by being more accessible.
Getting those lessons into a more efficient compiled form would be a great step, and I do think TypeScript is slowly approaching a place where it might be able to bridge that gap.
> And if someone built slow Electron app, I'm sure that he would build slow Qt app (not sure if Qt considered slim nowadays). It comes either from lack of experience or lack of focus on performance. And that does not depend on stack.
No. Literall every Electron chat app (Signal, Discord, Element, Slack, etc) is slow, laggy and unresponsive, while every Qt chat app (Telegram, Ripcord, Nheko) is blazing fast.
Pardon me, but slim and fast? Xclock from the 1980s (long, long before Qt) was tens of kilobytes. "XClock" on Android is 2.6MB. "XClock" as an Electron app would weigh tens of megabytes.
This isn't progress, no matter how pretty those clock hands are.
I'll admit, this was my first chuckle out loud of the day. No stack would intentionally label itself as such, while basically all of them eventually become that. If you bundle the world in your package, expect bloated outcomes, in all of its cyclically-dependent glory.
None of those frameworks are slim and fast. No framework is going to admit that they are bloated, and many will claim to be slim and fast, despite the fact that they are not.
Surely the genius software developers can just do away with the stupid and pointless project managers with their self inflated egos and release the great software ourselves? Why don't we do that? Surely there must be some reason if these useless business people only provide negative value!
The problem is that it's not possible to unbundle the business acumen and the "profit above everything" mentality. Developers need the former, literally nobody needs the latter.
OMG the pointless telemetry. I got asked to install some on a project I took over. I checked, and said "there is already telemetry integrated for account XYZ". Nobody knew who had access to XYZ. Like, they install it, and lose it. Its not even fulfilling a useful purpose.
It is not "needs of developers" the problem, but the "needs of product manager, marketing, c-level asshole".
Like for telemetry, most of the time the business side "can", so they do.
And again, for specific app and co, most developer would complain and not like release such user-hostile software but they are forced by business to do it.
Like this stupid project manager that thinks that his product/software is the most important in the world and there is no reason why a random user would not want to install it and also that the user computer belongs to him and to the company because he is using the product, without shame.