Llegamos a ustedes gracias a:



Reportajes y análisis

Angular vs React: Una batalla épica por llegar al desarrollador

[15/04/2017] Cuando el jefe dice que es hora de verter toneladas de datos de los visitantes a su sitio web, tiene docenas de opciones para levantarse y salir corriendo. En los viejos tiempos, la mayor parte del trabajo se realizaba en el servidor, pero hoy en día gran parte del trabajo pesado se ha llevado al cliente, ofreciendo una experiencia más interactiva, porque el cliente a menudo tiene ciclos de sobra.

Hay una serie de herramientas para el código del lado del cliente que asumen el trabajo de establecer los datos e interactuar con el usuario. Dos de los últimos contendientes principales son Angular y React, un par de proyectos de código abierto de Google y Facebook, respectivamente. Angular y React son excelentes herramientas para ofrecer aplicaciones web y sitios web complejos basados en datos. Pero ofrecen enfoques distintos, el tipo de diferencias que generan largos debates filosóficos entre codificadores.

¿Es Angular la elección correcta para su equipo de trabajo? ¿O es React la opción precisa para su próximo proyecto? Aquí hay un desglose de las fortalezas de cada herramienta para ayudarlo a decidir.

Dónde gana Angular: Ser un framework completo

Cuando inicia un proyecto con Angular, gran parte del trabajo CRUD ya está hecho para usted. La mayoría de los mecanismos para crear, actualizar y eliminar objetos de datos ya están preparados. Todo lo que tiene que hacer es dar a los objetos y sus respectivos campos nombres apropiados, luego manipularlos con las reglas CSS para mostrarlos. La estructura ya está en su lugar para crear y manipular datos en estos campos. En otras palabras, Angular es un framework completo, un vaso vacío que aguarda su talento.

Dónde gana React: Ser "solo" una biblioteca

Muchos detractores de React dicen que es solo una biblioteca, simplemente una colección de rutinas para mostrar los datos en la pantalla. ¿Pero no es eso cierto de cada archivo de Javascript que se encamina hacia el navegador? Lo que realmente significa es que React es más un conjunto de herramientas con menos suposiciones de cómo va a estructurar su página. React no ofrece una visión completa, pero proporciona los medios para que construya su propia visión rápida y eficientemente. Esa flexibilidad encierra poder. Y para aquellos que no necesitan una visión preenvasada, sino solo un poco de ayuda con el trabajo pesado, ser "solo una biblioteca" hace que React sea una gran herramienta.

Dónde gana Angular: La estructura para personalizar de arriba abajo

Otra forma de ver la diferencia es entender que Angular ya viene con gran parte de la estructura ya establecida. El trabajo que le toca a usted es cavar y personalizarlo. Los programadores de Angular comienzan con el panorama general y completan los detalles. Si quiere la estructura angular estándar, tiene suerte porque ya está construida para usted.

Dónde gana React: La flexibilidad para construir desde abajo hacia arriba

Los programadores de React a menudo se consideran como la construcción de usar React como su apoyo. Esta metáfora es un poco forzada porque no hay altibajos en el espacio de código, pero ilustra cómo se podrían considerar las diferencias entre Angular y React. Los programadores de React añaden y añaden hasta que hayan completado su aplicación. Y si quiere algo fuera de lo común, con React, puede construirlo sin chocar con la estructura preconcebida de un framework como Angular.

Dónde gana Angular: TypeScript

Angular utiliza una variante de JavaScript llamada TypeScript, así llamada porque mezcla la comprobación fuerte con la estructura general y el enfoque de JavaScript. Es como agregar tirantes a sus pantalones. Las definiciones de tipos de variables se eliminan cuando el TypeScript se compila en JavaScript para su implementación [se compila convirtiéndose a javascript común]. Cualquier error es capturado y marcado mucho antes del tiempo de ejecución. Por supuesto, no es necesario utilizar TypeScript, pero muchos desarrolladores lo hacen, y eso hace que sea más una tradición que una regla. Sin embargo, añade una estructura que mantiene el código un poco más limpio y más seguro.

Donde gana React: JavaScript estándar

React está construido con JavaScript estándar, y probablemente lo use con JavaScript estándar. Hay algunos, sin embargo, que se mezclan en TypeScript porque quieren. Todo sigue funcionando porque TypeScript compila en JavaScript. Es su elección.

Dónde gana Angular: HTML, con cierta mezcla de JavaScript

Lo primero que un desarrollador Angular suele crear es HTML. Las partes de sus páginas están escritas con etiquetas y posteriormente creadas con código Angular. A los desarrolladores les gusta decir que Angular es principalmente HTML con algo de JavaScript mezclado cuando es necesario. Esto a menudo hace que sea más accesible para diseñadores y otros que usan etiquetas HTML, pero se dejan llevar por la complejidad de JavaScript. Pueden pensar en HTML y pegarse profundamente a JavaScript solo cuando lo necesitan. Si es un desarrollador web que tiende a considerar HTML primero, Angular le permite la comodidad de considerar su página como una colección de etiquetas HTML, con JavaScript como un montón de pequeños elfos que mágicamente hacen las tareas en el fondo.

