Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Las 5 principales ventajas de usar Angular para crear aplicaciones web

Logo de Angular

Angular es un framework JavaScript, gratuito y Open Source, creado por Google y destinado a facilitar la creación de aplicaciones web modernas de tipo SPA (Single Page Application).

Algunos incluso llegan a decir de Angular que es lo que debería haber sido HTML si se hubiese pensado desde el principio para crear aplicaciones web, y no documentos. Casi nada.

Su primera versión, AngularJS, se convirtió en muy poco tiempo en el estándar de facto para el desarrollo de aplicaciones web avanzadas.

En septiembre de 2016 Google lanzó la versión definitiva de lo que llamó en su momento Angular 2, y que ahora es simplemente Angular. Este nuevo framework se ha construido sobre años de trabajo y feedback de los usuarios usando AngularJS (la versión 1.x del framework). Su desarrollo llevó más de 2 años. No se trata de una nueva versión o una evolución de AngularJS, sino que es un nuevo producto, con sus propios conceptos y técnicas. Además, Angular utiliza como lenguaje de programación principal TypeScript, un súper-conjunto de JavaScript/ECMAScript que facilita mucho el desarrollo.

Como en casi todo hoy en día, tiene muchos fans acérrimos y muchos detractores. Básicamente, Angular o lo amas o lo odias. No suele haber mucho término medio.

A continuación te vamos a exponer los motivos por los que a nosotros nos encanta Angular, en especial para desarrollo empresarial.

1. No me hagas pensar

Dado que Angular es un framework, ofrece muchas más "opiniones" y funcionalidades de serie que una simple biblioteca. Con otro software similar, lo más común es tener que "tirar" de varias bibliotecas de terceros a la hora de desarrollar una app. Lo más probable es que necesites algunas adicionales para hacer el routing, para la gestión de dependencias, para realizar llamadas a APIs REST, para hacer el testing, etc... También hay muchas decisiones que tomar sobre cómo organizar el código, la arquitectura de la aplicación... Tantas que pueden llegar a abrumar.

Angular ofrece más "opiniones" de serie, ayudándote a arrancar sin intimidarte por la toma de decisiones. Es decir, con Angular ya sabes desde el primer momento cómo organizar el código, cómo se realizan las diferentes tareas que necesitas, la arquitectura de la aplicación...

Una cuestión muy importante es que esta consistencia que te impone también ayuda a las empresas a hacer nuevas contrataciones de programadores o a incorporar a nueva gente a los equipos. Un nuevo programador que retome un proyecto de Angular se siente como en casa de forma rápida, ya que si conoce Angular conoce la manera en la que se hacen las cosas con este framework. Esto facilita también el intercambio de programadores entre proyectos.

2. TypeScript

Aunque se puede programar en ECMAScript "puro", el equipo de Angular decidió que haría todo el desarrollo con el lenguaje TypeScript, y casi toda la documentación y los ejemplos que encuentras por ahí utilizan este lenguaje.

A mucha gente esto le parecerá un error, pero el criterio que ha seguido el equipo de Angular sobre la variedad de JavaScript a utilizar tiene muchas ventajas.

Una de las primeras es la consistencia en la documentación. Si navegas por la Web intentando encontrar ejemplos y tutoriales de otras bibliotecas de JavaScript vas a ver de todo, pero la única constante es la inconsistencia que existe. Por ejemplo, ES6 (o sea, ECMAScript 2015) ofrece varias formas diferentes de declarar un objeto, lo cual puede confundir a muchos. Con TypeScript esto no pasa, y toda la sintaxis y la manera de hacer las cosas en el código es la misma, lo que añade coherencia a la información y a la forma de leer el código.

Aunque Angular no te obliga a usar TypeScript, el equipo del core de Angular sí que lo ha adoptado y en la documentación sugiere usar TypeScript por defecto. Esto implica que los ejemplos relacionados y los proyectos de código abierto parezcan más familiares y consistentes. Angular ya ofrece ejemplos claros que enseñan cómo usar el compilador TypeScript

