Programando para el futuro

Publicado en

Predecir el futuro nunca es algo sencillo, incluso en nuestra época con toda la tecnología e información con la que contamos. En el mundo de la tecnología, donde todo cambia rápidamente, las decisiones sobre cómo serán las plataformas y entornos en el futuro, incluso el futuro cercano, deben tomarse de manera rápida y enfocadas en lo que está disponible en un momento dado.

La industria del cómputo y el desarrollo aún es joven y continúa desarrollándose en un mundo cambiante y globalizado. El balance entre estandarización e innovación es delicado y muchas veces uno de ellos debe sufrir para que el otro se desarrolle. Las decisiones que tomamos en el presente sobre el desarrollo tecnológico afectarán a las personas que construyan sobre nuestro trabajo en el futuro.

En un mundo en el que la computación y las redes son una realidad que toca a más de mil millones de personas es necesario preguntarnos, ¿las plataformas que usamos siguen siendo las correctas? ¿Cómo serán las herramientas y lenguajes que necesitaremos para resolver los problemas en el futuro?

El mundo cambia y la tecnología con él

Las herramientas tecnológicas con las que contamos hoy en día siempre han sido un medio por el cual se pueden resolver problemas, no el fin. Los avances en la tecnología afectan y cambian a la sociedad al introducir nuevas formas de resolver problemas, que su vez demandan cambios a la tecnología, creando un círculo virtuoso de innovación.

La innovación, sin embargo, viene con un costo de implementación, donde el cambio en los sistemas existentes tiene un impacto económico que los dueños de las tecnologías no siempre están dispuestos a absorber. Es por esta razón, entre otras, que muchos de los sistemas o lenguajes que se utilizan actualmente no son precisamente nuevos y hay una resistencia generada por un incentivo económico perverso para innovar de manera inmediata.

Internet, la web, los dispositivos móviles y el cómputo en la nube están introduciendo formas nuevas y diferentes de gestionar, almacenar y analizar información, así como las herramientas y servicios que se utilizan para crear y compartir esa información.

La herramienta correcta o la conocida

Muchas personas creen que el desarrollo tecnológico siempre es incremental, es decir, que las cosas nuevas se construyen en base a las que fueron construidas antes. Aunque a veces es así, la llegada de tecnologías o enfoques disruptivos obliga a la industria a cambiar para adaptarse o desaparecer. Muchas veces la inercia tecnológica obliga a algunos a mantener tecnologías viejas o descontinuadas al tiempo que intentan adaptarlas para que hagan cosas para las que no fueron diseñadas originalmente.

Ese es el principal argumento de Jeffrey Zeldman, uno de los promotores de la Web 3.0, que dice que lenguajes como HTML, CSS o Javascript han sido adaptadas para crear aplicaciones utilizando AJAX y otros acercamientos para los que no fueron creados originalmente. El resultado es que muchas aplicaciones web son creadas usando un framework sobre otro, con severos problemas potenciales para su crecimiento y mantenimiento.

Zeldman insiste en que el desarrollo web ha rebasado las barreras de los browsers, algo fácil de verificar al ver la manera en que ha crecido el uso de Javascript fuera del navegador, ya sea en el servidor (NodeJS), en dispositivos (Tessel) o para apps (Appcelerator y otros). La propuesta de la Web 3.0 es que las plataformas de desarrollo deben evolucionar para adaptarse a las nuevas necesidades tecnológicas.

Los nuevos retos

  • En los próximos diez años tenemos retos que en este momento son difíciles de resolver, entre ellos:
  • Desarrollar aplicaciones que puedan correr y adaptarse a múltiples formatos y tamaños de pantalla.
  • Crear aplicaciones que puedan interactuar con APIs y servicios que vivan en entornos externos de manera segura.
  • Analizar volúmenes de datos no normalizados de gran tamaño y en diferentes formatos en tiempo real.
  • Utilizar de manera más completa las capacidades de almacenamiento y procesamiento de la Nube y otros entornos descentralizados.
  • Hacer desarrollos que puedan correr de manera eficiente y escalable en dispositivos portátiles con capacidades limitadas de comunicación, procesamiento o energía.
  • Usar la capacidad de la red para procesos de análisis de lenguaje natural basado en texto o voz.
  • Aprovechar cabalmente el potencial de Big Data para hacer entornos de simulación y predicción a futuro.

Sería ingenuo pensar que los lenguajes y herramientas que usamos actualmente, basadas en modelos diseñados hace más de 20 años para computadoras aisladas nos pueden servir a resolver los problemas que vienen en la siguiente década. En los próximos años tendremos que recrear no solo los lenguajes y herramientas con las que escribimos software, sino también forma en que pensamos respecto de la tecnología.

Bio

Mauricio Angulo (@mauricioangulo) es programador desde 1989 divulgador, ávido escritor y emprendedor. Actualmente es CEO y fundador de Tesseract Space donde realiza funciones de asesor y consultor de innovación tecnológica, mercadotecnia digital y experiencia de usuario.