iOS/Android on Windows? The square of the imperfect triangle.

Generally, when Microsoft opens its mouth, the bread rises. It is a proven fact since the days when Bill Gates presented Windows 95 and it crashed in the middle of the presentation. It is a classic that will stay with us for a lifetime. But that does not mean that they continue to do it no matter how much there is custom. Sometimes just nonsense is said that shouldn’t be said. The last one comes from yesterday’s presentation and the announcement that they are working on nothing less than run Android and iOS apps on your Windows 10 system. And trying to square an unloving triangle like this is to say the least a nonsense. Or directly one kiding you. Let’s see why.

Generally speaking, an app runs in a specific environment. There are basically two types of apps: the so-called native ones, which have been written against the operating system libraries in the language or languages ​​allowed by the system developer and which generally (with the exception of Android, which requires extra optimizations to go further). or less decently) are fast and efficient on that system. Non-native applications are those developed on some “overlapping” platform that uses another language that was not initially allowed (initially Apple did not allow using environments other than Obj-C, but that has been possible for a long time) and that have generally been seen reduced to “web” type development, with HTML and Javascript as main references. They look like a native app but are not natively developed. Generally that usually means apps from worst quality and with a much lower access to the system, which allows in practice to do little in reality compared to the native ones. On the other hand, native apps are generally more difficult to implement (although that depends on practice) and also, they are not multi platformthat is, running the same app on different platforms with relatively few or no changes.

Having said this, we can deduce that native apps have a strong tendency to not be able to run in an environment other than their own. And this is what they are supposed to do at Microsoft: “translate” by means of a compiler the instructions of Java or Obj-C/Swift (I understand that they will cover both) into something understandable by the Windows kernel, based on . net. So far it looks pretty, but it’s not so much. As it has been possible to understand from the previous paragraph, native apps are strongly linked, not only to the operating system, but also to its libraries and other third-party libraries of that operating environment. oh! And that without counting the fragmentation Android and frameworks. That’s a party. Except for games, which are already mostly done on multiplatform systems, the rest of the apps don’t have much of a future in a scenario like this. Converting that to something understandable by the target system in an optimized and performance way is actually a utopia. It has already been tried several times, such as the Cider experiment, from Columbia University, which had managed to run iOS applications on Android but has been on stand-by for a long time because the feasibility of this type of project is really complex and difficult to implement. in an efficient way. On their website they indicate that it is being developed but their demo says that you cannot have access to GPS, location services and bluetooth (among probably others). Likewise, Blackberry tried it in its day on the Blackberry 10 with the aim of saving itself, with the results already known to all: bankrupt company.

iOS/Android on Windows?  The square of the imperfect triangle

And it is that apart from the technical difficulties of a similar process, there are the commercial ones. Getting apps from other systems to run on yours has one drawback: it makes developers not interested in developing natively for your system and extensions. If we can develop everything in Swift and Java, the extensions that Microsoft can publish for its system and the corresponding optimizations will stop having an effect in those apps (or they would have to make extensions compatible with these languages, which in reality is a catastrophe of strategy corporate). What’s more, even if they get an incredible optimization (NO), in the end what will end up happening is that users will not find your system interesting because you are running software from other platforms, so they will use those other platforms, where with a high probability they will work. better. In the case of Android apps, it occurs to me that there is no back button on Windows Phone with the same functional style… Most Android apps don’t have a way to navigate back like on iOS, so many Sometimes the apps can be directly useless in this system. I can give more examples, but I think that with this it is clear that it is going to be very, very difficult for them to achieve their objective.

Satya Nadella He has many challenges, but he is not facing them well (this is my opinion, of course). He has managed to fix many of Ballmer’s “gaffes” (he is an excellent business manager, but a lousy strategist), but not all of them. The fattest in his history was the unique system for all devices, Windows 8, and that is the bug that they are not going to be able to fix with this. Jobs made a decision on his day and that is that each type of platform has its own system. It’s laborious and heavy, but the right thing to do in the long run. The problem with these decisions is that their only goal is to have more apps in their store, not realizing how insidious that will be in the long run, and they are doing nothing but propping up their own hangman tree. Time will tell.

iOS/Android on Windows?  The square of the imperfect triangle

(Eladio reminded us a long time ago how Microsoft lives in the impoverished world of the real world… Unfortunately it will continue to be that way for much longer…).