Esta consistencia debería ayudar a evitar la confusión y la sobrecarga en la toma de decisiones derivadas de empezar con Angular.

Todo esto redunda además, a largo plazo, en un mejor y más fácil mantenimiento de las aplicaciones.

3. Componentes web

Un componente en Angular es una porción de código que es posible reutilizar en otros proyectos de Angular sin apenas esfuerzo, lo que permite un desarrollo de aplicaciones mucho más ágil, pasando de un "costoso" MVC a un juego de puzles con nuestros componentes.

El diseño de Angular adopta el estándar de los componentes web. Se trata de un conjunto de APIs que te permiten crear nuevas etiquetas HTML personalizadas, reutilizables y auto-contenidas, que luego puedes utilizar en otras páginas y aplicaciones web. Estos componentes personalizados funcionarán en navegadores modernos y con cualquier biblioteca o framework de JavaScript que funcione con HTML.

El soporte directo actual de este estándar por parte de los navegadores es muy reducido (básicamente Chrome a la hora de escribir esto), aunque existen polyfills para suplir esta carencia.

Los componentes que creas en Angular son fáciles de convertir en componentes web nativos. A largo plazo esto es una gran ventaja pues te permitirá reutilizar componentes que crees en Angular en otro tipo de aplicaciones. ¡Más reutilización de tu trabajo!

4. Un camino de futuro estable (¡por fin!)

Uno de los grandes problemas del mundo JavaScript actual es que hay tantos cambios y tan frecuentes, que todo el mundo acaba "quemado" solo tratando de seguir el ritmo de las novedades. De hecho algunas bibliotecas JavaScript pegaron tantos cambios desde su aparición hasta que se hicieron estables que la mayor parte de la información que hay por ahí está obsoleta. Por no mencionar que el código desarrollado hace años ya no vale para nada y hay que actualizarlo :-(

Angular, a pesar de haber contribuido a todo eso cuando anunció el doloroso cambio desde AngularJS 1.x a lo que tenemos ahora, va a ser menos dado a los grandes cambios traumáticos de versión en versión.

Angular es la reinvención cuidadosa y metódica de un framework maduro como era AngularJS. A partir de la aparición de su primera versión estable en septiembre del año 2016, aseguran que hay un equipo detrás tomando decisiones meditadas y pausadas sobre el futuro, lo que evitará las prisas y el "yo también" que caracteriza a otras bibliotecas y frameworks.

Además en otras bibliotecas y frameworks, dado que debes recurrir a bibliotecas de terceros para hacer muchas cosas, tienes más mazas en el aire que debes controlar, con sus propios cambios de versión e incompatibilidades, desapariciones o cese de mantenimiento de las mismas, etc... En Angular al estar todo integrado solo debes preocuparte de Angular.

No te dejes engañar por los cambios bruscos de versión en Angular: no significa que haya grandes modificaciones, solo que hay alguna cosa que rompe la compatibilidad (aunque sea mínimamente). Pero puede ser algo muy pequeño y además ofrecerán herramientas automáticas para hacer la migración.

Con Angular la idea es que podemos apostar por este framework a largo plazo. Y esto es algo de suma importancia, sobre todo en proyectos grandes y en empresas de producto, donde los desarrollos se mantienen durante varios años.

5. Gran soporte de herramientas

Cuando programas raramente vas a hacerlo en un editor de texto plano. Usarás editores avanzados, IDEs y otras herramientas relacionadas como "Linters" (revisores de estilo y buenas prácticas en el código).

Las plantillas de Angular almacenan por separado el código de la Interfaz de usuario y el de la lógica de negocio, por lo que puedes sacarle partido a las muchas herramientas ya existentes para editar este tipo de archivos. Otros frameworks como React, por ejemplo, mezclan en un mismo archivo todo el código. Si bien esto puede tener sus ventajas, dificulta el uso de herramientas estándar de desarrollo.

Además, gracias a la popularidad de Angular, los principales editores e IDEs ofrecen ya extensiones para poder trabajar con este framework de la manera más cómoda posible.

---

Evidentemente, según tus necesidades, tu situación y tus gustos puede que no estés muy de acuerdo con todas las afirmaciones. Si es así puedes dejar tu opinión respetuosa en los comentarios del post.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Desarrollo Web

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (24) -

Juan Bastidas
Juan Bastidas

El punto 4 referente al futuro estable es un eufemismo, no hay manera de migrar de angular 1.x a 2, 3, o 4. Cada versión comparte solo el nombre y es compleja la migración.

De hecho ThroughWorks recomienda evitar angularjs por la misma razón en su radar más actual.

Responder

Hola Juan:

Se refiere a migrar ente versiones de Angular, no desde AngularJS, que desde siempre hemos dicho que es muy complicado por mucho que lo quieran "vender". El miedo que tiene mucha gente es que se metan con Angular 2 y luego de repente saquen la 4 o la 5 y vuelva a pasar lo mismo. Esto no va a ser así.

Saludos

Responder

Webbing Desarrollo Web
Webbing Desarrollo Web

Sin duda Angular se postula como un framework muy potente y beneficioso para trabajos de diseño y desarrollo de sitios web, plataformas online y aplicaciones de cualquier tipo. Veamos si la comunidad empieza a inflarlo de contenido y utilidades para facilitar su uso entre los profesionales.

Gracias por la info!

Responder

Estoy empezando con el estudio de angular y me parece muy facil ordenado y con una normalizacion de codigo excelente. Apuesto por angular para el 2018 seguire enganchado y practicando gtacias por el post saludos

Responder

Miguel Garcia
Miguel Garcia

Buenas tardes, en donde estás empezando a estudiar angular? Podrías compartir los links? Saludos

Responder

El mejor sitio para estudiarlo es sin duda aquí:

www.campusmvp.es/.../...web-con-Angular-5_232.aspx

:-)

