In contrast, when you build a native app, developers can draw on a standard set of OS provided UI widgets.
In contrast, when you build a native app, developers can draw on a standard set of OS provided UI widgets.
We are reaping the consequences of that now, where lots of transactions are happening that don't actually make anyone happy or productive.
But you can see how that would filter down into UI design. When your incentive is to make people happy and productive, you spend time studying how people actually use the product, and then optimize that so they can use the product more efficiently. When your incentive is to turn people into mindless consumers that keep coming back for more ads, you spend time studying what sort of content holds the user's attention, and then optimize that so you can work as many ads into the stream as possible without them turning away. When your incentive is to sell enterprise software, you spend time studying what sales pitches will get the budget-holder to open their company's wallets, and then optimize the sales funnel to the extent of actual product usability. Even if your users hate you, they don't get to decide whether they keep using you.
But even if you have a library with hundreds of widgets, you can still make a terrible UX if you don't understand good design, and many programmers don't.
People have less power on the web so it has more limitations, even if it lacks a number of consistent UI components baked in.Desktop apps are notorious for getting fancy. Even simple control apps from random headphones/keyboards/music gear/etc all want to reinvent the settings page and make it 'sleek' instead of usable.