| No, you run the .net code on the .net runtime. If you use UIKit namespace, for example, you will run with the dotnet shim. And when you run your code on the iOS simulator you are also not running against the same code that’s is running on your phone... You aren’t running ARM code. Because Microsoft doesn't have emulator or simulator. Not anything comparable with what Apple has, or what Google has (and what Microsoft is shipping for Android). When you run on your code on your desktop you run on a simulated environment - the Xamarin runtime on top of Windows. When you run your code on MacOS, you run on x86 version of the iOS runtime. By definition, you are running a simulator. It is not a first-class solution. So in your experience using both, what capabilities were you missing? Actually you can You haven’t had to ship C binaries to various Linux distributions.... For instance, the official MySQL driver for Python is not pure Python. Even if you are on Linux, you can’t just do a pip install from your box, create a zip file and guarantee it will work. You need to use the package built for whatever version Amazon Linux is based on.... https://stackoverflow.com/questions/35763380/problems-using-... There are plenty of compatibility issues distributing binary builds for different versions of Linux. Not a big deal, I use AWS CodeBuild to create my distribution anyway. |
> You aren’t running ARM code.
You are running the same framework by the same author, which certifies that they behave the same to some extent. It's the same way, that Gnustep is not an adequate replacement for Cocoa.
> When you run on your code on your desktop you run on a simulated environment - the Xamarin runtime on top of Windows. When you run your code on MacOS, you run on x86 version of the iOS runtime. By definition, you are running a simulator.
Are you still interested in arguing in circles? I'm not, it makes no sense and is a waste of time. You demonstrated that you are not willing to understand the point, you just want to win an argument on the internet. Go find someone else for that.
> You haven’t had to ship C binaries to various Linux distributions....
Now it is C binaries... It was just binaries before. You can move Go binaries with no problem, the crosscompiled ones too, because they do not have problem with importing symbols nilly-willy.
You can do that with C binaries too, but you have to take care. Just make sure you know what are you linking against, bundle it if it is not present on the target or just link statically. It no problem for a competent developer, who knows what a linker is and can maintain ABI hygiene.
If you think that is something complicated, go setup apache with mod_wsgi on windows, you will run into the same problem. There you will have to align the right Visual Studio version (because each msvcrt version has its own ABI) with Apache version with Python version, otherwise the hell will break loose. Of course, all the native python extensions you are going to use will have to be compiled with the same Visual Studio version. Yet nobody is saying, that it is impossible to distribute binaries that run on all Windows releases, mainly because it has nothing to do with specific system, but with the apps you chose to run, how they are built, and also boils down to ABI hygiene.