Saludos,

Responder

Comenzare a usarlo, para la web que tengo pensado hacer. Tengo una consulta. La logica a crear que viene de por si separada de la interfaz la puedo usar llamandola desde android?

Responder

campusMVP
campusMVP

Hola Carlos:

Si la lógica a la que te refieres es la de backend, y la implementas usando un servicio REST o GraphQL, podrás reutilizarla desde una aplicación Android, iOS o de escritorio, desde donde quieras. Pero eso es ya algo relacionado con el backend, no con el Front-End, que es de lo que se ocupa Angular.

Saludos.

Responder

Yo me dedico al desarrollo y comercializacion de un software para instituciones financieras y micro financieras (core bancario), el cual corre integramente en la web. Nosotros comercialilzamos la versio ejecutable de nuestro sistema, con Angular como puedo proteger mis fuentes??

saludos y muchas gracias

Responder

Hola Marcial:

Como con cualquier código de lado cliente (que se ejecuta en el navegador), Angular no deja de ser JavaScript (y HTML y CSS) que se envía al navegador y que por lo tanto puede ser visto por cualquiera. De todas maneras las reglas de negocio y el control se llevan siempre en el servidor aparte de en el cliente, por lo que no deberías tener problema con nada "peligroso". Esto mismo te pasaría con cualquier otro framework de lado cliente que escojas.

Por supuesto siempre puedes añadir una capa de ofuscación que dificulte enormemente el seguimiento y descifrado del código. Te hemos hablado de esto aquí: www.campusmvp.es/.../...mizacion-y-ofuscacion.aspx

Saludos.

Responder

Hola soy nuevo en este framework Angular 5, y me gustaría saber como es el manejo de las bases de datos, o como se podrían gestionar los datos, en un proyecto de Angular creado en Visual Studio Code.

