La respuesta a su pregunta depende del problema que está tratando de resolver.
Angular (por cierto, la versión 4+ ya está disponible y es muy similar a la 2), es un marco web front-end. Le permite crear sitios web agradables de una sola página (lo que significa que solo hay 1 archivo html y todo el contenido se altera usando javascript) que ya puede hacer mucho en la computadora del cliente.
Si desea escribir un buen front-end utilizando algunos otros back-end con una Interfaz de programación de aplicaciones (API) pública, puede hacerlo solo con Angular. Esto debería hacerle pensar en hacer su propia interfaz reddit, por ejemplo.
- ¿Existe el servicio web REST del mundo real, que realmente no tiene estado?
- ¿Qué es la representación del lado del servidor? ¿Por qué es necesario en MeteorJS o en cualquier otro idioma?
- ¿Cuál es el camino para aprender a construir una aplicación web progresiva?
- ¿Qué lenguajes de programación se usan para las aplicaciones web?
- ¿Qué marco le gusta más a Mayank Singhal para desarrollar una aplicación web?
Sin embargo, si desea que sus usuarios hagan algo en su sitio web, ALMACENE lo que están haciendo y luego RECUPERE nuevamente … entonces necesitará un back-end. Los front-end no pueden leer del sistema de archivos de un usuario (por razones de seguridad). También se considera una práctica muy mala y terriblemente insegura permitir que su código del lado del cliente interactúe directamente con una base de datos o el sistema de archivos de un servidor remoto. Tendría que enviar las credenciales de su base de datos a través de Internet, por ejemplo, para que todos las vean (y puedan usar).
Entonces, si no está escribiendo un front-end para una API pública existente o una aplicación del lado del servidor existente … entonces sí, deberá escribir su propia aplicación del lado del servidor. Esto se puede hacer en el idioma que desee.
Espero que responda tu pregunta.