News for hackers. Stuff that matters.
Re:The origins of Objective-C at PPI/Stepstone and its evolu... by mwcampbell on Sunday June 14, 2020 @08:56AM (#23517342)
Why do you say C++/WinRT is not much better than WRL in productivity? I strongly disagree. I work on the Windows accessibility team at Microsoft. We use C++/WinRT in new code that both consumes and implements WinRT components. So far, I'm happy with it and would not want to go back to C++/CX. C++/WinRT is definitely more productive than WRL.
Re:The origins of Objective-C at PPI/Stepstone and its evolu... by pjmlp on Sunday June 14, 2020 @09:17AM (#23517443)
It might be more productive than WRL, but it certainly isn't more productive than C++/CX and keeping with that mentality is what will keep us to actually embrace it, unless we are getting paid to do so.

Here is the bullet points I keep giving back when asked for feedback.

- No Visual Studio support for syntax highlighting or completion of IDL files

- The fact that IDL files have to be manually edited to start with (C++/CX does it in the background).

- The fact that those manually edited files have to be copied back into Visual Studio projects, after cppwinrt generates new files out of them. Again, something that isn't required with C++/CX

- The fact that for data binding some types like bool, we need to go fully in and make use of x:Bind, thus, again manually having a new view model class, instead of directly binding via DataContext. Again, C++/CX has no issues with it.

- XAML designer integration is still lacking versus the C++/CX experience, which manually editing IDL files doesn't make it more enjoyable

- The amount of type juggling between hstrings, std::string, com_ptr, box, winrt::make, agile_ref and all the stuff that isn't required when using C++/CX

- Constantly being told that we must just suck it up, and hopefully ISO C++23 or who knows when, will provide the necessary features regarding reflection and metaclasses, to add back to C++/WinRT the tooling experience that we already have today with C++/CX and is being dropped on the floor with the push of C++/WinRT

- The fact that C++/WinRT keeps being pushed forward, yet like 90% of MSDN still provides examples and documentation using C++/CX, or that some problems migrating from C++/CX into C++/WinRT are only to be found in StackOverflow answers or comments discussing cppwinrt issues.

Going back to WRL example, it is hardly any better than ATL was. C++/CX was the closest that Microsoft ever was with proving a C++ RAD like experience similar to C++ Builder.

Apparently that isn't the path that Windows team wants to travel, there is .NET for that, and being better than WRL is already considered mission accomplished.

Even MFC provides a better way of doing GUIs than what WinUI with C++/WinRT is giving us, but yeah I it is better than WRL I guess.

Re:The origins of Objective-C at PPI/Stepstone and its evolu... by mwcampbell on Sunday June 14, 2020 @09:30AM (#23517508)
> Even MFC provides a better way of doing GUIs than what WinUI with C++/WinRT is giving us

In what way? IIRC, MFC doesn't have dynamic layout as all of the XAML-based frameworks do. That means that the typical results with MFC are definitely not better for the user, e.g. they can't take advantage of the dynamic text scaling that we introduced a few releases ago.

I think the main reason for our difference of opinion about C++/WinRT is that I and my team mainly work on OS components, whereas you're doing application development using XAML. And the core OS uses its own build system, not Visual Studio's; not all of us even use Visual Studio (I use Vim and do builds from the command prompt). We definitely have a different perspective than external developers. So thanks for sharing yours.

P.S. Just to be clear, I'm merely an individual developer on a team that merely consumes C++/WinRT. So I'm not speaking for the C++/WinRT team or Microsoft in general here.

Re:The origins of Objective-C at PPI/Stepstone and its evolu... by pjmlp on Sunday June 14, 2020 @10:53AM (#23518059)
In the Visual Studio tooling way and not having to deal with all COM low level details in name of ISO C++ compliance.

Those of us that eventually migrated to .NET were quite happy with C++/CX for dealing with those APIs that Windows team keeps resisting to expose as .NET APIs, and now that has been taken away from us.

Who cares about dynamic text scaling support when one needs to climb a mountain to actually make use of it?

By the way, this is a feature that is actually supported as Win32 C API, most likely because of hurdles to use it otherwise.

As note, having to deal with WRL was never a consideration for the projects where my voice counted for the technology decisions, too many bad memories from ATL/WTL days.

Also it remains to be seen what C#/WinRT will actually bring into the table.

Really, is it so hard for the Windows team to get some Qt and C++ Builder licenses to understand how to offer productive C++ development tooling for Windows application developers?

Because at the end of the day what happens are adoption failures like how the whole WinRT/UWP story ended up, and if the tooling doesn't get better, it isn't Project Reunion that will save it.