Abordamos las necesidades actuales en el desarrollo web, marcadas por los usuarios, industria y la era de los dispositivos y la nube.
En este artículo vamos a comenzar un análisis al momento actual del desarrollo web, comenzando por describir el estado actual y las tendencias del mercado de desarrollo. El lector percibirá que no solo tratamos acerca de desarrollo web de manera específica, sino también al desarrollo en general, ya que actualmente es necesario llegar a todos los públicos, ofreciendo una experiencia acorde con la plataforma que estén usando.
De modo que los desarrolladores web debemos prestar más que nunca atención al desarrollo en general. Hoy la web es solamente una de las muchas maneras con las que una aplicación debe conversar con los usuarios. Es un medio ideal, porque para acceder solo necesitamos un navegador, pero no es el único.
Muchas veces conviene echar una mirada hacia atrás, a fin de entender mejor dónde estamos y a dónde nos dirigimos. No obstante, seré breve porque esta historia ya nos la conocemos muchos.
Mirada hacia atrás
Comencé a desarrollar para la web en el año 1997 y os puedo asegurar que en aquella época las cosas eran bien distintas con respecto al panorama actual.
Lenguajes limitados:
En aquella época los lenguajes eran básicos, manteniendo un API bastante elemental. También es cierto que el abanico de aplicaciones que se desarrollaban en el “medio Web” era también reducido, por lo que tampoco se exigía mucho de los lenguajes. Pero sobre todo, lo que caracterizaba este marco es la reducida cantidad de opciones para escoger. Apenas teníamos, como lenguajes puramente web, PHP y el antiguo ASP de Microsoft y además lenguajes como Javascript apenas estaban empezando y tenían un soporte muy limitado en navegadores. Incluso en aquella época, del lado del cliente, se prefería usar plataformas como Java con sus “Applets”.
Arquitecturas básicas:
El desarrollo para la web no era un campo muy “académico” que digamos. La mayoría de los desarrolladores que comenzábamos en la web estábamos poco interesados en las técnicas de programación que nos pudieran ayudar a tener un código mantenible. La web era un ámbito bastante experimental donde cada uno hacía la guerra por su cuenta, sin la existencia de una comunidad global que impulsase las buenas prácticas. En consecuencia, se aplicaban pocos patrones de diseño y las arquitecturas de desarrollo web prácticamente inexistentes.
Poca preocupación por la seguridad:
Otra de las áreas que no resultaban en tanto interés y preocupación era la seguridad. Disponer de sistemas robustos que nos permitan el desarrollo seguro, o la implementación de sistemas seguros.
¿Interfaces?:
Las interfaces de usuario eran producidas sin consideración hacia el usuario o estudio de usabilidad. Las que se producían eran bien básicas y ofrecían una experiencia de usuario "muy web": apenas texto, hiperenlaces y algunas imágenes que muchas veces no hacían más que despistar.
Cambios en el panorama actual en cuanto a tecnologías
No han pasado tantos años desde el marco descrito en el anterior punto y lo cierto es que el panorama del desarrollo ha cambiado mucho.
Si lo analizas, no todas las industrias cambian tan rápido, de hecho me atrevería a decir que el mundo del desarrollo es actualmente el área con una evolución más veloz. Observa por ejemplo la industria automovilística, donde se dan casos como la “combi” (mítica furgoneta Volkswagen) que se fabricó de manera continuada durante más de 60 años, usando prácticamente la misma tecnología durante todo ese tiempo. Esto sería impensable en el mundo de la informática en general y mucho menos en el mundo de Internet.
En resumen y en diferencia con el panorama anterior, descrito en hace unas líneas, hoy tenemos:
Muchas más tecnologías para elegir. A veces es tanta la afluencia de lenguajes que puede despistar a las personas que empiezan. Esperemos que el análisis actual, junto con los siguientes artículos de este informe puedan dar un poco de luz.
Las tecnologías, librerías e incluso lenguajes, nacen y desaparecen con gran rapidez. Las modas se suceden y en ocasiones es difícil saber cuál será la apuesta más adecuada. La comunidad de desarrolladores es la que, con su apoyo a los diferentes lenguajes, tiene la última palabra para decidir qué lenguaje, librería o framework perdura entre nosotros durante más tiempo.
Hemos madurado como desarrolladores y usamos patrones de diseño, nos preocupamos por buenas prácticas, usar una buena arquitectura de aplicaciones, refactorizar en búsqueda de un código más sencillo, claro y por tanto mantenible. A todo ello han ayudado mucho diversos factores como los estándares, así como los frameworks, que nos han marcado una dirección y han ayudado a estandarizar el modelo de desarrollo en las más diversas gamas de lenguajes.
La experiencia de usuario es muy diferente, la web no es simplemente texto con enlaces, sino que se usan interfaces avanzadas de todo tipo, multi-medios, servicios distribuidos, etc.
Necesidades actuales de las empresas y proyectos
Hemos oído hablar del "tiempo de Internet", veloz. Pero la sociedad también se transforma rápidamente. Esta sociedad está dominada por la inmediatez y donde cada día cobra más fuerza el "tiempo real". Paralelamente exigimos aplicaciones que nos faciliten la vida, que nos ayuden a decidir, ya sea para buscar alternativas para ahorrarnos tiempo en un atasco de tráfico, saber cuál es el mejor precio de un producto o el mejor restaurante de comida japonesa de la ciudad.
Pero no sólo nosotros somos así, las empresas también han seguido ese rol. Hoy se esfuerzan por construir sistemas ligeros, por realizar un desarrollo más rápido, con menor coste y por lo tanto menor riesgo. No queremos tardar 6 meses en desarrollar un proyecto y cuando se publique darnos cuenta que nuestros competidores nos han adelantado presentando antes una idea similar. O peor, darse cuenta que no era eso lo que queríamos, que la aplicación no se utiliza como habíamos pensado en un despacho.
Las empresas, y esto se refiere sobre todo a la cultura actual de las startups, que han dirigido la innovación en el mundo de Internet, quieren que sus productos sean como el público los necesita y por ello se prefiere que se definan sobre la marcha, en función de lo que cómo los usa el público.
Con todo, debemos estar preparados para cambios en los requisitos y por tanto la preferencia hoy es acudir a técnicas que permitan esos cambios con mayor facilidad. Por supuesto, la tecnología y el desarrollo deben de dar respuesta a todo esto y de hecho la dan, como veremos con detalle en los próximos artículos.
Hoy, desde las metodologías hasta las herramientas utilizadas para desarrollar, se valoran más aquellas cuyas características permiten adaptarse rápidamente al mundo cambiante.
Nube
En este momento tenemos otra nueva herramienta que está propiciando un nuevo modelo de desarrollo. Se trata de la denominada “computación en la nube” (Cloud Computing) que nos ofrece la posibilidad de disponer de capacidades de procesamiento y almacenamiento prácticamente infinitas.
Paralelamente, aparte de la posibilidad de contar con servidores avanzados, el modelo de Cloud Computing nos permite el acceso a diversas herramientas que facilitan y aceleran el desarrollo de software y de las que hablaremos más adelante. Otra de las posibilidades de la nube es el “Big Data” sobre el cual también trataremos más adelante.
Dispositivos
Ante esta mirada al panorama actual no podemos olvidarnos de los dispositivos. Hoy el mundo de la web compite con el mundo de las aplicaciones y en algunos países es ya mayor el acceso a Internet a través del móvil que a través de ordenadores tradicionales.
Ante esto la web ha reaccionado bien y los desarrolladores han adoptado en masa lo que se llama el "Diseño Responsive" o simplemente con su término en español “Responsivo”. Hoy el "diseño Responsive" o "diseño adaptable" ya no es innovación sino una necesidad y todos hemos comprendido que debemos diseñar con un ojo puesto en teléfonos móviles y otro en las grandes pantallas de ordenadores, o incluso la televisión.
Actualmente, la clave de la explosión de los dispositivos, para nosotros los desarrolladores, está en la necesidad de crear servicios que sean capaces de ofertarse a través de una web y a través de una "App" para el móvil (celular). Y este detalle es el que nos ha llevado a alguna de las innovaciones más representativas de los últimos años. Sobre este tema es donde vamos a incidir en el próximo artículo "Un mismo backend para diversos frontales".
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...