¿Qué es el desarrollo front-end?


En nuestra sociedad visual y tecnológicamente sofisticada, el acceso a la información y al conocimiento parece más fácil día a día, en la web, páginas y aplicaciones son construidas por los desarrolladores de front-end para presentar y colocar los datos o relaciones en el contexto del sitio web para ser visualizados por los usuarios.

El desarrollo front-end es una disciplina de internet relativamente desconocida. Históricamente, este papel ha sido conocido bajo varios alias de htmleros, diseñador de páginas web, maquetador y así sucesivamente, pero sus funciones básicas siguen siendo los mismas mientras se expanden con el progreso de Internet. Es un rol clave que requiere tanto la sensibilidad estética como el rigor programático.
Para muchas personas, el desarrollo de front-end es percibido como “hacer que las cosas se vean bien”. Si bien es un comentario valido, esto implica tomar la idea/diseño y combinarla con la Plataforma/CMS logrando el aspecto visual inicial y el producto final que utilizan las personas.
Este proceso requiere la habilidad de combinar una serie de tecnologías que suelen pasar de inadvertidas o innecesarias. He aquí un resumen de ellas.

Markup
HTML, es una de las dos tecnologías base y pilar fundamental en la estructura de cualquier sitio o aplicación web. Si bien es sencillo entenderlo se suelen cometer muchos errores por consecuencia de una estructura semántica pobre o por querer ahorrar líneas de código. Estos errores afectan en los resultados de búsqueda ya que muchos robots leen principalmente el HTML.

Estilos
Más bien conocido como CSS y el segundo pilar esencial para el desarrollo de front-end ya que los estilos logran darle a los usuarios una visión amigable del HTML y proporcionándole un diseño e identidad al mismo. Diseño significa cómo se ve y cómo se estructura algo, y en un buen diseño ambos conviven juntos. Un aspecto importante en la aplicación de los estilos es comprobarlo en la mayoría de los navegadores. Ademas de escribir código conciso, específico y a la vez genérico se debe validar que se encuentre renderizado lo mejor posible, lo que me lleva al siguiente punto.

Cross-browser, multiplataforma, funcionalidad entre dispositivos
Desde la guerra de navegadores entre Netscape e Internet Explorer en las computadoras, han pasado muchísimas cosas. Hoy en día, los navegadores compiten entre sí por la velocidad en la carga de las páginas, plug-ins y add-ons para lograr tanto una experiencia completa e integral al utilizar los navegadores. Dado que las aplicaciones se mueven a la nube, gmail siendo un ejemplo muy conocido, hoy el navegador se convierte en el sistema operativo, lo que pone más énfasis en la codificación, el estilo y la programación para tantos clientes como sea posible. Como Douglas Crockford dijo “Los navegadores son el entorno de desarrollo de software más hostil imaginable”.

Accesibilidad
Comúnmente relacionado a personas con discapacidad, se podría argumentar que ya sea visual, auditivo, relacionados con acciones motoras o simplemente cognitiva, todos tenemos una discapacidad de un tipo u otro, y por lo cual encontrar un hombre 100% capaz es más un ideal que una realidad.
En última instancia, la accesibilidad es proporcionar a su contenido y sus páginas con el mayor número de puntos de acceso como sea posible, ya que, la palabra clave que el usuario busca podría ser el acceso a nuestro sitio.

Plantillas y CMS, web frameworks
Es el núcleo técnico de los sitios web generados dinámicamente como parte de un MVC o un MVT o alguna otra arquitectura de software. Ya se trate de un backend PHP con WordPress, Magento o Python y Django, los desarrolladores front- end construyen y mantienen estos archivos, sus objetos y métodos, variables, bucles, y sentencias condicionales.
Un área sorprendentemente poco discutida sobre el desarrollo front-end, la flexibilidad y el mantenimiento de éstos es hacer un sitio lo que es y lo que se convertirá como una funcionalidad más poderosa que se añade a la misma.

Parte del equipo de desarrolladores Front-End de Frontaly

Programación
Aunque con esto me refiero principalmente Javascript, esto podría aplicarse a Java, PHP o cualquier otro lenguaje de web popular utilizado por el desarrollador de front-end. Javascript ha crecido completamente a partir de comandos en línea incrustados en HTML para aplicaciones asíncronas en toda regla ejecutados en el navegador como una funcionalidad transparente.
El uso generalizado de las librerias js como jQuery o Mootools ha producido una gran cantidad, algunos incluso en exceso, de los efectos visuales que se convierten páginas web en una experiencia de inmersión más tridimensional. Un lenguaje con mala reputación que desconcierta a los programadores y asusta “scripters”, javascript fue desarrollado específicamente para la Web y, nos guste o no, está aquí para quedarse.

Usabilidad
La arquitectura de la información ha crecido en los últimos años, pero como la gente que construye el sitio interactúa con los clientes, los diseñadores gráficos, los desarrolladores de back-end y gerentes de producto, los desarrolladores de front-end somos el último proceso en la línea de producción y esto significa que marcamos los detalles, sugerimos mejoras, así como también formar parte en las pruebas de usabilidad de los productos.
Dependiendo del tamaño del equipo y el presupuesto asignado, a veces un desarrollador de front-end hace a la vez el diseño, control de calidad del front y backend, la usabilidad y la accesibilidad, lo cual hace que sea un puesto poco envidiable para algunos personajes ;-).
Un desarrollador de front-end probablemente ve más sitios web y evalúa cómo se ven y funcionan más que otros miembros del equipo del proyecto.

Performance
Para construir sitios con gran performance los archivos css y javascript deben ser óptimos, reutilizables y ágiles principalmente. El principal objetivo de optimizar un desarrollo es logar la carga del mismo lo antes posible para el usuario utilizando los menores recursos posibles del servidor.
Actualmente, sumado a lo anterior, nos encontramos en el auge de la transición entre aplicaciones web de escritorio y aplicaciones web mobile. Los dispositivos móviles, al utilizar 3G como conexión, suelen descargar los sitios lentamente y es esencial la performance.

Investigación
Esta es una lista de las cosas que han pasado en el último tiempo: API, librerias JS, responsive, parallax, interfaces gestuales informáticos de tacto (touch), microblogging, etc. Mantenerse al día con las últimas tendencias en diseño, código y la innovación en la web es una tarea primordial de desarrollo front-end, como ninguna otra disciplina relacionada con Internet crece y mejora exponencialmente.

Como Molly Holzschlag de Opera dice: “Si quieres estar haciendo las mismas cosas para los próximos 10 años, estás en el trabajo equivocado”. Las empresas de Internet deben entender y reaccionar a esto en su estrategia front-end, para no quedarse atrás.
Sin embargo, el futuro no es neutral y tampoco las tecnologías, las cuestiones de privacidad y publicidad están obligados a influir en lo que es y no es adoptado.

En conclusión
Tucídides escribió “El conocimiento sin comprensión no sirve para nada”.
Desde su creación, la web ha sido sobre todo acerca de la información, pero esta tendencia basada en datos sólo puede ahogar a las personas con una inundación de información aleatoria desconectada que pocos pueden entender y a menos aún interesarle.
El objetivo de un desarrollador front-end es crear claras, rápidas y sencillas páginas e interfaces que harán que la gente entienda y se preocupe por la información, al ponerlo en contexto, exponer su legitimidad o falta de ella, y revelar su interconexión implícita o explícita.
Front-end no es sólo una cara bonita, sino que es la interface amigable y con visión de futuro de un desarrollo web.

Fuente: http://frontaly.com/2015/02/que-es-el-desarrollo-front-end/