1. Historia de la programación
Los lenguajes de programación formales nacieron aproximadamente en los años 50
Charles Babbage (Teignmouth, Devonshire, Gran Bretaña, 26 de diciembre de 1791 -
Londres, 18 de octubre de 1871) fue un matemático británico y científico de la
computación, conocido como el Padre de las computadoras, diseñó una máquina
totalmente mecánica capaz de realizar cualquier tipo de cálculo matemático: la
Máquina Analítica. Aunque la máquina analítica no fue construida hasta 150 años
después por el Museo de Londres, Ada Lovelace fue la primera persona que se
interesó por la inexistente máquina de Babbage y desarrolló un algoritmo capaz de ser
utilizado en ella. De allí que Ada Lovelace sea considerada como la primer
programadora de computadoras de la historia.
En 1823 el gobierno Británico lo apoyo para crear el proyecto de una máquina de
diferencias, un dispositivo mecánico para efectuar sumas repetidas. Pero Babagge se
dedicó al proyecto de la máquina analítica, abandonando la máquina de diferencias,
que se pudiera programar con tarjetas perforadas, gracias a la creación de Charles
Jacquard (francés). Este hombre era un fabricante de tejidos y había creado un telar
que podía reproducir automáticamente patrones de tejidos, leyendo la información
codificada en patrones de agujeros perforados en tarjetas de papel rígido. Entonces
Babagge intento crear la máquina que se pudiera programar con tarjetas perforadas
para efectuar cualquier cálculo con una precisión de 20 dígitos. Pero la tecnología de
la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no
llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los
ordenadores actuales responden a un esquema análogo al de la máquina analítica. En
su diseño, la máquina constaba de cinco unidades básicas: 1) Unidad de entrada, para
introducir datos e instrucciones; 2) Memoria, donde se almacenaban datos y
resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecución
de las operaciones; 4) Unidad Aritmético-Lógica, que efectúa las operaciones; 5)
Unidad de salida, encargada de comunicar al exterior los resultados. Charles Babbage
no pudo completar en aquella época la construcción del computador que había
soñado, dado que faltaba algo fundamental: la electrónica. El camino señalado de
Babbage, no fue nunca abandonado y siguiéndolo, se construyeron los primeros
computadores.
Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator
And Calculator), su programación se basaba en componentes físicos, o sea, que se
programaba, cambiando directamente el Hardware de la máquina, exactamente lo que
sé hacia era cambiar cables de sitio para conseguir así la programación de la
máquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas.
Programadores de las últimas decadas
Tim Berners-Lee
Creador del protocolo HTTP, que permite el adecuado intercambio de documentos
hipervinculados.
El CERN le permitió probar un concepto que habitó en su cabeza por varios años, que
resultó en la Web, la red más exitosa entre las hospedadas por Internet. Berners-Lee
merece una mención especial al abogar por el espíritu abierto y colaborativo de las
2. tecnologías web, que ahora tienen en el inacabado HTML5 uno de sus retos más
importantes.
Bram Cohen
Creador del protocolo BitTorrent de intercambio de archivos.
Siendo un joven aficionado a los juegos matemáticos, creó BitTorrent con el lenguaje
de programación Python, para intercambiar, de forma colaborativa y óptima, un archivo
en Internet. Con esto puso de cabeza a la industria del copyright, se creó una industria
alternativa de contenidos, nació The Pirate Bay, incluso los partidos piratas, al tiempo
que los paquetes torrent saturaron las venas de Internet. Bram Cohen hizo una
empresa con su invento, sin embargo el protocolo nació de código abierto, listo para
ser utilizado para cuanta cosa vayamos a compartir por la red.
Bill Joy
Creador de BSD, el sistema operativo sobre el que se construyeron los cimientos de
Internet.
La inteligencia y visión de Joy permitieron la creación de la Berkeley Software
Distribution, un derivado inmediato, estable y robusto de UNIX sobre el cual se
probaron las primeras versiones del Internet que hoy conocemos. No olvidemos que
Van Jacobson usó un sistema BSD para crear la versión de TCP que permite que
Internet no colapse. Además Joy co-fundó Sun Microsystems, una de las empresas
más influyentes para el movimiento open source y cuna de software impresionante
como NFS, Solaris y Java. Ni qué decir lo mucho que Mac OS X le debe a BSD.
Alan Kay
Creador de Smalltalk y los conceptos de la programación orientada a objetos.
La sabiduría e inteligencia de Alan Kay es bien reconocida entre sus colegas. A Kay le
debemos la computación personal, post-PC como ahora le llaman, basada en
dispositivos móviles, tablets, así como la importancia de las interfaces de usuario para
crear experiencias, sobre todo educativas.
Donald Knuth
Creador del lenguaje de programación TeX, pero sobre todo compendiador y teórico
de los algoritmos que las generaciones siguientes seguimos utilizando para crear
software.
Knuth es una leyenda. Algunos le llaman el Yoda de la programación (algún parecido
físico tiene). Escribió el mítico The Art of Computer Programming, para lo cual creó el
software para maquetarlo, TeX, el lenguaje y máquina para ilustrar los algoritmos. Hoy
en día LaTeX, un derivado de TeX, es el lenguaje predilecto para la creación de texto
científicos. Asimismo, los trabajos de Knuth ayudaron a crear los compiladores que
usamos hoy para crear software.
Bill Gates
Creador de BASIC Altair, padre de Windows, el sistema operativo de escritorio más
popular del planeta.
Gates carga una fama variopinta desde 1980 o antes. Con espíritu anti-cultura hacker
escribió en 1976 la Open Letter to Hobbyists para recriminar a los programadores que
usaron BASIC Altair sin su permiso. Luego sucedió el supuesto robo de un sistema
operativo, QDOS, a Gary Kindall que suscitó el nacimiento del imperio Microsoft en las
3. computadoras personales. Por cierto, la revista Spectrum de la IEEE publicó un
estudio basado en un análisis forense que elimina esos dichos. Lo cierto es que Gates
fue un grandísimo nerd, ambicioso en los negocios, cuyo software y cultura marcaron
la manera de hacer y usar software en casa y en la oficina.
Dennis Ritchie
Co-creador de Unix y el lenguaje C de programación.
Me pongo de pie para decir, o bien escribir, que Ritchie es el programador-hacker por
excelencia, la mente maestra detrás del software más influyente de la historia,
verdaderas piedras angulares hechas bytes: el sistema operativo UNIX y el lenguaje
C. Un hombre apoyado por otros grandes hackers como Kernighan y Thompson, que
murió hace unos meses, dejando un legado de influencia con tantas ramificaciones
que merece un libro entero.
Richard Stallman
Creador de Emacs, padre del movimiento por el software libre.
Hombre polémico por donde se le vea. Odiado y amado, Stallman es el filósofo del
software como objeto de conocimiento y mecanismo de libertad. Ver, modificar,
mejorar y compartir el software son los principios fundamentales para Stallman, en
lucha incansable y constantes desde la Fundación por el Software Libre a principios de
los años 80. Vamos, que si el software parte de ideas, las ideas son conocimiento y el
conocimiento pertenece a todos, entonces el software debe ser libre, sin más. Tal vez
en unos años apreciemos en su verdadera medida la calidad y cantidad de
aportaciones de Stallman, por ahora puedo decir que si nuestro Internet funciona es
gracias, en buena medida, al software creado y difundido a partir de los esfuerzos del
gran rms.
Linus Torvalds
Creador de Linux, el sistema operativo libre.
El arrojo que tuvo para crear Linux, con una dictadura estrictamente pragmática para
dirigir a centenas de programadores de todo el mundo, desde hace más de 20 años, le
hacen digno de gran admiración. Y no sólo creó Linux, también creó Git, el software
para gestionar versiones de software que hoy construye comunidades de código
abierto como las de Github. Linux está en todos lados, sin triunfar en el escritorio, es
cierto, pero detrás de cada servidor web, de cada búsqueda en Google, de cada like y
tweet, en la búsqueda del bosón de Higgs, y en la computadora del próximo gran
hacker.
Mark Zuckerberg
Creador de Facebook, la red social.
El último de la lista y el que más me cuesta describir. El hombre simplemente escribió
en PHP y Apache un software para gestionar la vida social de su campus, luego vio un
negocio, lo hizo crecer, se hizo de buenos amigos inversionistas, la red se expandió
como una enfermedad viral y hoy tenemos ante nosotros Facebook, la red de redes
sociales más influyente de la historia. Algunos piensan que la Facebook sabe
demasiado de nosotros porque piensa en lo explícito, edad, fotos, amigos, familia.
Pero Facebook puede saber mucho más que eso, algo oculto que emerge de entre
todas nuestras conexiones. Y Zuckerberg, hábil programador, parece seguir al frente
de todo eso.
4. Otros lenguajes de programación
PL/I
Fue creado a comienzos de los años sesenta por IBM para ser usado en sus equipos
del sistema 360. Inspirándose en los lenguajes ALGOL, COBOL y FORTRAN se
desarrollo el PL/I (Programming Language/I) tomando las mejores características de
los anteriores y añadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo
mas general posible en cuanto a su implementación, útil para aplicaciones técnico-
científicas, comerciales, de proceso de textos, de bases de datos y de programación
de sistemas. Se trata de un lenguaje de programación complejo. Compilado y
estructurado, es capaz de gestionar errores y de procesar multitareas, y se emplea en
entornos académicos y de investigación.
Entre sus novedades esta su gran libertad en el formato de escritura de los programas:
soporta la programación estructurada y diseño modular. Es un lenguaje flexible y
sofisticado. No obstante, no ha superado a sus progenitores en sus aplicaciones
especificas, debido en parte a su amplitud y, por ello, al tamaño de su compilador que
hasta ahora solo se podía instalar en grandes equipos. El elemento básico de este
programa es el enunciado que termina en punto y coma. Los enunciados se combinan
en procedimientos. Un procedimiento puede representar por completo a un programa
pequeño o un “bloque de construcción” o modulo de un programa más complejo.
MODULA-2
El lenguaje MODULA fue diseñado en 1977 bajo la dirección de Nicklaus Wirth,
creador también el lenguaje PASCAL, con la intención de incluir las necesidades de la
programación de sistemas y dar respuestas a las criticas recibidas respecto de las
carencias del lenguaje PASCAL. En 1979 se realiza una versión que pasa a
denominarse MODULA-2 y que perdura en la actualidad.
Además de incluir las características de su predecesor, este nuevo lenguaje incorpora
las principales carencias de aquel, como la posibilidad de compilación separada,
creación de librerías, programación concurrente, mejora el manejo de cadenas de
caracteres, los procedimientos de entrada/salida y la gestión de la memoria, etc.
además, posee grandes facilidades para la programación de sistemas.
También, debido a sus cualidades didácticas, ha sido ampliamente aceptado por la
comunidad universitaria como herramienta idónea para la enseñanza de la
programación.
LISP
En informática, acrónimo de List Processing. Un lenguaje de programación para
ordenadores o computadoras orientado a la generación de listas, desarrollado en
1959-1960 por John McCarthy y usado principalmente para manipular listas de datos o
de símbolos. El lenguaje LISP constituyó un cambio radical con respecto a los
lenguajes procedurales (FORTRAN, ALGOL) que se desarrollaban por entonces. El
LISP es un lenguaje interpretado, en el que cada expresión es una lista de llamadas a
funciones. Este lenguaje se sigue utilizando con frecuencia en investigación y en
círculos académicos, y fue considerado durante mucho tiempo el lenguaje modelo
5. para la investigación de la inteligencia artificial (IA), aunque el Prolog ha ganado
terreno durante los últimos años.
LOGO
En informática, lenguaje de programación de ordenadores o computadoras,
desarrollado en 1968 por Seymour Papert en el MIT, que se usa frecuentemente en la
enseñanza de lenguaje de programación a niños. Una característica importante de
Logo son los gráficos de tortuga, que permiten al programador hacer dibujos simples
dirigiendo los movimientos de la tortuga en la pantalla hacia adelante, hacia la derecha
o la izquierda. Una vez que dominan el entorno sencillo del dibujo, el programador
(normalmente un niño o una niña) empieza a descubrir las características más
sofisticadas del lenguaje, que están basadas fundamentalmente en el lenguaje de
programación LISP. Logo está considerado como un lenguaje para la formación, a
pesar de que algunas empresas intentaron que tuviera una mayor aceptación en los
círculos profesionales de programación.
ALGOL
El ALGOL (ALGOritmic Language) fue presentado en 1958. Fue el primer lenguaje de
programación de proceso estructurado de alto nivel. Fue orientado al uso de quienes
participan en proyectos científicos y matemáticos. Un grupo internacional de
matemáticos europeos y americanos, pretendían crear un lenguaje común
normalizado que les permitiera el intercambio de algoritmos, aunque esta en desuso,
fue el primero que incorporo conceptos claves para la programación actual.
APL
Sus siglas significan (A Programming Language). Un Lenguaje de Programación. Este
programa fue desarrollado por Kenneth Inverson en el año 1961 para resolver
problemas matemáticos. Este lenguaje se caracteriza por su brevedad y por su
capacidad de generación de matrices y se utiliza en el desarrollo de modelos
matemáticos.
PILOT
Programmend Inquiry Language Or Teaching (Consulta, lenguaje o aprendizaje de
investigación programada) creado en 1969.
Este lenguaje de programación es utilizado fundamentalmente para crear aplicaciones
destinadas a instrucciones asistidas por computadoras. Se caracteriza por utilizar un
mínimo de sintaxis.
DELPHI
Es un entorno de programación visual orientado a objetos para desarrollo rápido de
aplicaciones (RAD) de propósito general, incluyendo aplicaciones cliente/servidor.
Delphi es la versión de Delphi para 32 bits (delphi 3), es decir son casi los mismos, con
la única diferencia que Delphi 3 es mucho más mejorado, por ejemplo contiene un
TeeChart, que sirve para los gráficos de negocio.
Delphi tiene las siguiente características:
Rendimiento - con el mejor y más rápido compilador del mundo.
6. Empresa e Internet - soluciones cliente y servicio
Desarrollo de aplicaciones rápidas (RAD).
HTML
El lenguaje HTML, sirve para realizar esas atractivas páginas Web. Se trata de un
sistema de marcas que permite enlazar al mismo tiempo texto, sonidos y gráficos
dentro del mismo documento, con otros dentro del servidor o incluso con otros
servidores WWW. Es decir, es un editor para combinar textos, imágenes e incluso
sonido y ahora también imágenes en movimiento. Es, en definitiva, la forma de
manejar y presentar la información en la red.
Para escribir documentos de hipertexto se ha desarrollado un nuevo formato de datos
o lenguaje llamado Hyper Text Markup Language (HTML). Este lenguaje permite dar
indicaciones precisas al programa cliente de cómo debe presentarse el documento en
pantalla o al ser impreso.
El lenguaje HTML es el usado actualmente para escribir textos Hypermediales en el
web.