saludos!

Responder

Hola Rodrigo:

Al tratarse de código de lado cliente (o sea, en el navegador), no se gestionan las bases de datos desde Angular. Para gestionar datos necesitas coordinarte con un programa en el lado del servidor, creado en otra plataforma diferente, que es el que se encarga de gestionar los datos.

Lo más habitual es crear un servicio Web de tipo REST con algún lenguaje de servidor (ASP.NET, Node.js, PHP...) que es el que hará la gestión de los datos y se encargará de enviarlos a la aplicación Web y recibirlos desde ésta.

En el navegador tu aplicación Angular se conectará con el servidor para pedir y enviar datos usando las facilidades que proporciona Angular para hacerlo. Esta es la forma habitual de trabajar y no puedes utilizar bases de datos directamente desde el navegador.

Existen otras opciones, como por ejemplo utilizar PouchDB en el lado cliente y sincronizar ciertos datos con el servidor, que debe tener CouchDB, pero en el fondo es lo mismo: el servidor se ocupa de los datos y esto es lado cliente, por lo que su única opción es comunicarse con el servidor para enviarlos y recibirlos.

Saludos.

Responder

Actualmente trabajo con angular no tengo mucha experiencia en el desarrollo pero es una excelente herramienta usándolo en conjunto con MVC...

Responder

Buenas tardes a todos

en el hilo de comentario veo que relacionan el siguiente sitio

www.campusmvp.es/.../...web-con-Angular-5_232.aspx

pero no me carga nada, me podrian ayudar, deseo aprender a programar con Angular

Gracias

Responder

Hola Deivis:

Si pulsas el enlace en vez de copiarlo (está cortado) te funcionará. El más actualizado es este de todos modos:

www.campusmvp.es/.../...web-con-Angular-7_232.aspx

Saludos.

Responder

Oscar Fiblas Aramayo
Oscar Fiblas Aramayo

O sea, además hay que aprender TypeScritp como si no bastara la javascritp, luego en un futuro cercano a TypeScrip le van a encontrar puros defectos y va a salir el lenguaje "OtroScript" y vuelta a empezar...?

Responder

campusMVP
campusMVP

Bienvenido a la profesión de programador (y casi cualquiera hoy en día): aprendizaje, desaprendizaje y nuevo aprendizaje continuos, durante toda tu vida profesional. Otra opción: no aprender nada y quedarse atrás o dedicarse a algo que no evolucione, si es que existe algo así 😉

Saludos.

Responder

buenas tardes tenia duda si es recomendable tener una pagina comercial web en angular si quiero que tenga ceo

Responder

campusMVP
campusMVP

Hola Lucero:

En general las aplicaciones creadas con un framework Front-End como puede ser Angular no suelen ser las más adecuadas por defecto para los buscadores. La principal razón es que todo el renderizado se realiza mediante JavaScript por lo que si los indexadores de los buscadores no son capaces de interpretarlo, no pasarán de la página principal.

El indexador del principal buscador, Google, sí que es capaz de interpretar JavaScript y por lo tanto de indexar sitios creados con Angular, con lo que podrías tener el 90% del mercado cubierto, pero la mayoría de los demás buscadores no interpretan el JavaScript de las páginas (Bing, DuckDuckGo, Yahoo, a excepción de Ask.com, que sí es capaz).

Existen soluciones para ponerle remedio, como por ejemplo usar Puppeteer para renderizar en HTML versiones concretas de las páginas y enviar a los indexadores ahí, pero no dejan de ser tediosas y un parche.

