¿Por qué un desarrollador elegiría usar AngularJs sobre jQuery?

Los desarrolladores elegirían Angular en lugar de JQuery al construir cualquier cosa que no sea una aplicación web no trivial. Al igual que cualquier marco o biblioteca, jQuery es una herramienta y lo importante de los grandes desarrolladores es que saben qué herramienta es adecuada para cada trabajo.

De la misma manera que no encontrará un carpintero profesional que use un destornillador de punta plana como cincel, tampoco encontrará un desarrollador profesional que construya una aplicación grande y compleja con jQuery. Se trata de la escala y la complejidad del trabajo en cuestión.

¿Está construyendo un sitio web pequeño y tradicional que hace un poco de manipulación DOM, tal vez tiene algunas animaciones simples y hace una llamada AJAX o dos? Perfecto, use jQuery (si cree que debe hacerlo, tal vez tenga que admitir IE8 o algo así …)

¿Está creando una aplicación web compleja en la que una vista debe sincronizarse con un modelo y hay muchos controles interactivos en la página? Hágalo usted mismo, y los desarrolladores que heredan su código, un favor y usan Angular o un marco equivalente.

Tan popular como es jQuery, no es la respuesta a todo, como la gente nos ha estado diciendo durante años : sobre jQuery y aplicaciones grandes

TL; DR: AngularJS, o cualquier otro marco / biblioteca de JavaScript para el caso, le permite construir sus aplicaciones web de una manera declarativa que sea más fácil de mantener y escalar. Te permite escribir código para humanos.

Versión completa: Todo se reduce a qué tipo de aplicación web está intentando construir. Si es un sitio web estático con un par de páginas, puede conformarse con algunos HTML, CSS y jQuery.

AngularJS es un marco de JavaScript que le permite hacer mucho más que solo sitios web estáticos. Le permite crear aplicaciones web de una sola página que requieren mucha manipulación DOM y ejecutarse principalmente en el cliente (el navegador). También le permite estructurar su código de forma modular que sea escalable y siga el patrón MVC que separa la lógica empresarial de la vista.

Permíteme darte un ejemplo. jQuery Mobile es una biblioteca simple y liviana que le permite crear sitios web rápidos y receptivos. Combine eso con algo como PhoneGap / Cordova y puede empaquetar esos sitios como aplicaciones nativas de Android / iOS.

Pero solo hay mucho que jQuery mobile puede hacer. Si está creando una aplicación lo suficientemente grande (por ejemplo, para un foro), el código se vuelve realmente complicado y no importa cuántas mejores prácticas siga, al final todo es espagueti.

¡Espero que esto ayude!

¿Qué preferiría tener, todo el departamento de hardware de Home Depot o una navaja suiza?

Si todo lo que necesito hacer es cortarme las uñas, apretar un tornillo y abrir un par de cervezas. Elijo jQuery.

Si necesito construir una nueva casa, elijo AngularJS.

jQuery no organiza su aplicación de ninguna manera en particular. Es solo un conjunto de herramientas. No promueve ninguna estructura en particular.

Si se deja como está, se escala mal y después de unos años te deja con una aplicación difícil de mantener.

Puede comenzar con jQuery y hacer que su empresa desarrolle un conjunto de reglas y prácticas sobre qué poner dónde (controladores, plantillas, servicios, etc.) y la forma de resolver problemas comunes fácilmente. Terminaría con un marco como Angular o React, solo primitivo y limitado y no tan bien diseñado.

Son cosas completamente diferentes, utilizadas para tareas completamente diferentes.

La pregunta es un poco como preguntar “¿por qué alguien elegiría una cortadora de césped en lugar de una motosierra?”