En un artículo anterior, estuvimos comentando sobre las ventajas de implementar una página web a la medida, hecha por profesionales. Si te decidiste a hacerlo y ya has contactado al equipo, llegados a este punto pudieras simplemente dejarlos hacer su trabajo, y concentrarte en ser el mejor cliente posible. Como ya vimos, para Dofleini – y yo diría que para cualquier equipo profesional – este es el cliente que tiene una buena idea de lo que quiere y que se mantiene participativo durante el diálogo con los desarrolladores. Pero para participar, al menos como yo lo veo, vale saber un poco sobre en qué se está participando. Por eso hoy vamos a comentar sobre otro aspecto interesante del desarrollo web.
De forma general, existen dos partes que componen una página web: la “delantera” (frontend), relacionada con la interfaz y la experiencia de usuario, y la “trasera” (backend), que tiene que ver con el funcionamiento interno del sitio. Como las preocupaciones principales en cada uno de estos escenarios son distintas, así de distintos serán los enfoques de programación para trabajar en ellos. Y, claro está, cuando se tienen esas diferencias, las comparaciones no se hacen esperar. ¿Cuál es mejor? ¿Cuál es más importante? ¿Cuál debo priorizar si quiero desarrollar una página web exitosa?
El desarrollo frontend se encarga de implementar los componentes visuales de un sitio web.
No confundir con el diseño web, la programación frontend se encarga de la funcionalidad de los elementos con los que el usuario interactúa, más que de su visualidad. Los desarrolladores en este extremo del sistema deben ocuparse, entre otras tareas, de definir los componentes de la página, hacer que estos sean agradables a la vista, que los sitios sean interactivos y funcionales, además de ocuparse de tareas de control de calidad en lo que respecta a la experiencia de usuario. Para ello utilizan diversos lenguajes de programación como HTML, CSS, JavaScript y PHP.
El ambiente de trabajo backend, en cambio, se ocupa de la arquitectura del sitio y trabaja en el lado del servidor.
Se puede decir que el backend se relaciona con el desempeño general de la página y en este escenario se deben monitorear todos los indicadores que “no se ven” para realizar los cambios y las actualizaciones necesarias. Los programadores backend cumplen varias tareas, entre ellas: crear la arquitectura para desarrollar el sitio web, organizar la lógica del sistema y los API para que este funcione en distintos dispositivos, crear los componentes de la página de forma dinámica en el servidor y contribuir con el equipo frontend para lograr tiempos de respuesta menores.
Para ello se valen de lenguajes de programación como PHP, C++, Python, Node.js, y Java; bases de datos como like MySQL, MongoDB, y Oracle; y servidores tales como Apache, Nginx, Microsoft IIS, etc. En materia de infraestructura, la programación backend requiere de código más complejo, bases de datos y servidores, equipados con unidades de almacenamiento, memoria y procesadores que permitan soportar el sistema. En el frontend no se tienen estos requerimientos ya que la mayor carga de procesamiento se realiza en el navegador.
Según Payscale, el salario medio de los desarrolladores backend[1] es poco más de 10% superior al de los que se ocupan del frontend[2]. Esto simplemente puede deberse al ligeramente superior grado de dificultad que entraña trabajar en el backend. Y digo ligeramente superior porque, si bien en materia de programación solamente los lenguajes y el código empleados en backend pueden ser más complejos, se considera que la programación frontend es menos segura debido a su cercanía con la zona con la que el usuario interactúa. Por lo tanto esta programación es más susceptible de ataques, causando un dolor de cabeza adicional que “compensa” por la mayor simplicidad de los lenguajes usados en este ambiente.
No obstante, hay que decir que tanto el frontend como el backend existen en un continuo. Esto significa que durante el desarrollo de un proyecto, las diferencias aquí mencionadas no siempre son tan visibles. En tiempos recientes ha ganado en prominencia el enfoque fullstack a la hora del desarrollo web. Esto es básicamente enfrentar la implementación de una aplicación con la filosofía de simultanear ambos procesos anteriormente mencionados. Este enfoque busca alcanzar mayor eficiencia en el proceso de desarrollo porque consiste en trabajar tanto en el frontend como en el backend de forma simultánea. Además, permite una mayor reutilización de código durante un proyecto, ahorrando tiempo y dinero.
Porciento de desarrolladores que expresaron centrarse en el backend, frontend o en el enfoque fullstack | |||
Año | Frontend | Backend | Fullstack |
2018 | 38% | 58% | 48% |
2019 | 33% | 50% | 52% |
2020 | 37% | 55% | 55% |
2021 | 27% | 44% | 49% |
2022 | 26% | 43% | 47% |
Fuente: Stackoverflow
Según Stackoverflow, en sucesivas encuestas durante el último lustro, cada vez los desarrolladores se identifican más con el enfoque fullstack. Y la diferencia entre la porción backend con respecto a la fullstack, prácticamente inexistente durante 2019 y 2020, está creciendo en los últimos 2 años. ¿La víctima? El frontend. De cualquier manera, el desarrollo de aplicaciones informáticas es un proceso complejo en el que todas las partes deben estar coordinadas. Tanto el enfoque frontend como el backend traen elementos a la mesa que son necesarios para desarrollar una página web exitosa, y no debiera existir una preferencia entre ellos ya que cada uno cumple con funciones específicas. De hecho, el futuro, más que una competencia, parece ser una fusión de las dos.
[1] https://www.payscale.com/research/US/Job=Back_End_Developer%2F_Engineer/Salary
[2] https://www.payscale.com/research/US/Job=Front_End_Developer_%2F_Engineer/Salary