[Front End] Mundo JavaScript en 2018

En enero 2018, estuve comparando 2 tecnologías para desarrollo web del lado Front-End: la librería JavaScript “React” y el lenguaje de programación “ELM” que genera código JavaScript. Para dicha comparación revise diversos artículos y cada uno de ellos me dejaba más preguntas (existían conceptos que no conocía o había olvidado) que respuestas.

¡¿Cuánto ha evolucionado JavaScript?! ¡Dios!¿Cuántas herramientas? No voy a tener tiempo para aprender todo!  – pensé 

… JavaScript posee un gran ecosistema de librerías, frameworks y herramientas que cambian rápidamente y es casi imposible mantenernos siempre actualizados. Es por ello que durante la elección de tecnologías JavaScript para nuestros proyectos webs podríamos sufrir de:

 “JavaScript Fatigue”

Sofocación/Ahogamiento por conocer varias tecnologías y no saber por cual empezar

Tengo algunas preguntas para empezar este post: ¿Qué nos está trayendo JavaScript 2018? ¿Aún debería utilizarlo? ¿Si hay tantas opciones, cómo voy a elegir la mejor?. En el video de [1] y el artículo [6] pude encontrar algunas respuestas.

Estoy sufriendo de JS Fatigue

Durante mi comparación React vs ELM, empecé a sufrir de JS Fatigue y de un poco de preocupación por no contar con todos los skills técnicos necesarios. Sin embargo, concuerdo con [6] al indicar que la tecnología en sí no es un objetivo y que a nadie le interesa qué lenguaje de programación o framework uno esté usando así como tampoco qué tan elegante son nuestras estructuras de datos ni nuestro código. Lo único que a los clientes les interesa es cuánto costará el software a desarrollar y cuánta ganancia generará. Sin embargo eso no quiere decir que descuidemos la implicación tecnológica, simplemente que prioricemos corretamente y enfoquemos nuestros esfuerzos en cumplir los objetivos del negocio. En [6] nos dice que efectivamente escribir un código elegante/bello no es de interés del cliente pero los desarrolladores lo hacen pues saben que eso mejora la productividad y a largo plazo disminuye los costos y por tanto aumenta la ganancia (revenue).

Los artículos [3][6], me devolvieron un poco la confianza ya que en ellos aconsejan a la gente, como yo, sufriendo de JS Fatigue que seamos conscientes que no necesitamos saber todo y si intentamos aprender todo de una vez lo único que ocasionará es que nuestra fatiga aumente. Otra buena recomendación es que deberíamos empezar desde el inicio es decir que aprendamos JavaScript antes de usar frameworks JavaScript, de esta manera entenderlos será un proceso más sencillo. Además el hecho de tener los conocimientos “core” de tecnologías web como CSS, HTML5, JavaScript y fundamentos de Ciencias de Computación permitirán que ¡aprendamos cualquier otra tecnología rápidamente!. Doy fe de ello, hoy me siento más segura que aquel enero 2018 :). Como todo en la vida, la mejor forma de aprender es haciendo: Por ejemplo,creando pequeñas aplicaciones/ejemplos de lo que vamos aprendiendo en libros/tutoriales etc.

Personalmente, mi forma de aprender es leer y entender los conceptos importantes, revisar tutoriales y “lanzarme a la piscina“.

 

Entremos un poco más a lo técnico “Qué de nuevo nos está trayendo 2018” [1]

¿Por qué JavaScript?

Sin duda, es el lenguaje más popular de la web y su poder está disponible en el lado Front-End [1][7] el cual se enfoca en el usuario: cómo interactua con la interface y qué va viendo mientras navega.

