La relevancia del ecosistema React para el desarrollo de software

Jaime David Mejía
Analista de Desarrollo

Javascript es uno de los lenguajes más utilizados en todo el mundo. Ahora más que nunca, con diferentes Frameworks y estándares, entre otros, podemos decir que está básicamente en toda la web.

Para los desarrolladores web, React existe desde hace tiempo. Ahora, también existe una versión para las aplicaciones móviles denominada React Native. Esto me motiva a escribir este texto que busca conocer de qué va esto del ecosistema React y por qué es una de las tecnologías más importantes, sino la más importante, en el mundo de Javascript.


Antes de comenzar, quiero aclarar que esta es una perspectiva personal, basada en lo que conozco y he investigado de React, todas las opiniones son válidas.

Primero veamos qué es React:

Como he mencionado, React es una librería Javascript de código abierto, desarrollada por Facebook, focalizada en el desarrollo de interfaces de usuario. Básicamente con React podemos hacer lo mismo que hacíamos con Javascript (vainilla) u otros frameworks, entonces, ¿cuál es la ventaja de usar React con respecto a otros frameworks basados en Javascript?. Veamos en algunos apartados cuales son sus ventajas.

1. ¿Qué dicen los números?

Antes de tocar React, veamos las estadísticas de popularidad de lenguajes de programación, la cual demuestra por qué es importante que los desarrolladores aprendan Javascript, siendo este, el lenguaje de programación más popular en estos momentos.

Tomado de: Stack Overflow Developer Survey 2019

Imagen: Algunas tecnologías de javascript actualmente en el mercado

Hablemos ahora de las cifras de React, desde el apartado para aplicaciones web. Gracias a Platzi, encontré una página donde evaluaban con estadísticas, los intereses de los desarrolladores en diferentes ámbitos que querían aprender de Javascript. La encuesta, se encuentra en https://2019.stateofjs.com y revela, en diferentes categorías, qué es lo que les llama la atención a los desarrolladores de Javascript.

Algunos resultados son los siguientes:

En la imagen anterior, vemos la categoría de las opiniones, dónde se le preguntó a los encuestados acerca de las diferentes tecnologías: React, Vue, Angular, Preact, Ember y Svelte; y qué pensaban de ellas. Los resultados, que están en la imagen, se pueden explicar con el siguiente texto tomado de la página de Platzi.

“React era la herramienta que la mayoría tenía ganas de aprender en 2016 y 2017. Y también es el Framework que más generó satisfacción en 2019. Esto habla mucho del gran esfuerzo que está haciendo Facebook por empujar React.”

Frente a la categoría de satisfacción no se queda atrás. De hecho, es la tecnología con mayor porcentaje, en este punto, frente a las otras tecnologías. Aun así, la diferencia entre ellas no es tan marcada, lo que denota que los desarrolladores no se quedan con una sola tecnología, sino que quieren aprender de todo un poco.

React para aplicaciones móviles

Me empezó a gustar esta tecnología cuando me enteré de que no solo era popular para aplicaciones web, sino también ¡para aplicaciones móviles! y es que la diferencia, en cuanto a sintaxis, entre una y otra es mínima. Con una muy baja curva de aprendizaje, prácticamente, puedes diseñar aplicaciones web y móviles. Creo que a todos nos gusta el 2×1 ¡y es que no todas las tecnologías de aplicaciones web están optimizadas para estar en el móvil!.

Aunque tiene un nombre diferente “React Native”, igualmente de Facebook, salió como una solución más para el desarrollo de aplicaciones móviles Nativas.

Antes de mostrar estadísticas, aclaremos un poco qué significa el término de aplicaciones móviles nativas y su contraparte, las aplicaciones móviles híbridas:

  • Las apps híbridas se desarrollan usando HTML5, CSS y JavaScript. Es decir, utilizan el mismo código independientemente de la plataforma en que se ejecutan. Se incrustan dentro de una webview o una Web App.
  • Las apps nativas se desarrollan usando el lenguaje requerido por la plataforma de destino en concreto: Objective-C y Swift para iOS, Java y Kotlin para Android, etc.

