Windows Phone 8.1: ¿Con qué lenguaje desarrollo?
Introducción
Hoy en día nos encontramos con infinitas formas de desarrollar software, de modo que resulta casi imposible valernos de excusas para no hacer aplicaciones. En el mundo de Windows Phone 7.x e inclusive 8.0, desarrollamos las aplicaciones de forma nativa, híbrida o directamente web. Para las dos últimas, utilizamos como lenguaje base HTML con Javascript para realizar las interacciones entre el usuario y la aplicación, obviamente con sus limitaciones, propias de un lenguaje enfocado a plataformas cliente.Por otra parte, en el desarrollo nativo nos encontramos por ahí con algún lenguaje "propietario" que debemos aprender de manera a poder desarrollar aplicaciones que puedan interactuar perfectamenete con el hardware disponible en los dispositivos. Por ejemplo, para Android debemos utilizar código Java y sus nomenclaturas, para Windows Phone un lenguaje acorde al .NET Framework y para iOS su famoso Objetive C. Es por eso que Windows Phone a dado un salto más allá para traernos más opciones en el desarrollo de aplicaciones para Windows Phone, incluyendo las aplicaciones Universales.
Contexto
En la plataforma Windows Phone 8.1 ya no es necesario que utilicemos VB.NET (Visual Basic .NET) o C#.NET para el desarrollo de nuestras aplicaciones móviles nativas, debido a que se han creado las aplicaciones universales que unifican lo mejor de ambas plataformas, como son Windows Phone y Windows Store.De esta manera Windows Phone añade a sus lenguajes C++ y Javascript para el desarrollo de aplicaciones nativas. A continuación expongo los lenguajes disponibles para la plataforma Windows Phone 8.1.
VB.NET y C#.NET
Es conocido, que ambos lenguajes están disponibles desde la primera versión de Windows Phone (7) y que se mantienen estos lenguajes para que los desarrolladores continúen el desarrollo que lo venían haciendo, inclusive con mejoras en dichos lenguajes.C++
Este lenguaje fue introducido en aplicaciones de tipo Windows Store, pero gracias a las aplicaciones Universales, podemos utilizarlo también en Windows Phone 8.1. Este lenguaje ofrece la mayor capacidad de rendimiento por tratarse de un lenguaje casi de bajo nivel (por las prestaciones que ofrece). Lo curioso de esto es que nos permite trabajar en conjunto con el lenguaje XAML para la creación de la visual correspondiente a la aplicación.JavaScript
Este lenguaje es ampliamente conocido y utilizado en aplicaciones web, con varias opciones existentes en el mercado (angularjs, node.js, knockout.js, etc.) para hacerlo un lenguaje muy cómodo y ágil. También ha sido introducido en el desarrollo de aplicaciones Windows Store y ahora también a aplicaciones Universales.¿Qué lenguaje elijo?
Creo que esta pregunta resultaba más difícil contestarla anteriormente por ciertas limitaciones propias de cada plataforma, que con la liberación de las aplicaciones Universales nos permites facilitarnos la vida a la hora de desarrollar aplicaciones que se puedan utilizar en todas las plataformas Windows.Todos los lenguajes son iguales, en materia de prestaciones, ningún lenguaje es mejor que otro. Simplemente la diferencia está en qué tipo de aplicaciones necesitamos desarrollar y que nivel de conocimiento tenemos para elegir la mejor opción.
Por ejemplo, para una aplicación que permita obtener datos y mostrarlos en pantalla lo puedo desarrollar en cualquiera de los lenguajes dependiendo de mis conocimientos. Para un juego, es recomendable C++ con DirectX porque es más amigable con el hardware, pero esto no significa que no pueda hacerlo con los demás lenguajes disponibles.
Lo más importante aquí es que cumpliremos un paradigma muy difícil de lograr en esto días que se llama reutilización.