Front-end y back-end Front-end y back-end son términos que se refieren a la separación de intereses entre una capa de presentación y una capa de acceso a datos, respectivamente. Pueden traducirse al español el primero como interfaz, frontal final o frontal y el segundo como motor, dorsal final o zaga, aunque es común dejar estos por separado. En diseño de software el front-end es la parte del software que interactúa con los usuarios y el backend es la parte que procesa la entrada desde el front-end. La separación del sistema en front-ends y back-ends es un tipo de abstracción que ayuda a mantener las diferentes partes del sistema separadas. La idea general es que el front-end sea el responsable de recolectar los datos de entrada del usuario, que pueden ser de muchas y variadas formas, y los transforma ajustándolos a las especificaciones que demanda el back-end para poder procesarlos, devolviendo generalmente una respuesta que el front-end recibe y expone al usuario de una forma entendible para este. La conexión del front-end y el back-end es un tipo de interfaz. En diseño web (o desarrollo web) hace referencia a la visualización del usuario navegante por un lado (front-end), y del administrador del sitio con sus respectivos sistemas por el otro (back-end). Muchos métodos conocidos para interactuar con ordenadores pueden ser conceptualizados en términos de front-end y back-end. Por ejemplo, un administrador de archivos gráfico como Windows Explorer, Dolphin, Nautilus y Finder puede ser considerado como un front-end para el sistema de archivos de la computadora. Otro ejemplo consiste en considerar al Shell como frontend que sirve como interfaz para interactuar con el núcleo del sistema operativo que cumple el rol back-end. En un compilador el front-end traslada el lenguaje del código fuente a una representación intermedia que a su vez funciona con el back-end para producir en la salida el código. En sintetizadores del habla, el front-end se refiere a la parte del sistema que convierte la entrada del texto en una representación simbólico-fonética y el back-end convierte la representación fonética y simbólica en el sonido. Muchos programas tienen su concepto de diseño dividido en front-ends y back-ends, pero en la mayoría de los casos, el back-end está oculto del usuario final y solo pueden utilizarlo el cliente intermedio o el administrador que se encargará de gestionar el sistema de información. Sin embargo, muchos programas están escritos para servir de simple front-end para otros que ya existen, como es el caso de las interfaces gráficas construidas sobre una interfaz de línea de órdenes. Este tipo de front-end es común en entornos de escritorio Unix (como los GUI), donde los programas son desarrollados siguiendo la filosofía de diseño de muchos programas pequeños capaces de ejecutarse independientemente o combinados.