Windows: si.
macOS: sí.
Android: sí.
- ¿Se puede usar AirPlay para transmitir contenido multimedia desde un dispositivo iOS a una Mac?
- ¿Cuál es la tasa de uso de datos de Skype para iOS?
- ¿Por qué los desarrolladores priorizan iOS sobre Android, pero no Mac sobre Windows? Windows está en muchos dispositivos diferentes, pero se prefiere a Mac.
- ¿Cuál es un buen portafolio para un estudiante desarrollador de iOS?
- Android (sistema operativo): ¿Es iOS mejor que Android y Windows Phone?
Si te refieres a lanzar la misma aplicación para las tres plataformas , en ese caso un núcleo unificado de C ++ que use algo como QT o la cosa portátil C ++ de Visual Studio podría ser menos difícil que tres implementaciones diferentes en tres lenguajes de alto nivel diferentes.
No tengo claro cuál crees que es el lenguaje “preferido” en Windows, pero asumiré C # (probablemente Microsoft no lo prefiera más que C ++). Para macOS, asumiré Objective-C o Swift. Para Android, creo que todos sabemos que es Java.
Ventanas
Windows es el único sistema operativo en el que el desarrollo de C ++ se vuelve más fácil con el tiempo, debido a UWP y Windows Runtime. De los tres, Windows es el único sistema operativo que admite explícitamente la creación de aplicaciones exclusivamente en C ++, sin enlaces a otros idiomas, soporte completo de IDE, etc. (Visual Studio). Aún así, estoy seguro de que crear una aplicación de Windows 10 con C # seguirá siendo más fácil que con C ++, incluso si es C ++ moderno con Windows Runtime moderno.
- Se ofrecen tantos métodos convenientes y características de API para C #: es más fácil navegar por las API y predecir el comportamiento de la aplicación que con C ++, y habrá muchas menos líneas de código.
- Muchas de las API de UWP C ++ son nuevas y tal vez aún están en desarrollo. Están sucediendo muchas cosas interesantes, incluido un compromiso con C ++ 11/14/17 que cumple con los estándares. Pero el comportamiento de una nueva aplicación simplemente no será tan predecible usando estas nuevas API. El desarrollo de la aplicación C ++ es inherentemente mayor entropía y complejidad que C #, y los métodos .NET C # son comparativamente más estables.
Mac OS
Para macOS, C ++ no le compra nada sobre Objective-C o Swift, aparte del rendimiento si tiene un equipo de desarrollo que puede explotar C ++ hábilmente. No hay API de C ++ como UWP en macOS. Construir una aplicación macOS en C ++ definitivamente será más difícil para el equipo de desarrollo típico que usar Swift, y no podrá construir una aplicación C ++ pura sin vincular a Objective-C o Swift GUI API (quizás esto no importa mucho…)
Androide
Android ofrece cinco tiempos de ejecución C ++ diferentes (en el IDE; solo se incluye un tiempo de ejecución, el que llaman “sistema”, en los dispositivos Android). No parece que vaya a ser un buen momento, muy retazos. Siempre he sentido que su declaración de apertura de que “proporcionan una biblioteca de soporte de tiempo de ejecución C ++ muy mínima” era una pista de importación (han tenido esa declaración en su sitio NDK durante años), una pista que no lo alientan a usa C ++. Uno de los tiempos de ejecución es algo llamado stlport, del que nunca he oído hablar, y se actualizó por última vez en 2008. Eso es tan extraño que lo ofrecerían, tal vez fue una solicitud de características de socios importantes o algo así.
Dicho esto, siempre he sentido curiosidad e impresión por cómo los navegadores como Firefox y Opera fueron portados a Android, ya que están escritos en C ++. Lanzaron sus versiones de Android hace muchos años, cuando las opciones de Android C ++ y NDK eran más limitadas de lo que son hoy. No tengo claro si Firefox, por ejemplo, tiene que usar los enlaces de la interfaz de usuario de Java que se supone que deben usar las aplicaciones NDK. Parece que ese tipo de cosas sería frustrante para los desarrolladores de navegadores, ya que el rendimiento es una prioridad para ellos. Quizás compilar grandes aplicaciones de C ++ para Android no es tan difícil como creo, y tal vez los enlaces de Java no sean un gran problema (o de alguna manera no tienen que usarlos).
Clausura
Si termina creando una aplicación de Windows C ++ para UWP, consulte el proyecto C ++ / WinRT de Microsoft. Kenny Kerr es un tipo justo. Creó Modern C ++ para Windows Runtime por su cuenta, completamente independiente de Microsoft. Luego Microsoft lo contrató, y ahora C ++ / WinRT es un proyecto oficial de MS. Ver también el artículo de Brian Peek.