Si el lenguaje de programación principal para Android es Java y para iOS es Objective-C y Swift, ¿por qué existen aplicaciones web como Instagram que están escritas en Python en estas plataformas?

iOS y android tienen sus propios lenguajes de programación derivados de C y Java. iOS utiliza Objective-C y Swift mientras que Android utiliza el lenguaje androide para el desarrollo de aplicaciones. Estos son los lenguajes nativos soportados por el sistema operativo y su compilador para convertirlos en lenguaje de nivel de máquina. Pero esta no es la única manera de desarrollar aplicaciones en estas plataformas.

Hay 3 formas diferentes de desarrollar una aplicación en cualquiera de estos lenguajes

  • Nativo
    • Usando lenguajes nativos y soportados por el sistema operativo como swift, objective-c, android.
    • Este enfoque da flexibilidad y mejor acceso a la API incorporada para interactuar con el sistema operativo.
    • Advantages:
      • Look & feel, performace and several other factors are so beneficial using this approach of development.
    • Disadvantages:
      • Code cannot be reused across the platforms hence it is expensive to develop a universal application.
      • Both platforms has their own UI restrictions which makes it difficult to get a unified user interface.
    • Who choses this:
      • Major tech companies and product based companies who wants maximum user reach on both the platforms to exhibit their services.
      • Fitness related apps, navigation based apps, photo editing apps because of the system feature usage.
  • Cross platform or web based -
    • This kind of development is by leveraging Webkit provided by both of these operating systems.
    • Ventajas:
      • Las ventajas de este enfoque es una menor inversión, código reutilizable a través de las plataformas y fácil de encontrar desarrolladores competentes para el costo efectivo.
      • Cualquier marco basado en la web se puede utilizar para este desarrollo que también da flexibilidad para elegir los marcos de elección.
        • Desventajas:
          • La apariencia y el acceso a las características del sistema golpea el bloqueo en ciertos escenarios.
          • Ambos webkits tienen su propia complejidad y el manejo de problemas específicos del sistema operativo en un código común es engorroso y se ve feo de mantener.
          • Aunque la web es una plataforma ampliamente popular los webkits en estos sistemas operativos son sólo una capa con memoria y recursos limitados en comparación con el de las aplicaciones nativas.
          • Developing an extension like widget, activity sharing, continuity is very difficult to achieve.
        • Who choses this:
          • This approach is generally for someone who just wants mobile presence.
          • For whom cost effective approach is primary criteria than user experience.
      • Hybrid:
        • This is the most widely used approach by many of the major platforms.
        • This approach is the mix and match approach of native and web code based on the needs without compromising user interaction and performance. Ex: Amazon app
        • Advantages:
          • Best user experience with cool animations, layouts etc can be provided on the important areas of the app to attract the customers.
          • Lógica reutilizable o accionable común todavía se puede desarrollar con las tecnologías web, pero por lo general en este tipo de desarrollo las páginas nativas se utilizan para mostrar los servicios y las páginas web se utilizan para el cumplimiento.

Considerando estas muchas posibilidades en el desarrollo de aplicaciones, la elección de cualquier langauge de programación se basa únicamente en las necesidades de negocio de la empresa. No sé si Instagram utiliza python o alguna otra tecnología, pero incluso si es así podría ser un enfoque híbrido que es más adecuado para su modelo de negocio. Y además crear una app móvil es para llegar al máximo de clientes y hacer sus servicios prácticos.

Aquí la tecnología no es el criterio, lo es su negocio y el alcance de sus productos.