> Platform vendors like Apple, Google, MS don't want to let developers target multiple ecosystems
Is this actually true? As in, I see how we may arrive at the same outcome anyway, but at this point, do those companies actually care about aggressive lock-in?
- Apple seems to be more ignoring the possibility of SwiftUI on other platforms rather than actively preventing it since https://github.com/Cosmo/OpenSwiftUI (dead) exists. Sure, they will never help to make it happen, but "don't want"?
- Google is pretty much cross-platform/-ecosystem with Flutter which explicitly supports iOS.
- MS seems to have given up with Win Forms opensourced and working on .NET Core / Mono.
"MS seems to have given up with Win Forms opensourced and working on .NET Core / Mono."
MS does not care what OS you use anymore. They want users of all operating systems to order their Office 365 license and run all their cloud compute loads in Azure.
You won' probably catch any exec from MS and Apple admitting the obvious, but it's really against their best interest to encourage multi-platform apps as this would give users a choice between operating systems. It's not something that is discussed a lot these days because modern web apps are quite powerful, yet it's clear a good quality multi-platform toolkit would be a boon to users and developers alike.
As for MS open sourcing .NET Core it's all good and nice, but WinForms and WPF are still Windows-only, and according to MS they will remain this way. And Apple has no intentions of doing the same with SwiftUI.
"Support for Winforms 1.1 and 2.0 has been completed, and is now in a maintenance/bug fixing state."
"System.Windows.Forms implements its own driver interface to communicate with the host OS windowing system. Currently, we have drivers for X11, Win32, and macOS. These drivers translate the native window messages into WndProc compatible messages, to provide as much compatibility with native .Net as possible."
To clarify: you can't use Windows Forms directly with .NET Core on non-MS platforms - you nee to port them to Mono.
I tried to use Mono several times, starting from Ximian and Xamarin times, and I always encountered strange problems that were not present in the original applications. I hope they improved somewhat recently because the code produced back then was often unusable (e.g. huge leaks after a couple of hours of use.)
While the backends are unified, MS still do refuses to fix the UI framework. They instead have yet another version of the post WPF scrambled egg UI framework. AKA WinUI3.
the native grumpy old people like me will continue to use Windows forms or WPF or MFC,ATL,Win32.
The masochists will try to use the open-source silverlight replacement. Moonlight?
The futurists will use Avalonia. Maybe SAFE stack MVU via Fable?
The Microsoft contractors will use WinUI3.
Vast majority of web developers today will use electron, as unfortunate as that is...
Mono is not meaningfully cross platform and is not the official Windows SDK.
The iOS SDK is not cross platform and changes frequently leaving behind it a trail of dead x-platform projects like the one you cite.
I suppose there are multiple reasons for this lack and it may not be a deliberate strategy in all cases but there is no incentive to promote cross platform work and there are multiple incentives for corps not to. These platforms are made to corral users and devs, not to share them.
Is this actually true? As in, I see how we may arrive at the same outcome anyway, but at this point, do those companies actually care about aggressive lock-in?
- Apple seems to be more ignoring the possibility of SwiftUI on other platforms rather than actively preventing it since https://github.com/Cosmo/OpenSwiftUI (dead) exists. Sure, they will never help to make it happen, but "don't want"?
- Google is pretty much cross-platform/-ecosystem with Flutter which explicitly supports iOS.
- MS seems to have given up with Win Forms opensourced and working on .NET Core / Mono.