También está Angular Universal (https://angular.io/guide/universal), que es un módulo para utilizar Angular en el servidor en lugar de en el cliente. Es decir, puedes reutilizar tu aplicación creada con Angular para ejecutarla en un servidor y por lo tanto que se generen páginas completas con todo el contenido HTML y CSS, que son las que se envían al navegador y por lo tanto son indexadas como páginas normales.

En cualquier caso ten en cuenta que Angular y en general los frameworks Front-End están pensados para el desarrollo de aplicaciones, no tanto de sitios web con objetivos de marketing y SEO, que es de lo que estamos hablando.

Saludos.

Responder

joel gonzalez
joel gonzalez

Muchas experiencias en este post, gracias.

Responder

Rocio Escobar
Rocio Escobar

Sí yo deseo realizar una página web, que framework back end y front end podría utilizar o en su defecto que herramienta seria más eficiente utilizar en el front end?.

Porque yo utilizaría en el back end Django y en el front end Angular... Pero entonces me surge la duda por el problema que existe por los buscadores.

Gracias...

Responder

Hola Rocío:

La tecnología que uses en el servidor no tiene nada que ver con el SEO. En una aplicación en la que uses Angular al final el servidor lo usarás fundamentalmente para crear una API REST con la que te comuniques desde el lado cliente (desde la aplicación Angular en el navegador). La puedes crear con la tecnología con la que estés más cómoda. Si es Django, pues perfecto.

En el lado del cliente/navegador, el hecho de usar Angular u otro framework no tiene por qué hacer que vaya mal el SEO. Es cierto que Angular y otros frameworks similares está pensados para crear aplicaciones Web de tipo SPA (o sea, de una sola página) y eso tradicionalmente no se ha llevado bien. En la actualidad la araña de Google (aunque no las de otros buscadores) es capaz de interpretar JavaScript y por tanto renderizar tus páginas, además de que puedes crear URLs únicas y adecuadas para SEO. Pero es que además existe Angular Universal, capaz de hacer renderizado de Angular en el servidor enviando las páginas renderizadas ya al cliente y por lo tanto solucionando el problema del SEO con este tipo de aplicaciones.

Te podemos referir a este artículo, por ejemplo, que te explica cómo es el proceso: blog.angular-university.io/.../

Saludos.

Responder

Hola: Por los comentarios que he leído has dicho que Angular no maneja bases de datos en el servidor, únicamente envía mensajes para recibir datos en la página web del cliente. Comentaste que es necesario utilizar el lenguaje TypeScript en Angular en el lado del cliente y otro lenguaje en el servidor para manejar bases de datos. Mi pregunta es la siguiente: ¿qué lenguaje para manejar bases de datos es más semejante a TypeScript? (para ahorrar esfuerzo). He leído que hay un lenguaje específico para ello que es SQL, pero tal vez está embebido dentro de otro lenguaje de programación. Necesito aclaración sobre esto y si esta empresa me puede ayudar a obtener estos conocimientos. Gracias      

Responder

campusMVP.es
campusMVP.es

Hola Alberto:

Puedes programar en el lado del servidor con TypeScript también usando Node.js o, mucho mejor, Deno (https://deno.land/).

Para poder acceder a las bases de datos en el servidor puedes utilizar un ORM (www.campusmvp.es/recursos/post/que-es-un-orm.aspx) o bien utilizar el lenguaje SQL (aquí tienes un curso de iniciación completo y gratuito hecho por nosotros: https://www.youtube.com/watch?v=tIG2s1AFpSE o si lo prefieres por capítulos sueltos, aquí: www.youtube.com/playlist). Un programador siempre debería saber al menos lo más común del lenguaje SQL aunque luego uses un ORM, o no sabrás por donde pisas.

Si estás todavía en esta fase, lo mejor es que empieces aprendiendo bien HTML, CSS (www.campusmvp.es/.../...a-desarrolladores_185.aspx) y JavaScript (www.campusmvp.es/.../...vaScript-y-jQuery_207.aspx) y luego ya irás aprendiendo todo lo demás (Angular, SQL, un lenguaje de servidor....). Es un proceso que te llevará meses pero que si lo haces bien podrás ganarte la vida muy bien.

Saludos.

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.