| 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. Have you done mobile development? If you run on top of the iOS simulator, you still don’t have any “guarantees” that they will run the same way. I’ve been doing mobile development since before the iOS App Store every existed (Windows Mobile), you always had to run on the real device and the behaviors and the performance characteristics were nowhere near the same. When you are developing with Xamarin, you smoke test on the simulator at first and then you run on the device using the Xamarin player - the same way you are going to deploy your code. 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. Excuse me for referring to the most popular language for writing native code (and the language that Linux itself was written in) instead of specifying that I’m not talking about Go of all things. Almost all non C languages that I’m aware of have a way to call native C code - not Go. Your “solution” for distributing C code is “statically linking”? So if I have four python modules that all have native dependencies they should all ship with statically linked libraries? Not only will my code be larger, so will the memory requirements. If you have four processes all using the same dynamically linked library, the library is only in memory once, with statically linked libraries, you are increasing your code size and your memory footprint. How well do you think that with work with the 128MB VMs that you get to run Lambdas? Or do you think I should just spend more on higher capacity lambdas? If I wanted to use heavyweight VMs and Docker containers, I might as well use Windows. But this whole thread you’ve shown when it comes to developing mobile applications, you’re speaking hypothetically while I’m speaking from a perspective of doing mobile development for over 10 years. I’ve even played around with J2ME development. The largest issue is that you’re over indexing on the value of the simulator. Mobile simulators have never been a good way to validate the functionality, user interaction, performance, etc. of a mobile app. They are pretty good for development, and okay for negative testing (if it doesn’t work on the emulator it probably won’t work on the device), but you can’t depend on it for positive testing. |