Mi octavo libro dedicado a recuperar al auténtico primer videojuego español, a la venta con precio muy popular en versión papel, o versión ebook económica.
En los últimos treinta años, la visión desde el punto de vista del desarrollo de aplicaciones y los lenguajes de programación en los sistemas de usuario «PC» ha cambiado en importante magnitud, hasta el punto de ser una especialidad completamente diferente con el paso de los años. Y en este artículo voy a hablar de la evolución de los lenguajes de programación... en definitiva, la evolución de la programación.
En la década de los años ochenta, los lenguajes de programación eran lenguajes sin apenas estructura y de ejecución secuencial; los programas se ejecutaban una línea tras otra y no existía una estructura concreta, pudiendo dar saltos anárquicos de un lugar a otro del desarrollo. Estos lenguajes eran de alto nivel, es decir, lenguajes más sencillos de programar, con un propósito concreto, y basados en otros lenguajes de bajo nivel sobre los que se habían desarrollado; estos lenguajes eran los que el informático medio habitualmente utilizaba como herramienta. Un ejemplo era el lenguaje «BASIC», muy popular a la par que sencillo en estructura y comandos.
También existían los lenguajes de bajo nivel, los más cercanos a la arquitectura interna de la máquina y los más complicados y tediosos en su programación, para los que no había límite en desarrollo; los límites los marcaba el propio hardware del computador. Estos lenguajes de bajo nivel requerían de auténticos genios de la informática para su desarrollo y mucho tiempo de dedicación incluso para la ejecución de la tarea más sencilla. La parte positiva radicaba en que para programar en estos lenguajes era imprescindible conocer a fondo el funcionamiento interno del ordenador, ya que todo se desarrollaba desde el nivel más elemental y esto aportaba al programador una visión general muy completa de la arquitectura informática. Incluso en estudios oficiales y en el aprendizaje general, se utilizaban lenguajes de bajo nivel con la finalidad de ayudar a entender la arquitectura del hardware de un equipo informático. Entre estos lenguajes nos podíamos encontrar el «código máquina» en binario, o el lenguaje «ensamblador» que se componía de un conjunto de instrucciones directas del microprocesador.
A finales de los años ochenta era muy popular desarrollar aplicaciones de gestión mediante una base de datos llamada «dBASE III Plus» que se complementaba con un compilador llamado «Clipper Summer 87».
A finales de los años ochenta, ya se había popularizado un lenguaje a medio camino entre los de bajo nivel y los de alto nivel, el «Lenguaje C», que era un lenguaje en principio secuencial pero con una clara estructura y un nivel de organización importante. Este lenguaje conformará la base de la posterior evolución del desarrollo de aplicaciones. Durante los años ochenta, los ordenadores no contaban con dispositivos multimedia y apenas existían redes de comunicaciones y los gráficos o eran muy limitados o ni siquiera existían, por eso la programación de aplicaciones era mucho más sencilla. Uno de los principales objetivos del desarrollo era fabricar aplicaciones de gestión y para ello existían lenguajes de alto nivel con mucha potencia como el «Cobol», uno de los lenguajes de programación más usados de la historia, o el «Clipper». En aquella época, era muy popular desarrollar aplicaciones de gestión mediante una base de datos llamada «dBASE III Plus» que se complementaba con un compilador llamado «Clipper Summer 87» que, a su vez, permitía compilar desarrollos sobre la base de datos, además de proveer un montón de funciones y comandos extra.
Al principio, la programación de bajo nivel era únicamente accesible para genios de la informática y la programación en alto nivel era accesible para todo el mundo, pero requería una base inicial de conocimiento abstracto, así como tener la posibilidad de acercarse a un ordenador, que pocos la tenían. Y todos los desarrollos estaban muy limitados a una tecnología muy concreta; normalmente se desarrollaban aplicaciones de gestión, o sencillos juegos de ordenador. Para los juegos de ordenador complejos era necesario un importante equipo de desarrolladores en lenguajes de bajo nivel. Con respecto a la programación a nivel empresarial, lo más habitual, era programar para grandes sistemas «Mainframe» mediante lenguajes no accesibles para un usuario estándar como «RPG» o «Cobol». La programación era secuencial, muy desorganizada por falta de estructura y muy complicada de depurar; también era necesario ejecutar todos los procesos a mano como la «compilación» y el «linkado», utilizando editores externos para ejecutar el desarrollo del código fuente.
El estreno de un lenguaje estructurado y de programación orientada a objetos como es el C++ se convirtió en una auténtica revolución
En la década de los años noventa, irrumpieron con fuerza los sistemas operativos basados en entorno gráfico y el hardware con dispositivos multimedia incorporados. El mundo del desarrollo cambió por completo, apartando a los lenguajes de programación secuenciales y pasando a lenguajes de programación por objetos y a lenguajes de entorno gráfico basados en controles, métodos, y eventos como, por ejemplo, «Visual Basic», «Fox Pro», «Delphi», etcétera. El estreno de un lenguaje estructurado y de programación orientada a objetos como es el «C++» -que no deja de ser un Lenguaje C adaptado a las nuevas tecnologías- se convirtió en una auténtica revolución, ya que todos los sistemas operativos y lenguajes de programación actuales están prácticamente basados en aquel lenguaje.
A finales de los años noventa, surgió con fuerza Internet y ello otorgó el inicio de una nueva -y diferente- especialidad dentro del desarrollo de aplicaciones informáticas: la «programación Web». En los primeros años era una sencilla programación secuencial mediante etiquetas, llamadas «HTML», pero rápidamente se extendió con el uso de lenguajes complementarios como el «PHP» y el «Perl» que otorgaron más potencia a los desarrollos para Internet. En el apartado de las bases de datos comenzó a sonar con fuerza un lenguaje estándar de tratamiento de datos llamado «SQL».
Con la entrada del nuevo milenio, la «programación Web» evolucionó permitiendo desarrollar aplicaciones en Internet mucho más complejas, así como los lenguajes visuales se impusieron junto con grandes gestores de bases de datos que generalizaron su uso como «Oracle», «MySQL», o «SQL Server». Pero según avanzó la primera década, surgieron entornos «framework» de pseudo-programación que permitían ejecutar desarrollos concretos en menor tiempo y con menores conocimientos, aportando al desarrollo de aplicaciones mayor accesibilidad a personas con conocimientos más básicos.
En los últimos treinta años, la visión desde el punto de vista del desarrollo de aplicaciones en los sistemas de usuario «PC» ha cambiado en importante magnitud hasta el punto de ser una especialidad completamente diferente.
En los años ochenta, la programación era más limitada y aburrida y existía una clara diferencia de desarrollo empresarial o industrial con el desarrollo para ordenadores domésticos o pequeña empresa. La programación se basaba en procesos manuales, «depurar», «compilar», «linkar», y al mismo tiempo las aplicaciones eran mucho más sencillas que las actuales. Al principio, podía parecer divertida, pero cuando los desarrollos ocupaban muchas horas, la programación se convertía en tremendamente aburrida y era terriblemente poco atractiva para el analista o el programador. El desarrollo de aplicaciones en lenguajes de bajo nivel tuvo una importancia vital durante aquella época.
En los años noventa, los editores personalizados y algunas automatizaciones, agilizaron la depuración y compilado de aplicaciones y los lenguajes pasaron a contener una clara estructura. La programación era un poco menos aburrida y se llegaban a desarrollar aplicaciones que incorporaban nuevas tecnologías muy agradables para el uso humano. La programación de bajo nivel perdió fuerza, siendo utilizada únicamente para el desarrollo de sistemas operativos o lenguajes de programación y por equipos altamente cualificados. Pero en aquellos años noventa, hubo dos puntos de inflexión muy importantes: los lenguajes visuales y los lenguajes orientados a objetos. Ambos tipos de lenguajes de programación rompieron con la antigua programación estructurada, requiriendo en los profesionales un cambio importante de sus esquemas mentales adquiridos durante los años anteriores. La parte positiva era que la programación se hacía más humana -la programación orientada a objetos se basa en estructurar los desarrollos en conceptos humanos, como objeto, propiedades, métodos, y eventos- y mucho más atractiva; enganchaba más. En paralelo a estos lenguajes, y teniendo en cuenta que la fabricación migraba poco a poco a convertir todo lo mecánico en electrónico, se fue creando una nueva variante de programación para sistemas industriales y sistemas embebidos. Durante aquella época, el software libre comenzó a contar presencia, principalmente debido al éxito del «Linux» que siempre ha sido el buque insignia de la llamada «libertad en el software».
El abanico de lenguajes de programación -y de entornos sobre los que desarrollar- se multiplicó rápidamente con la llegada del nuevo milenio.
Con la entrada al nuevo mileno, los lenguajes de programación sufrieron cambios totales. Se crearon lenguajes interpretados mediante «frameworks», no había límite para el desarrollo, existiendo un amplio abanico de nuevos lenguajes de programación, las comunicaciones formaron una parte importante del desarrollo, y el desarrollo web se convirtió en pieza fundamental. Programar en lenguajes de bajo nivel perdió sentido, ya nadie programaba en ellos. Los nuevos dispositivos portables que se estandarizaron para el consumo popular, como la telefonía móvil o las tabletas digitales, generaron nuevos lenguajes con nuevas filosofías de desarrollo de aplicaciones. El abanico de lenguajes de programación -y de entornos sobre los que desarrollar- se multiplicó rápidamente. Y en este nuevo milenio, el software libre adquirió mucha fuerza.
En nuestra opinión, el mundo del desarrollo ha cambiado mucho ya que hemos pasado de una aburrida programación de alto nivel -sin apenas estructura conceptual- destinada a ejecutar tareas básicas, a una programación actual realmente bella, con una estructura conceptual muy amplia y que permite desarrollar grandes aplicaciones. Antes, para desarrollar una compleja aplicación, se requería un gran talento y adentrarse en un complicado mundo de la programación de bajo nivel. Actualmente, en la programación de alto nivel se pueden realizar grandes desarrollos, pero esto no quiere decir que sea más sencillo programar, sino que el sentido de complejidad cambia: antes la complejidad estaba en el propio lenguaje de bajo nivel, ahora la complejidad está en dominar y conocer tantos aspectos y entornos existentes entre tantos lenguajes de alto nivel diferentes.
Actualmente, existe una gran cantidad de lenguajes de programación que pueden ser destino de nuestros de desarrollos, prácticamente todos de alto nivel. Y por ello la demanda profesional se ha diversificado, antes se demandaba simplemente un programador, sin más; ahora se demandan desarrolladores concretos según la plataforma deseada.
Con respecto a la estructura de la programación, los lenguajes modernos disponen de una estructura mucho más rica en conceptos y disfrutan de una mayor organización y sentido que la existente en los antiguos lenguajes de programación, aportando mayor claridad y, sobre todo, aportando humanidad a los desarrollos.
En treinta años el desarrollo de aplicaciones ha pasado de una reducida parcialidad a una total globalidad.
Hace tres décadas, la programación de aplicaciones era el destino final de un abanico muy reducido de personas y empresas, y los usuarios conformaban grupo concreto y reducido. En los últimos diez años, el desarrollo de aplicaciones adquiere su máxima expresión de globalización, ya que todo el mundo es usuario y consume software ¿Y por qué es así? Porque todo el mundo vive con dependencia de su teléfono móvil y su tableta las veinticuatro horas del día. En definitiva, y lo más importante a destacar en este capítulo, en treinta años el desarrollo de aplicaciones ha pasado de una reducida parcialidad a una total globalidad.
Quizás la parte más fea de la evolución en el desarrollo de aplicaciones, en nuestra opinión, es el crecimiento progresivo del software libre, porque ese concepto, que está muy mal interpretado por la población en general, nos ha llevado a que la mayor parte de los usuarios de software deseen y exijan aplicaciones gratuitas, cuando el concepto de gratuidad no forma parte de la filosofía del software libre.
Aunque, desde nuestro punto de vista, el desarrollo de aplicaciones haya mejorado con el paso de los años, no quita que de vez en cuando me invada una cierta nostalgia de mis primeros pasos en el mundo del desarrollo de aplicaciones, allá en la década de los años ochenta. Nuestra nostalgia proviene de los años de aprendizaje y programación en el lenguaje «ensamblador» -el lenguaje de bajo nivel por excelencia-, ya que con aquellas prácticas conseguí entender con facilidad la arquitectura interna de un equipo informático y de un microprocesador, algo imposible de conseguir con los lenguajes de programación de alto nivel de hoy en día.
A finales de los años ochenta era muy popular desarrollar aplicaciones de gestión mediante una base de datos llamada «dBASE III Plus» que se complementaba con un compilador llamado «Clipper Summer 87».