‘Angular.js es lo que habría sido HTML si hubiera sido diseñado para crear aplicaciones web’: ¿no se diseñó HTML originalmente para este propósito?

En resumen: no.

Cuando alguien hace una declaración como “Angular.js es lo que habría sido HTML si hubiera sido diseñado para crear aplicaciones web”, a lo que realmente se refieren es al concepto de directivas de Angular (AngularJS). Las directivas son, en el nivel más básico, una versión temprana y no estandarizada de Web Components (WebComponents.org).

El HTML se concibió cuando las páginas web, no las aplicaciones web, eran la carne y la patata de Internet.

Puede preguntar “¿Cuál es la diferencia entre páginas web y aplicaciones web?” ¡Buena pregunta! Déjame decirte la diferencia.

Las páginas web son estáticas. Contienen contenido (generalmente texto e imágenes) que tuvieron que cambiarse a mano. Puede ver cómo esto es considerablemente diferente de la web de hoy. Imagine que una persona real tiene que actualizar su feed de Twitter. Si no sigue a muchas personas y las personas que sigue no son contribuyentes activos, entonces eso puede no ser tan malo. Pero, ¿y si sigues a Urban Dictionary que tiene más de 4.25 millones de tweets? No sería práctico que una persona actualice su feed cada vez que Urban Dictionary quiera publicar un nuevo tweet, ¿verdad?

Las aplicaciones web son la solución a este problema. Permiten que el contenido se genere dinámicamente. Para continuar con el ejemplo anterior, esto significa que los nuevos tweets se agregan automáticamente a su feed cuando se publican.

Ahora podría decir “Pero teníamos aplicaciones web antes de Angular. ¿Qué da?” También una pregunta fantástica!

La idea de los componentes web (similar a las directivas en Angular) existía antes de Angular, pero Angular es el marco que realmente popularizó el concepto.

Los componentes web le permiten definir etiquetas HTML personalizadas, lo que históricamente no podía hacer.

El beneficio de esto es que puede reutilizar fácilmente el mismo código en varios lugares. A modo de ejemplo, considere un diseño de interfaz de usuario de tarjeta típico (Tarjetas – Componentes – Pautas de diseño de Google). Las tarjetas son una forma bastante popular de mostrar grupos de información relacionados en estos días. Los usamos con frecuencia (¡probablemente más de lo que deberíamos!) Donde trabajo. En particular, los usamos para mostrar información sobre los usuarios.

Sería muy inconveniente si tuviera que copiar y pegar el código de una tarjeta de usuario cada vez que quisiera mostrar información sobre un usuario. Se vuelve aún más una pesadilla cuando comienzas a refactorizar y tienes que recordar cada lugar que copias y pegas. Si ha realizado un desarrollo web significativo, estoy seguro de que ha sentido el dolor de esta situación.

Los componentes web resuelven este problema al brindarle un solo lugar para guardar todos los HTML y JavaScript relacionados (¡incluso puede mantener el CSS relevante en el mismo lugar!). Ahora, cada vez que desee mostrar una tarjeta de usuario, podría ser tan simple como escribir algo como ` `. Esto también hace su vida mucho más fácil cuando desea cambiar el diseño de la tarjeta.

Hay otras formas de hacer esto: las plantillas parciales se usan con frecuencia en el desarrollo web del lado del servidor. Cada forma tiene sus méritos y desventajas, lo cual es una discusión fuera del alcance de esta respuesta, pero debería comenzar a ver por qué los componentes web son un avance tan increíble en el desarrollo web.

Si puedo reformular la cita incluida en esta pregunta, diría que lo siguiente es más correcto: “Los componentes web son HTML para la web dinámica”.

Espero que mi respuesta haya respondido a tu pregunta. ¡No dude en hacer preguntas de seguimiento si no he tenido claro algo!

La web ha cambiado de cómo se concibió originalmente. En lugar de compartir documentos HTML simples, las aplicaciones web modernas son aplicaciones completas. Angular ayuda enormemente en la creación de aplicaciones web al proporcionar abstracciones de alto nivel como directivas, que son tan intuitivas que si se hubiera diseñado HTML teniendo en cuenta el desarrollo de aplicaciones, presumiblemente tendría estas características.

No creo que podamos tomar la declaración literalmente. Voy a leer “HTML” como HTML junto con JavaScript.

La gente a menudo olvida que Angular no es más que JavaScript normal.
Angular realmente solo está simplificando y resolviendo algunos problemas comunes para nosotros, pero lo hace a través de abstracciones, no adiciones a html / javascript. Lo que significa que los mismos viejos conceptos Html y JavaScript todavía están ejecutando el programa bajo el capó.

¡Ningún HTML no fue desarrollado con el propósito de construir aplicaciones web sino más bien con el propósito de construir páginas web!
Estaba destinado a ser utilizado por científicos para compartir sus documentos entre ellos. ¡Eso es algo sobre lo que puedes leer en Internet!
Excelente respuesta de James Brewer a esta pregunta: la respuesta de James Brewer a “Angular.js es lo que habría sido HTML si hubiera sido diseñado para crear aplicaciones web”. ¿El HTML no fue originalmente diseñado para este propósito?

Cuando se creó HTML, no existía una “aplicación web”. Era solo un lenguaje de marcado; una manera de decirle a un navegador “Este texto es un encabezado. Ese es un enlace a foo.html en bar.edu. Inserte una imagen aquí, así de ancha y alta”. La Web en realidad no podía hacer nada más que eso, aunque en comparación con lo anterior, incluso eso era revolucionario.

HTML fue creado para mostrar datos estáticos en sitios estáticos. Las formas básicas eran una extensión de lo que había allí. Realmente necesita HTML y Javascript para escribir una aplicación web simple, como una calculadora. Angular Tuesday para simplificar tales tareas al reducir la necesidad de Javascript.