A continuación, se muestran las principales librerías/frameworks usadas por los desarrolladores Front-End que permiten la creación de aplicaciones dinámicas con JavaScript.

  • jQuery: Es una librería que ayuda a crear código compatible con los diferentes navegadores y a manipular el DOM. Se usa indirectamente a través de frameworks como Bootstrap.
  • Framework “Angular“:
    • AngularJS (lanzado el 2009 por Google): Manipulación del DOM y se comunica con un servidor para traer datos.
    • Angular 2 (2011): Utiliza lenguaje TypeScript.
    • Angular 4/5: Compatible con Angular 2. Actualmente solo basta llamarlo como “Angular” y está siendo utilizado en aplicaciones grandes.
  • Librería “React
    • Creado por el equipo de Facebook en 2011
    • Usado para el diseño de la interfaz de usuario.
    • Programación Funcional: Los datos no cambian, cuando ocurra algo se crea un “nuevo estado”.
    • Recomiendo fuertemente el libro “Learning React“, en el site de SafariBooks pueden acceder a un trial de 14 días del libro. Me ayudó mucho a organizar mi plan de estudio de React.
  • Framework “Vue.js
    • Progressive Framework
    • Open Source
    • Ha tomado lo mejor de Angular y React
    • Toma lo que uno conoce del desarrollo web: HTML, javascript, CSS.
    • Curva de aprendizaje es rápida. Recomendado para aquellos que quieran crear aplicaciones rápidamente.
  • Otros: Meteor, Aurelia, Ember, Polymer, Marko

Los 3 primeros tienen una mayor comunidad a diferencia de los del grupo “Otros”. Una indicación: Ellos no administran datos.

Nos movemos del Front-End a la capa de Datos

 

Datos 

En [1] nos presenta 3 tecnologías populares:

  • MongoDB: Utiliza javascript como lenguaje de consulta
  • JSON – Ajax: Permite traer datos del servidor sin necesidar de refrescar la pantalla.
  • REST – APIs: Permite enviar los datos y ponerlos accesibles a diferentes clientes.

 

HTML 5

Hoy en día, la mayoría de aplicaciones se están moviendo a la Web. Ejemplo: ¿Te has dado cuenta que ya ni necesitas Word instalado?

  • SPA – Single Page Application: Este tipo de aplicaciones permite que el contenido visible (el HTML) sea generado directamente en el navegador de manera dinámica en vez de delegar esta tarea al servidor web. [11]
  • Progressive Web Apps: Aplicación web para que se adapte a una aplicación móvil nativa (no solo responsive).

 

Back-End – Node.js (Ahora: el poder de JavaScript también se está extendiendo al lado del servidor)

Normalmente son utilizados lenguajes como Ruby, PHP, Python para el desarrollo back-end

Node.js es un intérprete que permite ejecutar javascript desde nuestro computador, teniendo acceso a los recursos de nuestro computador. Utiliza nuestro sistema operativo

Node.js® es un entorno de ejecución para JavaScript construido con el motor de JavaScript V8 de Chrome

Uff! si detallara cada una de las tecnologías mencionadas no podría acabar este post y el objetivo de este post fue únicamente conocer JavaScript en el 2018 🙂 de forma resumida.

 

Conclusión:

  • Comparar ventajas y desventajas de las tecnologías candidatas a ser utilizadas en nuestro desarrollo de sistemas no es una tarea trivial pues existen múltiples factores a tomar en cuenta como “rendimiento/performance”, “soporte técnico”, “curva de aprendizaje”, etc.
  • Recomiendo que durante la comparación lancemos todas nuestras dudas sin miedo e intentemos hallar sus respuestas. Quiero comentar una duda que tuve antes de entender React que incluso yo misma la consideré “absurda” pero sentía la necesidad de saber la respuesta: “¿y jQuery se puede juntar con React?”, quizás algún expertos podrán decir “No mezcles papas con camotes“. Fueron los artículos [8][9] que me dieron la luz.
  • La elección de las tecnologías no debe ser un proceso “escrito en piedra“, como se mencionó el ecosistema de tecnologías es amplio y cambia constatemente. Es por ello que el tiempo y esfuerzo destinado no debe ser mayor al foco que es la generación de valor a través de servicios y productos.

 

Cualquier duda/comentario/sugerencia, no dudes en dejarla en la sección de comentarios 🙂

 

Referencias

[1] Video – JavaScript en el 2018

[2] Aplicaciones Nativas: Qué son y cuáles son sus ventajas

[3] A Study Plan To Cure JavaScript Fatigue

[4] Learn JavaScript

[5] ELM vs REACT Development and Performance

[6] The Ultimate Guide to JavaScript Fatigue

[7] Qué es JavaScript

[8] Using jQuery in React Components

[9] Using React and jQuery together

[10] Pros and Cons of React

[11] Tecnologías para crear SPAs

Puntuación: 0 / Votos: 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *