¿Cómo hacemos que las máquinas nos obedezcan?
Desde la mitología antigua los seres humanos han imaginado aparatos que obedecen sus órdenes.
Como la mujer hecha de oro que aparece en el Kalevala nórdico, o las estatuas mecánicas
que auxiliaban a Hefesto, el dios griego de la invención. Ahora tenemos a nuestro servicio
no sólo robots industriales, sino computadoras que pueden hacer tareas muy complejas como
dirigir cohetes espaciales u ofrecernos mundos virtuales donde podemos jugar a nuestro gusto.
Todas estas máquinas necesitan una serie de instrucciones, un “programa” para hacer
lo que necesitamos. Platzi, la plataforma online de aprendizaje
que te ofrece casi 200 cursos, entre ellos uno gratuito de programación, presenta…
¿Cómo hacemos que nos obedezcan las máquinas? Herón de Alejandría, conocido inventor griego
del año 60, creó un carro que podía moverse en un escenario, cambiando de dirección a
distancias predefinidas. Su fuente de propulsión era una pesa que colgaba y jalaba un par de
cuerdas enrolladas entre una serie de clavos incrustados en el eje de manera tal que, mientras
se desenrollaba, el carro podía avanzar, girar hacia ambos lados o ir en reversa. La
manera en la que se enrollaba la cuerda constituía el programa del autómata: se podría decir
que es el primer lenguaje de programación de la historia.
En el año 800, los hermanos Banu Musa, persas, escribieron el “Libro de los mecanismos
ingeniosos” donde describen aparatos como una lámpara de aceite que se rellena sola,
¡o las primeras cajitas musicales! Éstas funcionan con cilindros cuyas protuberancias
pulsan láminas metálicas que suenan con diferentes notas para crear melodías. Disponer
el orden de las protuberancias constituye otro ejemplo de programación.
Fue hasta 1801 cuando se inventó una máquina verdaderamente útil y programable: el “Telar
de Jacquard” usaba tarjetas perforadas para crear diseños en los tejidos. La pianola
usa un sistema similar para producir melodías. Ese mismo sistema de tarjetas perforadas fue
el propuesto por Charles Babbage para dar instrucciones a su Máquina Analítica, la
primera computadora mecánica… que nunca llegó a construirse. Eso no impidió que
Ada Lovelace escribiera un programa para la computadora hipotética: un algoritmo capaz
de calcular una secuencia de los números de Bernoulli. Por eso Lovelace es considerada
la primera programadora de computadoras de la historia.
Para finales del siglo XIX, las tarjetas perforadas se usaban como medio para guardar información.
Herman Hollerith, empresario especializado en estadísticas, las usó para el censo de
Nueva York de 1890. Thomas Watson se apropió de la empresa de Hollerith y le puso por nombre
International Business Machines, o IBM… Las primeras computadoras electrónicas programables
fueron las llamadas Colossus: se usaban para descifrar códigos secretos durante la Segunda
Guerra Mundial. En 1947, mientras trabajaba en una computadora Mark II Aiken, la programadora
Grace Murray Hopper, vio algo que no funcionaba. Buscando entre los cables se encontró un
bicho: una mariposa interfería con su programa. “Bicho” en inglés se dice “bug”,
y desde entonces, a los errores de programación se les llama así. “Bugs”.
En sus inicios, las computadoras se debían programar en el lenguaje de interruptores
“apagados y encendidos”: secuencias de ceros y unos. Este lenguaje se llama “código
máquina”, y se clasifica como lenguaje de bajo nivel ¡es tremendamente complicado
de aprender! Para facilitar el trabajo, y ya gracias al uso de teclados y monitores
electrónicos, se inventó el “lenguaje ensamblador”, en el que se reemplazaban
las instrucciones expresadas en secuencias de unos y ceros por abreviaturas en inglés.
Era más o menos lo mismo, pero con comandos más fáciles de recordar. Finalmente, mientras
más crecía la complejidad de los programas, se hizo necesario crear lenguajes más comprensibles
para los humanos: se les llama lenguajes de tercera generación o “lenguajes de alto
nivel”. El primero de estos lenguajes se llamó FORTRAN.
Uno de los lenguajes de alto nivel más usados para enseñar programación se llama LOGO.
En él, se escribe una serie de instrucciones que hacen que una tortuguita se mueva en cualquier
dirección y haga dibujos. Le podemos decir que avance 100 unidades… que rote 45 grados
y avance otras 100 unidades… y que lo haga 8 veces ¡dibujamos un octágono!
Además de órdenes o “comandos”, un lenguaje de programación usa variables: espacios con
nombre que almacenan algún valor. Por ejemplo, podemos usar una variable para contar cuántos
lados ha dibujado la tortuga. Otro elemento son los operadores, como “if”,
que nos sirven para cambiar la conducta del programa dependiendo del valor de una variable.
Por ejemplo, este programa hace que la tortuga avance poco a poco, y que se repita el ciclo
hasta que el número de pasos sea igual a 10.
Hay muchos elementos más: operadores booleanos, subrutinas, funciones, bucles… y hay muchos
lenguajes de programación. El que se usa para programar los robots que se hacen con
Lego Mindstorms usa una interfaz gráfica y se llama RoboLab. Pero hay más serios,
como el COBOL, especializado en finanzas… o el BASIC, un lenguaje multipropósito con
énfasis en la facilidad de uso que popularizó la programación en los años 80. Más tarde
surgirían C++ (Ce plus plus) Python, u otros que añaden funcionalidad a la web como SQL
y PHP. Con todos ellos es posible programar útiles aplicaciones y divertidos videojuegos,
y ahora, hasta Inteligencias Artificiales. ¡Y tú los puedes aprender!
¡Curiosamente! Si quieres un curso de programación básica
totalmente gratis ¡Platzi lo tiene! Visita el link que te dejamos en la descripción.
Programa desde cero, domina Javascript, entiende HTML y aprende de algoritmos. Entenderás
la lógica del código, cómo piensan los programadores y cómo programar juegos, proyectos
y hasta robots y electrónica.