Hablamos de front-end y back-end como el medio de separar las preocupaciones en la capa de presentación y la capa de acceso a datos de una pieza de software, o la infraestructura física o hardware.
Pero no todo está separado así. La persistente separación frontal / posterior en la terminología probablemente proviene del desarrollo web tradicional donde existe una clara distinción de los lenguajes de programación que se utilizan en la interfaz de usuario (HTML / CSS / JavaScript) y el código del lado del servidor (Java / C # / Python …). Las pilas de tecnología estaban tan separadas que se necesitaban diferentes personas para la presentación y el acceso a los datos.
Esta separación creció aún más con la aparición de AJAX y API que nos permitieron tener la capa de presentación en su propio proyecto mientras el código de acceso a datos estaba en el servidor. En este punto, probablemente debamos hablar sobre el desarrollo del lado del cliente y del lado del servidor. El código del lado del cliente se ejecuta en el cliente, el código del lado del servidor se ejecuta en el servidor.
- ¿Por qué PHP ocupa el primer lugar en cada búsqueda de trabajo que hago?
- ¿Cuál es el trabajo de JS en el desarrollo de backend?
- ¿Podría crear una aplicación web con solo Angular JS para el front-end y Node.JS para el back-end? ¿Es común mezclar marcos?
- Si tuviera que crear una aplicación web que pueda mezclar 2 archivos de audio y presentarlos para descargar, ¿cuál es el mejor lenguaje de fondo para usar?
- ¿Cómo conectar una aplicación de Android con 'mi propio back-end de base de datos en tiempo real de Node.Js'? ¿Cómo lo mantengo sincronizado todo el tiempo con mi back-end?
Supongamos que crea una aplicación para iOS que lee algunos datos de los sensores en los dispositivos y muestra los datos de una manera interesante. Eso es desarrollo front-end.
Agregue una base de datos para almacenar datos históricos en el dispositivo y podría tenerlo trabajando en el front-end (presentación) mientras que otro tipo está trabajando en el back-end (acceso a datos) que almacena los datos.
Avanza rápidamente y decide mover esa base de datos a un servidor en línea, exponer una API allí y su desarrollo de iOS se ha convertido en un desarrollo del lado del cliente y el otro tipo está haciendo un desarrollo del lado del servidor.
En este punto, probablemente sea más claro para todos decir que haces desarrollo iOS.
El tiempo pasa y te enteras de Android. Decides apoyar también eso. En ese momento ya no puedes decir que estás haciendo desarrollo de iOS. Estás haciendo desarrollo móvil. El otro tipo todavía está haciendo desarrollo del lado del servidor.
Llegan nuevas herramientas y decides hacer que tu aplicación sea verdaderamente multiplataforma. No solo es compatible con iOS y Android, sino también con Linux, OSX, Windows, Windows Phone, XBOX y demás. Estás haciendo nuevamente el desarrollo del lado del cliente.
Ahora, el conjunto de características y el número de clientes aumentan. Además, la cantidad de datos aumenta y se hace evidente que necesita traer la base de datos al lado del cliente y contratar a un tipo para que lo haga. Ahora está de vuelta en el desarrollo front-end, mientras que el nuevo empleado está haciendo el desarrollo back-end y el viejo amigo suyo sigue felizmente haciendo el desarrollo del lado del servidor.
Entonces depende totalmente.
Probablemente sea más seguro decir que está haciendo desarrollo móvil y dejar el resto de los detalles.