← Back to context

Comment by api

1 day ago

The reason for this is that it's hard to hire native UI developers, but easy to hire web devs.

Something like 90% of all new devs today learn only cloud-native backend dev or web frontend dev. The only exceptions tends to be mobile and game developers. Collectively cloud+web, mobile, and games account for like 98% of all new devs it seems. Nobody learns anything else.

The web is going to become the desktop UI in the future for this reason alone. It's going to be slower and much more bloated than almost any other alternative, but it's got the critical mass of adoption behind it and that's what determines core technologies in the industry. Technical merit is a distant second or third.

This is frustrating but it's not surprising to one who has studied biology and evolution. In evolution this is called "path dependence," and it's why we have weird things like a man's testicles hanging in a bag below his body. A previous evolutionary path optimized the sperm production process to run at a lower temperature than the rest of the body, so then evolution's hack for this is to put them in a bag outside the body. Ticket closed with "resolved." The pathways taken through a complex solution space determine the outcome and the outcome is often bizarre and "hacky" for this reason. The key is that it's very hard to back-track. Once a path has been taken, it's very hard to un-take it.

Large industries and markets are essentially "biological," not rationally designed, so you get the same kinds of phenomena.

It could be much worse. If Linux+HTML+JS had not taken over, we might have the Microsoft Enterprise Web(tm) where Visual Basic (not VB.NET, OG Visual Basic) is the main language and each service or site would require an NT license for every node and an IIS license for every web hostname. UIs might be written in ActiveX or desktop ones in Microsoft C/C++ with OLE and similar horrors. It might be just as slow and infinitely uglier and more expensive and less open. Apple would be dead and open source would much more marginalized than it is today. The net would basically be a total MS monopoly. If you didn't live through the 90s: this nearly happened.

In my opinion this is mostly self-inflicted by Microsoft.

Sure some push for web-based solution has moved a lot of people away from desktop applications, but even before that Microsoft muddied the waters of native UI development.

Moving from User32.dll and GDI to GPU based rendering with WPF, might not have been the worst idea - and WPF is still going strong - but it's a clear cut, leaving old apps un-upgradable. So if companies need to eventually rewrite it, will they stick with desktop apps or move to "web apps"?

Unfortunately, Microsoft didn't stop there, but we've since seen a bunch of different attempts at new Windows UI libs to the point, where nobody trusts Microsoft anymore (remember Silverlight?) and everyone else is left confused by the chaos of an ecosystem.

Why can’t Microsoft employees learn on the job? When I joined a (non-Microsoft) BigTech company, I was expected to learn C++ and internal libraries and tools within a couple months while working on newbie projects. The company recouped that investment many times over.

  • There is a lot of idiocy/stubbornness among middle managers. I worked for a large consulting firm for a few years and would see hiring managers pass by candidates with good aptitude whom they could’ve trained in 4-6 weeks. Instead, they had the position open for several months waiting for someone who knew the exact technologies they were using and still didn’t find anyone in some cases. Seemed to me that the middle managers need more tolerance for non-billable time. But when everyone is incentivized to meet quarterly goals, this is what you get.

  • My thoughts as well. And it's not like we're talking about taking random people off the street and teaching them to program, it's just a UI framework. And the stuff people are talking about in here isn't IDEs or CAD suites, it's like... the calculator app and the start menu. What kind of devs is MSFT hiring and paying $200k a year that can't learn a UI framework?

  • That can work if you're not expecting to be fired on a whim in one of those 20k+ layoffs when suddenly you have a skill no one seeks while you have not grown in the other area the market wants.

> The reason for this is that it's hard to hire native UI developers, but easy to hire web devs

Funny. Back in the 90s Microsoft just hired kind of random kids from college to write their OS in C.

This is directionally not totally off-base, but:

> it's hard to hire native UI developers

This is the pool of mobile devs. If Microsoft is unwilling to eat the lead time (measured in weeks) for an existing native mobile dev to become productive on their stack, that's a sign of much bigger organizational problems.

  • Yup, coming from iOS and Android, I learned most of WinUI in two weeks, even before LLMs. GUI frameworks are largely similar, so there’s no real justification for reimplementing single-platform applications with HTML.

The analogy with evolution breaks down because currently the fitness function is broken. It would work in a world where anti trust would be still enforced, where customers could vote with their money instead of having to deal with enshitiffied monopolies. In a world where tech CEOs can buy a dinner to stay above the law, where tech is used as a weapon of influence so that other countries like in the EU are not allowed under penalty of sanctions to not use US platforms even when it breaks their law, it is reassuring for engineer minds but ultimately pointless to explain the state of the industry from market dynamics alone.

>The reason for this is that it's hard to hire native UI developers, but easy to hire web devs.

This ... has been very opposite of my experience:

1) I've seen websites turn into poor imitations of mobile apps that lose all the features of web UIs that I want: ability to open links in tabs, use of affordances to scroll up and down, dense packing of information, ability to edit the size, etc. (Edit: almost forgot how they run the back button too!)

2) Generally, I see that the more UI specialists they have, the worse the UI gets. There's the saying, "developers are responsible for mediocre UIs, designers are responsible for horrible UIs".

The reason is that the web empire is just better at operating systems than Microsoft. If they just had less bad development tools for native UI this would not be a problem. Look at what Google does with Android, or Apple.

  • WinUI 3 was pretty decent even back in 2021, and much easier to learn than the clusterfuck of Android SDK.

Excuses, a $4 trillion valued company can surely afford some training on the technology it owns.

That makes little sense, notepad.exe already exists. The only development required on it would be to add AI shit to it. They could just leave it alone.

  • That means you have to work on the original code, and modern entry-mid level devs can't do that. It's probably in C++. Your expensive senior and staff level devs are on more important projects.

    Make it a web app and your cheap entry level grads can do it.

    • Notepad was basically the "Hello world" of win32 apps. A kid in highschool could have "maintained" it.

    • My first entry-level job just freshly coming out of the University was writing C++ with Qt for a computer vision app. And that was my actual first contact with C++ (had seen C and Java in Uni).

      It was no biggie, just joining the low level of C with the class notions from Java. Pair that with the C++FAQ website, and it was easy.

      Are entry-level devs generally not able to do that nowadays? I do not believe people are generally more stupid or less capable, so, is education so much worse or what's going on?

    • Shouldn’t the AI technology that Microsoft is spending billions on make this trivial?

    • But there's no need to change it, that's the point. It's a finished product pretty much. Just ship it as is.

      If a PM needs NotepadAI for their career progression then start it from scratch.

    • > That means you have to work on the original code, and modern entry-mid level devs can't do that. It's probably in C++.

      As far as I remember, Notepad was the reference implementation for a Microsoft widget. Nothing more. If "modern entry-mid level devs can't do that" you really have a much bigger problem.

    • I don’t think you understand. Notepad was literally one of the examples that comes with the SDK. It doesn’t need any maintenance. As long as windows has a native SDK, notepad exists because it is basically the simplest GUI application, provided as a sample.

web is, frighteningly, much faster and more responsive than local desktop apps are now (e.g., gmail is infinitely more responsive than desktop modern outlook generally speaking - even web spreadsheets are superior to modern Excel (though not, say, Excel 2003...))

Linux? You mean the C nest? KDE and QT (the default serious framework) with C++?

You pushed ActiveX on the web, and viceversa with IE4 and Windows98. Now, the web turd came back with Electron. If any, thanks Microsoft for that.

> The reason for this is that it's hard to hire native UI developers

Yeah, it's a wonder they were able to do it so many years (ftom win 1.0 to Win 8).