Entonces, es momento de las estadísticas. ¿Cuál es el estado de React Native frente a otras tecnologías para el desarrollo móvil?

De la imagen anterior, vemos la categoría de interés y satisfacción de las tecnologías para la creación no solo de aplicaciones móviles, sino de las aplicaciones de escritorio (las que se instalan en el computador). Donde Electron es quien manda (pero no entra en competencia dado que su mercado es para crear aplicaciones para Windows, Mac o Linux). 

¿Será que próximamente existirá algo de React para aplicaciones de escritorio?. Fuera de Electron, la encuesta es liderada por React Native, seguida por el desarrollo nativo y luego por otras tecnologías basadas en Javascript (recuerden que esto solo se basa en Javascript).


2) Funcionalidad

Dado que React es una librería y no un conjunto de librerías previamente cargadas (como en otros Frameworks tipo Angular o Vue), se puede elegir cómo personalizar dependiendo de lo que se necesita. Puede que no necesites Internacionalización porque la aplicación será para una sola región, o que no necesites animaciones de imágenes o que tampoco tenga gráficas (las que se ven en una interfaz de usuarios). Aun así, la comparación sería cómo poner en paralelo una navaja multiusos con un cuchillo. Sabemos que la navaja contará con muchas cosas y que el cuchillo corta (al menos que no esté afilado).

Si bien, en temas de funcionalidad, React puede quedarse un poco rezagado de los demás; al tener que instalar cosita por cosita lo que vas necesitando; es posible agregar las funcionalidades que se necesiten en nuestra aplicación de React de manera sencilla con un buen NPM -Node Package Manager.


3) Rendimiento

Apoyándonos en el apartado anterior de funcionalidad, se podría pensar que React es más ligero que otros Frameworks. Después de todo, ¿qué es más pesado, el cuchillo o la navaja multiusos?

Aun así, React es usado por grandes compañías como  Whatsapp, Instagram y Paypal; lo que podría llevar a pensar que está optimizado para ser usado por grandes aplicaciones u empresas. Eso sí, los frameworks de Javascript también están optimizados para ser usados por grandes compañías. Un ejemplo de esto es Angular que es usado por compañías como Forbes, Indiegogo, Svelte, Noppo y Cloudless.


4) Soporte

React fue lanzado en 2013 por Facebook. Aun así hace pocas semanas, en la documentacion oficial de React (https://reactjs.org/blog/2020/08/10/react-v17-rc.html) hablan de una nueva version (React v17.0), es un buen indicio para denotar que cuenta con un soporte constante por parte de los desarrolladores oficiales, igualmente existe documentación y ejemplos en diferentes paginas como StackOverFlow y Medium, entre y en chats  como Discord y Slack.


CONCLUSIONES

1) Dependiendo del objetivo, es importante escoger un lenguaje de programación que se acomode, teniendo en cuenta además, otros parámetros como popularidad, curva de aprendizaje, facilidad de instalación, si es gratuito o requiere de alguna licencia, entre otros.

2) Es importante tener en cuenta tus preferencias. ¿Prefieres un framework todo-en-uno (Angular, Vue) o establecer tu propia estructura con librerías (React) teniendo en cuenta que habrá opciones que posiblemente no utilices pero que ocupan espacio en tu aplicación?

3) ¿Necesitas una versión móvil para tu aplicación? En ese caso puedes reutilizar mucho código con React y React Native.

4) Muchas empresas / empleadores están interesados en personas que sepan de React y en Cidenet no somos la excepción. 

Luego de esta explicación, creo que lo más importante son tus preferencias, ellas son las que te van a guiar, igualmente no te quedes solo con React.

En mi caso quiero aprender a usar Vue.js… ¡Creo que no es obligación casarse con solo un lenguaje o Framework!

Nota sobre el artículo: Esta es una opinión personal pero sirve como una guía para desarrolladores que quieran tocar un nuevo lenguaje de Javascript.