Dónde gana React: JavaScript, con cierta mezcla de HTML

El centro de una aplicación de React es un programa de JavaScript que arroja código HTML que define lo que se ve. Si necesita especificar cualquier HTML, se lo da al JavaScript y el JavaScript emitirá los fragmentos HTML cuando esté listo. Esto significa que los desarrolladores amantes de JavaScript se sentirán más a gusto. Está escribiendo un programa, no un marcado. Si piensa como programador, la creación de una aplicación con React se siente natural. Se escriben funciones y se pasa alrededor de estructuras de datos. El HTML mágico sale del back end al navegador. Es exactamente como escribir un programa en su primera clase.

Dónde gana Angular: Programación declarativa

Algunos expertos en lenguaje de programación quieren decir que un lenguaje "declarativo" permite al programador expresar lo que necesita que ocurra y el lenguaje hace el resto. En el caso de HTML, esto significa que el programador especifica las partes del documento (titulares, listas, párrafos) usando etiquetas (<h1>, <ul>, <p>), y el navegador hace el trabajo de averiguar cómo mostrarlas, de modo que la información luzca bien en la pantalla.

Dónde gana React: Programación imperativa

Muchos de los lenguajes ahora clásicos como C, Java y JavaScript se dice que son lenguajes imperativos. Es decir, le decimos a la computadora qué instrucciones básicas ejecutar y en qué orden ejecutarlas. Es mucho más bajo que la programación declarativa, aunque la definición está sujeta a debate. Con la base JavaScript de React, resulta familiar para cualquiera que codifique en la forma clásica.

Dónde gana Angular: Extras HTML

HTML es agradable en la forma en que lo es una fábrica estándar Honda Civic. Pero si quiere algo un poco más personalizado, Angular lo tiene previsto, gracias a la adición de mejoras a HTML, de la manera en que un comprador de un Civic puede añadir tanques de óxido nitroso o neumáticos más anchos. Angular incluye atributos adicionales para etiquetas HTML que eventualmente son analizadas por Angular para definir su aplicación. Realmente no se escribe un lazo (loop); sino que se agrega la directiva ng-repeat a una etiqueta y Angular hace el resto. Usted está construyendo algo nuevo, así que ¿por qué no usar algunos extras?

Dónde gana React: Pure JavaScript

A los programadores de React les gusta presumir que su código es JavaScript puro. No hay palabras clave adicionales o características especiales para confundir a cualquiera que lo vea. Esto significa que los principiantes simplemente necesitan aprender los nombres de funciones estándar y las estructuras de datos de JavaScript. No hay nuevas características que usar (y confundirse), y esto también hace que sea un poco más fácil quitar partes del código y reutilizarlo en otro lugar.

Dónde gana Angular: Un nuevo camino

Aprender Angular a menudo se siente como un renacimiento o un nuevo comienzo. Ofrece un mundo nuevo y puro donde puede crear maravillosas aplicaciones usando el método Angular. Incluso si sabe HTML y JavaScript, tiene que aprender cómo utilizar las directivas de Angular de la manera correcta. Para algunos esto puede ser un desvío, pero para muchos, el ejercicio de nuevos caminos neurales mantiene el trabajo fresco.

Dónde gana React: Tradición

React es más una continuación que un nuevo camino. Si sabe JavaScript, puede empezar a jugar con el código escribiendo más JavaScript. No es "nuevo". Seguro, tiene que aprender la API de React y la forma correcta de pasar datos a ella, pero todo el proceso es familiar para los programadores de JavaScript, con un aspecto ligeramente diferente, gracias a las nuevas llamadas de funciones y al API.

El panorama general: ¿Por qué no los dos?

Angular y React son opciones sólidas, así que ¿por qué elegir? Sí, ambas abordan el problema de reunir páginas web de manera diferente, pero no son materia y antimateria. Pueden coexistir sin una explosión que destruya el mundo; ng-React es solo un ejemplo de cómo un bit de codificación puede hacer que sea posible el uso de un componente de React en Angular. Si sigue este camino, puede escoger y elegir lo mejor para cada rincón de su aplicación.

Al final, muchas de las distinciones entre Angular y React son pequeñas. El verdadero desafío consiste en diseñar su aplicación web, planificar los diseños y decidir qué sucede con cada clic. El trabajo duro es imaginar su aplicación y encontrar una buena manera de comunicarse con su usuario. Tanto Angular como React hacen un gran trabajo de poner componentes en la pantalla, recopilar entradas y enviarlo de vuelta al servidor. El verdadero trabajo depende de usted.