Some new versions broke compatibility with previous version's components. There was the case where you paid a good amount of money on some proprietary components and they simply wouldn't work in the next version: you were imprisoned in an obsolete IDE. By not being multi-platform (I heard it improved lately) you could only use it with/for win32 so it lost servers, embedded, cloud and mobile. By not being open-source nobody could improve it.
Then it had to compete with "native tools". Whoever develops for windows wouldn't quit ms' tools to use it, whoever develops for mac wouldn't quit apple's tools to use it, whoever develops for android wouldn't quit google's tools to use it, whoever develops for linux was mostly ignored after kylix.
Note that I didn't even mentioned price and license.
They improved it later, I heard. But seems more like the old case of too little too late. Most successful programming languages today are open source and multi-platform. Delphi was dependent on win32 for too long and it still is "too proprietary". You do the world a favor by porting your project to lazarus.
(Yeah I am not downloading the "Community" edition if I have to provide my name address and phone number. Really if your product needs mindshare and you offer community edition the least you can do is make it easily downloadable.)
Microsoft completely messed up the XAML / C++/CX development experience with internal politics, only to have the team responsible for C++/WinRT going on to have fun in Rust/WinRT, leaving the former in maintenance state.
Not that I would use WinUI anyway, microsoft cannot be trusted with UI frameworks anymore.
I also don't consider anything related to WinUI/UWP trustworthy for production development, and I used to advocate for it.
Stuff like how .NET Native, C++/CX => C++/WinRT transition, UWP => WinUI were managed, is how they lost most of us that really liked WinRT.
That was pretty much what VB did, with immense success.
There is almost no UI-specific functionality there, the same functionality can be used to serialize any type of object and you can even implement your own serialization logic for your objects. The language's RTII allows for declaring properties (think like C# properties, though really C# properties were inspired by Delphi properties as the latter had them since the original Delphi 1.0 for Windows 3.1) as part of a class and has support for metaclasses (classes are instances themselves of a metaclass that describes the class), including virtual constructors (since classes are instances they have their own VMT) which allows for constructing class instances on the fly by passing a class type in a function.
The thing is, C++ does not have this sort of functionality. You can implement your own RTTI, as several projects do (many game engines do that for example), but it is often clunky (e.g. relies on macros, duplicating info, manual registration and/or external tools that parse the code and generate the RTTI boilerplate).
C++ Builder did it because it extended C++ to add that functionality in a way that is ABI compatible with Delphi - and is how it can use VCL (which is written in Delphi).
May I ask what your plan is regarding UI at this moment? I've given up and gone the web route (with Avalonia on my pocket in case my sanity gets dangerously low).
For doing Windows stuff, I would rather advocate for Win32, Forms/WPF.
In regards to C++ stuff, either C++ Builder if it fits the budget, or Qt.
It is quite tragic that even MFC has a better development story than WinUI/C++.
Take your own conclusions on its future.
An almost complete waste of time as Microsoft failed to deliver on their promises.
To come back to your point, the aging MFC has better Visual Studio tooling than C++/WinRT will ever have, specially now after being deprecated.
I would have fired the whole team responsible for C++/WinRT.
The difference between what VC++ does and what C++ Builder (and Delphi) does is massive and at a very fundamental level.
https://ia800108.us.archive.org/5/items/MicrosoftVisualStudi...
Additionally it has a symbiotic relationship with Delphi, similarly to how C# and C++/CLI are integrated, only much better.
Nowadays the compiler backend is based in clang.
> Ctrl+F "pjmlp"
I was not disappointed.
Aside, I have used this in the past for GUI on windows and it was amazing. Like .NET but native and better.
There is a newer version from Embarcadero, 7.20 from 2016[1].
The compiler in C++Builder is more modern and it will target 64-bit for Windows at least.[0]
[0]: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/C%2B...