martes, 22 de septiembre de 2009

Historia de la informática: Los Lenguajes de Programación




Comienzo con este una serie de artículos sobre la historia de la informática que estoy escribiendo como colaborador para la revista de la Agencia de Informática de la Comunidad de Madrid (ICM).
A lo largo de estos meses quiero escribir sobre los siguientes aspectos de la historia de la informática:
  1. Historia de los lenguajes de programación
  2. Historia de los sistemas operativos
  3. Historia de los virus informáticos
Están dirigidos al público general, no es necesario tener conocimientos de informática para leerlos, ya que no pretenden ser artículos rigurosos que traten de dar toda la información posible (con fechas exáctas, etc.), la intención es tratar de introducir de manera amena algunos conceptos y eventos clave sobre la historia de la informática.

En este blog publicaré un extracto de dichos artículos, centrándome en los apartados de interés general y obviando aquellos que se limiten a la historia dentro de ICM.

Y sin más dilación, vamos con el primero de los artículos de la serie.

HISTORIA DE LA INFORMÁTICA: LOS LENGUAJES DE PROGRAMACIÓN

¿Qué es un lenguaje de programación?

Al igual que las personas nos comunicamos entre nosotras utilizando un lenguaje (por ejemplo Español o Inglés), un lenguaje de programación permite a las personas comunicarse con los ordenadores para indicarles lo que tienen que hacer. Una persona que quiere que el ordenador realice una determinada tarea escribe un programa en un lenguaje de programación determinado, y el ordenador (utilizando ciertos traductores llamados compiladores e intérpretes) es capaz de realizar dicha tarea.

Desde la invención de las primeras máquinas de calcular hasta la actualidad, la evolución de los ordenadores ha ido acompañada del desarrollo de nuevos lenguajes de programación que permitan aprovechar la potencia de éstos de manera eficiente.

En este artículo pretendo dar una pequeña idea sobre la evolución de los lenguajes de programación, desde los primeros como FORTRAN o COBOL, hasta los más difundidos en la actualidad como C, Java o C#. No pretendo mencionar todos los lenguajes de programación - actualmente existen más de 2.500 - sino centrarme en los que considero que han sido más relevantes e influyentes en el mundo del desarrollo de software.

Los primeros lenguajes

En la década de los 40 empezaron a surgir los primeros lenguajes de programación de ordenadores. Estos primeros lenguajes (llamados lenguajes Ensamblador) estaban basados en símbolos o nemónicos que se correspondían directamente con instrucciones de código máquina (el código que es capaz de interpretar un ordenador sin necesidad de un intérprete o traductor).

En 1957 aparece el lenguaje Fortran (siglas de FORmula TRANslator), el primer lenguaje de alto nivel ampliamente difundido y utilizado a nivel mundial. El primer compilador de Fortran fue desarrollado por un equipo de IBM liderado por John W. Backus. Inicialmente Fortran fue muy utilizado en el mundo científico y en alplicaciones militares, y se escribieron multitud de librerías matemáticas para cálculo numérico, algunas de las cuales siguen utilizándose hoy en día.

Ya en 1960 aparece LISP, un lenguaje idóneo para crear programas de inteligencia artificial porque utilizaba conceptos de programación funcional y recursividad. Aunque no es muy utilizado para el desarrollo de aplicaciones empresariales, LISP sigue siendo utilizado hoy en día en entornos docentes (yo mismo lo utilizo en una asignatura en la que se enseñan diversos paradigmas de programación).

También en 1960 aparece COBOL, un lenguaje preparado para procesar grandes cantidades de información. Esto hizo que fuese ampliamente adoptado en bancos y grandes organizaciones que siguen utilizándolo hoy en día.

En 1964 se crea el lenguaje BASIC (Beginner's All-purpose Symbolic Instruction Code), especialmente diseñado para enseñar a programar a principiantes. BASIC es el lenguaje que muchos (entre los que me incluyo) utilizamos para hacer nuestros primeros pinitos en el mundo de la programación, cuando desterramos nuestros viejos ordenadores Comodore-64 sustituyéndolos por el recién aparecido Amstrad CPC 464 y su flamante unidad de cinta (que después de leer un par de veces cada cinta era incapaz de volver a hacerlo… qué tiempos aquellos!). Ya en las primeras versiones de MS-DOS (el primer sistema operativo de Microsoft) se incluía un intérprete de BASIC.

Los lenguajes C y Pascal

El lenguaje Pascal aparece por primera vez en 1971, diseñado por el profesor Niklaus Wirth con el objetivo de facilitar el aprendizaje de la programación a sus alumnos. Pascal fue muy utilizado en la década de los 80 y los 90, y es el precursor de lenguajes como Delphi.

En 1972, Kenneth L. Thompson y Dennis M. Ritchie crean el lenguaje C en los laboratorios Bell. Se llama lenguaje C porque proviene de uno anterior llamado lenguaje B, que a su vez provenía del lenguaje BCPL. En mi opinión, el lenguaje C ha sido el lenguaje de más
repercusión en la historia de los ordenadores, y su sintaxis ha servido como punto de partida para muchos de los lenguajes de programación actuales como Java, C++ o C#. Hoy en día sigue siendo muy utilizado en multitud de aplicaciones, incluido el sistema operativo Linux, cuyo núcleo está escrito en su mayor parte en lenguaje C.

Los lenguajes Orientados a Objetos

A finales de la década de los 80 se popularizó un nuevo paradigma de programación denominado Programación Orientada a Objetos. Se trataba de una nueva forma de programar que hacía más fácil escribir y mantener código, porque se asemejaba más con la forma de pensar del cerebro humano. Pronto los lenguajes evolucionaron a sus respectivas versiones orientadas a
objetos. Así nació en 1986 el lenguaje C++ de manos de Bjarne Stroustrup, que partía del lenguaje C y le añadía la posibilidad de trabajar con objetos. Nace también en 1986 el lenguaje Delphi (en sus principios denominado Object Pascal), como una evolución de Pascal para incluirle características de orientación a objetos.

El lenguaje Java

He dedicado un apartado de este artículo al lenguaje de programación Java por la importancia que tiene actualmente en el mundo del desarrollo de software en general.

Java es un lenguaje orientado a objetos diseñado en 1990 por James Gosling y Patrick Naughton, de la empresa Sun Microsystems. El origen del nombre “Java” es bastante curioso, se rumorea que sus creadores discutían sobre cómo llamar al lenguaje mientras tomaban café, y al final les
gustó el nombre de la marca del café que tomaban, el café “Java”. Su desarrollo se realizó siempre con un concepto en mente: “Write Once, Run Anywhere”. Esto significa que Java se diseñó pensando en que un programa escrito en este lenguaje pudiese ser ejecutado en cualquier máquina, no sólo ordenadores, sino también cualquier dispositivo electrónico como calculadoras, dispositivos móviles, portátiles, etc. Esta idea de un len
guaje universal ya había sido abordada por el lenguaje C y su estandarización ANSI, pero la realidad es que no se consiguió hasta la llegada de Java.

En la actualidad el uso de Java ha sido muy impulsado por la amplia influencia de Internet, debido a la universalidad de Java por la capacidad de sus programas para ser ejecutados en cualquier tipo de máquina.



Evolución de los Lenguajes de Programación.

Fuente: Wikipedia

Los lenguajes más utilizados actualmente

En la actualidad varios son los lenguajes de programación más utilizados. A pesar de su antigüedad, el lenguaje C sigue siendo muy utilizado, sobre todo en aplicaciones relacionadas muy directamente con el hardware (software industrial, etc.). El propio sistema operativo Linux está escrito en su mayor parte en lenguaje C. El lenguaje C++ también sigue siendo muy utilizado, sobre todo en aplicaciones de escritorio orientadas al sistema operativo Windows.

El lenguaje COBOL también se utiliza mucho, sobre todo en entidades bancarias y grandes empresas con sistemas mainframes para las que la fiabilidad del sistema es un factor clave, y los costes y riesgos de migración a otros lenguajes son hoy por hoy inasumibles. Al contrario de las creencias populares que afirman que se trata de un lenguaje obsoleto y no utilizado, algunos lo plantean como una buena alternativa para aquellos que buscan empleo.

Para consultas a bases de datos relacionales, el lenguaje SQL es el estándar indiscutible. Toda base de datos relacional que se precie debe permitir realizar consultas en este lenguaje.

Para el desarrollo de aplicaciones orientadas a Internet, el lenguaje Java y los lenguajes de la plataforma .Net de Microsoft (incluidos Visual Basic.Net y C#) se reparten la mayoría del mercado.

Existen otros lenguajes que cada vez cobran más importancia, tales como Ruby, Perl, Phyton o PHP. Asimismo, el lenguaje Javascript (no confundir con Java) también está jugando un papel importante en el desarrollo de aplicaciones, impulsado por la amplia difusión de Internet y tecnologías emergentes como Ajax para la creación de interfaces ricas de usuario (RIA: Rich Application Interface).

Según www.langpop.com, sitio especializado en la medida de la popularidad y el uso de los lenguajes de programación, el siguiente gráfico muestra los lenguajes más populares en la actualidad:


Distribución de lenguajes de programación según su popularidad

Fuente: http://langpop.com/

El Futuro

Es indiscutible que la universalización del acceso a la información que ha permitido Internet está cambiando la mayoría de las cosas, incluida la forma en la que los seres humanos interaccionamos entre nosotros y con nuestro medio. Los lenguajes de programación de ordenadores no son una excepción, y se verán directamente influidos por la evolución de la Web, y de las grandes empresas que están consolidándose como los líderes en el mercado de la tecnología de la información. Tecnologías emergentes como el cloud computing, los entornos virtuales, los lenguajes visuales que permiten programar sin escribir ni una línea de código, o las tendencias en la mejora de la experiencia de usuario en aplicaciones web con tecnologías como Ajax, afectarán también de manera importante a la forma en la que los seres humanos trasmitimos a los ordenadores lo que queremos que hagan.

El 20 de Abril de 2009 se anunció la compra de Sun Microsystems por parte de Oracle. Muchos afirman que esta compra transformará la industria de las Tecnologías de la Información, por lo que es probable que el futuro de los lenguajes de programación (incluido por supuesto Java, propiedad de Sun Microsystems) se vea también, de algún modo, afectado por este evento.

Referencias


33 comentarios:

Unay dijo...

Excelente post, muy didáctico.

David dijo...

"Existen otros lenguajes que cada vez cobran más importancia, tales como Ruby, Perl, Phyton o PHP"

Mmmmm. Discrepo un poco en este punto. Estos lenguajes tienen *mucha* importancia desde hace bastante tiempo, me aventuraría a decir que más que Java.

jesus dijo...

Hombre david tanto o mas que java no. Estoy deacuerdo en que PHP es el rey indiscutible en portales web, perl en internet tuvo su tiempo en la epoca de los CGI, pero ya paso y perl cada vez tiene menos importancia en linux. Ruby siempre ha sido el esperado pero todavia se le espera y python esta cogiendo su nicho de mercado en el escritorio linux, pero hoy por hoy java es el rey en entornos coorporativos, tiene su nicho en aplicaciones de escritorio y cada vez mas importancia en sistemas empotrados como telefonos moviles, por ponerte un ejemplo el ndk de Android es java.

peyrona dijo...

Java no es una marca de café, es como se dice café en leguaje de la calle en EE.UU.
"Lets hava a java" == "tomemos un café"

Anónimo dijo...

Saludos:

Una aclaración Delphi NO es un lenguaje es un IDE (entorno integrado de desarrollo). El lenguaje sobre el que se programa en este IDE SI es Object Pascal que es una variante orientada a objetos del lenguaje Pascal. Delphi no nació en 1986 creo recordar que fue alrededor de 1994 o 1995.

Por lo demás excelente Post

chuso dijo...

"Para el desarrollo de aplicaciones orientadas a Internet, el lenguaje Java y los lenguajes de la plataforma .Net de Microsoft (incluidos Visual Basic.Net y C#) se reparten la mayoría del mercado."

Hombre... eso depende de lo que entiendas por aplicación orientada a Internet. Las hay en escritorio y en el navegador, como por ejemplo para gestionar el email (Outlook vs GMail).

La mayoría de aplicaciones orientadas a Internet están en el navegador, y ahí también es el rey PHP:
* Foros
* Tracs
* Gestión de proyectos
* CRM
* Email
* etc...
Son aplicaciones, con interfaz en HTML en lugar de toolkits gráficos de escritorios.

Lo dicho, PHP solito se merienda a Java y a .NET en aplicaciones de Internet :)

chuso dijo...

¡Ah! Por lo demás, muy buen artículo. Ciertamente didáctico como ha dicho Unay :)

Sergio dijo...

Muy buen post, solo una aclaracion Java es el lugar de donde proviene el café en USA.

Quique dijo...

Otra precision. Java es simplemente un tipo de cafe, como son a nivel mas general del tipo Robusta (Colombia, por ejemplo) o Arabiga (Africa).

Anónimo dijo...

Un detalle para avivar más la disputa php / java, ¿cuántas aplicaciones de banca electrónica o entidades financieras, o intranets de grandes corporaciones están hechos en PHP? No tiene sentido comparar lenguajes, dado que cada uno tiene su propio ámbito. O por decirlo de otra manera, una cosa es un portal o web pública, y otra es una aplicación web. Cada lenguaje encaja según su objetivo.

Manuel Pereira dijo...

David, estoy de acuerdo en que lenguajes como PHP tienen mucha importancia, sobre todo en aplicaciones de internet (incluidas no sólo web's públicas, sino también CRM's en intranets corporativas).
Como dice Jesus, java es el rey en entornos corporativos (aplicaciones de gestión sobre todo en entornos web). Los lenguajes propios de la plataforma .Net tienen su mayor nicho en aplicaciones de escritorio (sobre todo Windows, a pesar de Mono).
Estoy de acuerdo con vosotros en que PHP tiene bastante más importancia de la que puede intuirse por el artículo, sobre todo en aplicaciones de Internet. Sin embargo, hablando de aplicaciones web (incluidas las de gestión), existen muchas más realizadas en la plataforma Java/J2EE.
Respecto al tema del café, la verdad es que con lo que decís me entran dudas sobre la procedencia.
Me alegro de que os haya gustado, en octubre quiero escribir sobre la historia de los sistemas operativos.

Anónimo dijo...

ni una palabra sobre smalltalk como el primer lenguaje puramente orientado a objetos [además de haber influido en la creación de algunos lenguajes que se citan aquí]... lamentable olvido.

Desert69 dijo...

eso último venía a decir: hacer historia de lenguajes de programación pasando por el paradigma de objetos sin nombrar a Smalltalk es como nombrar la programación web sin los cgi...

Skinner dijo...

Y ya que nombramos a Smalltalk, no estaría de más comentar de pasada Objective-C, base de NextSTEP, OpenSTEP y Mac OS X.

Y lenguaje que hizo posible un juego tan reseñable como fue Quake.

Un saludo.

Carisan dijo...

¿Ni una referencia a la programación funcional (Haskell, OCaml...)?¿Ni siquiera en "el futuro"?

Manuel Pereira dijo...

Anónimo, Desert69, tenéis razón con lo de Smalltalk, craso error no mencionarlo, sobre todo cuando fué el lenguaje con el que en su dia aprendí programación orientada a objetos (Utilizando el entorno VisualAge de IBM).

Manuel Pereira dijo...

Carisan, aunque no he mencionado explícitamente el paradigma de programación funcional, si que he hecho referencia a LISP (que tiene bastante de funcional, aunque no es funcional puro como Haskell).
Respecto a mencionarlos en "el futuro", personalmente tengo serias dudas sobre que estos lenguajes lleguen a desempeñar un papel importante en el futuro del desarrollo de software (fuera del entorno educativo).

Hay muchos otros lenguajes y eventos que me gustaría haber mencionado, pero lamentablemente tenía limitación en la extensión del artículo.

Pablo Handler dijo...

Si se me permite mi intervención como viejo programador amateur, he aquí mi historia personal de lenguajes:

Fortran II
Focal
Basic
Fortran IV
MSBasic
TurboBasic
Visual Basic
JavaScript
...
(jubilado)

favrycio dijo...

Como programador se que existen "n" cantidad de lenguajes de programacion y tengo colegas que medio escuchan de un lenguaje se lanzan a hacer el tipico "hola mundo" para aprender un nuevo lenguaje, pero yo personalmente creo que debes escojer un lenguaje y estudiarlo a fondo, yo empeze a programar en GWBasic, luego DBase, de ahi el salto a C, C++, de ahi otro salto a Visual Basic (3 años), y se que aun me faltan cosas por aprender de ese lenguaje, aunque los gurus digan que es obsoleto y que ya paso a la historia le cuento que si tienen un bajo presupuesto y poco tiempo Visual Basic es si no la mejor opcion, actualemte programo en Java Swing, J2EE, JQuery (javascrip), html, css, y cada ves se necesita saber mas, pero por experiencia uno debe centrase en un solo lenguaje para poder decir que se es bueno programando

Hernán dijo...

Muy bueno el post!
Yo comencé programando en Basic, de ahí salté al Clipper y luego a PHP junto a Javascript, Ajax.

Ojalá que los lenguajes sean cada vez más intuitivos.

Angel P. dijo...

Cada lenguaje en su respectivo lugar...
Java. El Rey de los lenguajes si nos concentramos en el número de aplicaciones implementadas en este lenguaje.
PHP. El Rey de las aplicaciones Web. No tiene parangón con ningún otro.
C. El Padre de Java (es solo una expresión) y de Linux. ¿Qué más se puede decir? Rey honorífico.
COBOL. El viejo COBOL es el lenguaje más viejo más utilizado de la actualidad. Probablemente haya más líneas de código en COBOL que en Java. Según cierto estudio, más que cualquier otro lenguaje. Este es el Rey de los lenguajes desde el punto de vista de las líneas de código. O simplemente, el verdadero Rey.

Claudio Gonzalez Vera dijo...

"Chuso"...me parece que el unico lenguaje que conoces para web es PHP, deberias profundizar un poco mas y balancear lo que te da .NET por ejemplo. Te aseguro que una aplicacion hecha en ASP.NET se desayuna a PHP en facilidad, conceptualizacion y limpieza a la hora mantener y "pensar" en lo verdaderamente importante que es lo logica del negocio.

chuso dijo...

Claudio, he desarrollado webs en PHP, Ruby on Rails y Python. De .NET sólo tengo el gusto de haber trasteado un poco con Mono (Implementación libre de .NET).

Me ha parecido un poco osada tu aseveración. Permíteme que te diga algo: PHP es un lenguaje muy versátil. Por supuesto puedes programar verdaderos horrores, pero ello no significa que no puedas hacer una aplicación web totalmente orientada a objetos, empleando patrones de diseño, tests unitarios, frameworks de soporte, etc.

Alguna vez he leído esta frase: El que programa mal en PHP es porque no sabe programar bien. No creo que sea tan exagerado, pero se aproxima bastante a lo que trato de explicar.

A propósito, te aconsejo que le des una oportunidad a Frameworks como Zend o Symfony. No tiene nada que ver un código "profesional" en PHP, con esos tutoriales de spaguetti code que tanto abundan en Internet (Y en los que creo que tú te basas, porque si no no se explica lo que has dicho).

¿.NET tiene el patrón MVC por defecto? No, no lo tiene (Al menos cuando lo probé). PHP tampoco. Con los dos lo puedes implementar o "instalar", pero entonces ¿de qué depende la facilidad, limpieza y abstración a la que haces referencia? ¿Del lenguaje o del programador? Por supuesto, del programador.

Una última cosa: La única gran diferencia que recuerdo de .NET respecto a PHP era que .NET parecía abstraer las aplicaciones web como si fueran de escritorio al estar dirigido por eventos (Que alguien me corrija si me equivoco), y eso es facilísimo de lograr en PHP.

Bueno, también están los ¿webforms?, concepto que me parece un paso atrás y que creo que se torna innecesario con el patrón MVC.

Perdón por el ladricho Manuel!! :)

Jokantaro dijo...

Muy buen post, muy didáctico y no apto para puretas sin vida social :)

Nos vemos por clase de IA!

Manuel Pereira dijo...

Ahí va un poquito de "mi historia" en el uso de lenguajes de programación:
- Comencé con el Basic allá por 1988.
- Enseguida empecé a programar en C en 1989 (a la edad de 11 años), gracias a un curso en fascículos que me regaló mi padre.
- En 1994 hice mis primeras decompilaciones de virus en Ensamblador (por ejemplo, el barrotes), y comencé con rutinas de parcheos de interrupciones para el teclado y el timer (Gracias capitán Norton!).
- A los 15 años (en 1995)hacía pequeños juegos de ordenador de esos en 320x200 con 256 colores, y empecé a utilizar Ensamblador del 8086 para acelerar las rutinas de los gráficos (el clipping de las texturas).
- También en 1995 hice mis pinitos con Pascal y más tarde con Delphi.
- En 1997 programé en Ensamblador del Z80.
- En 1998 hice mis primeros pinitos con Visual Studio en C++
- En 1998 programé en LISP, Prolog y Smalltalk para la universidad
- En 1999 comencé mis primeros programas en Java
- En 2001 comencé a probar C# y VB.net
- En 2002 trasteé un poco con PHP
Desde el 2000 hasta la actualidad en lo que más he programado es en Java, aunque he realizado algunos desarrollos en C, C++, C#, Delphi y este mismo año en Ensamblador para diversos microcontroladores

Luis Noguera dijo...

Amigo esta historia "no es una historia" pues obvias muchos lenguajes importantes entre ellos SmallTalk (Alan Kay) el único lenguaje verdaderamente objeto desarrollado por científicos durante los años setenta en el Palo Alto Research Institute de Xerox, te recomiendo la lectura de un excelente libro: Foundation of Programmingy

Javier dijo...

Tambien creo que el articulo no valora justamente el papel del paradigma funcional, no solo de cara al futuro con nuevos lenguajes cada vez mas funcionales que esta claro que estan sobrepasando el ambito educativo(scala,clojure,haskell)
Tambien hay que tener en cuenta que conceptos del paradigma funcional han sido recogidos por muchos lenguajes actuales y ya se dan casi por fundamentales en un lenguaje. Por ejemplo las closures en python, ruby, perl y javascript estan directamente adoptadas de lisp y scheme. Estos lenguajes acogen otros conceptos de la programacion funcional.
De hecho yo me atreveria a decir que el paradigma funcional es el futuro de la programacion al igual que fue su origen.

Natán dijo...

Muy bueno ;-)

Antol dijo...

Articulo muy (ñoño) inocente, le falta investigación, parece mas una tarea de colegio.

Anónimo dijo...

Estoy con Antol, si vas a escribir sobre la historia de los Lenguajes de Programación, deberías haber investigado algo más, planificando tu trabajo, y haciendo un pequeño diagrama cronológico de los lenguajes más relevantes.

Estoy contigo en que Java por un lado y PHP por el otro, se llevan la palma (quién dude de esto, es que se ha movido poco por las empresas), pero estás hablando de Historia y has olvidado grandes lenguajes muy importantes en los que hoy se basan los más populares.

Además he hechado en falta que para los no iniciados, que seguro que alguno ha leido tu articulo, hayas dejado clara la diferencia entre lenguaje de programación y lenguaje de scripting, y lenguaje de marcado, y metalenguajes, y...

En mi opinión, si te propones redactar un artículo de este tipo deberías documentarte un poco (o un mucho) más, como por ejemplo pregúntale a Google de dónde viene JAVA y te dirá esto:
"El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de cafe caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos .class que genera el compilador, son en hexadecimal, 0xCAFEBABE. Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras."

Manuel Pereira dijo...

Gracias por vuestros comentarios.

Si he omitido ciertos datos o aspectos de los lenguajes de programación os aseguro que no ha sido por falta de información o documentación (y era consciente de la mayoría de las omisiones que mencionáis) , sino por dos motivos fundamentales:

1) La longitud del artículo estaba limitada, por lo que he preferido centrarme en mencionar los lenguajes que a mi entender (y según digo al principio del artículo) son los más relevantes, evitando el dar muchos nombres y confundir al lector citando cientos de lenguajes y datos concretos.

2) El público objetivo para el que del artículo es gente sin demasiados conocimientos tecnológicos a los que no quiero confundir con conceptos muy técnicos o diversas tipologías (como diferenciación entre tipos de lenguajes - scripting, marcado, ...- , o introducir más paradigmas de programación), así que a riesgo de pecar de simplista - o "ñoño/inocente" como dice Antol - he preferido centrarme en algunos lenguajes claves. Si quisiese escribir exhaustivamente sobre los lenguajes de programación no bastarían dos páginas, y no habría incluido mi comentario al principio del artículo: "no pretenden ser artículos rigurosos que traten de dar toda la información posible (con fechas exáctas, etc.), la intención es tratar de introducir de manera amena algunos conceptos y eventos clave sobre la historia de la informática"

Por supuesto que:
- Conozco otros paradigmas de programación aunque no los haya mencionado (imparto docencia en los paradigmas funcional y lógico).
- Conozco la importancia del PHP como lenguaje en la web, al igual que otros muchos que han surgido de la comunidad.
- Valoro Smalltalk como lenguaje orientado a objetos puro (aunque en mi opinión era un infierno programar en él).
- Conozco Haskell como ejemplo claro del paradigma de programación funcional puro (aunque insisto en que no le veo demasiado futuro fuera de entornos docentes).
- Conozco la existencia de otras teorías sobre la procedencia del nombre "Java", aunque como no quería mencionarlas todas por cuestión de espacio y por no dar demasiada información al lector, preferí obviarlas y mencionar la que creo más difundida.

Javier dijo...

Mmm aun teniendo en cuenta el objetico introductorio del articulo creo que quedarse en la oop como la ultima tecnologia y no apuntar la creciente influencia del paradigma funcional en los ultimos 10 años y en el futuro (con la correspondiente critica de las limitaciones de la oop) limita bastante una vision actual de la programacion. No tiene que ver con "saber" haskell sino con detectar la creciente influencia de los conceptos funcionales en historia reciente de la programacion.

Solo unos apuntes como ejemplos:
1.- Scala ha sido el lenguaje elegido por twitter para el backend en su ultima reestructuracion:
http://www.artima.com/scalazine/articles/twitter_on_scala.html
2.- MapReduce, la tecnologia que esta debajo del tratamiento de enormes cantidades de datos de Google esta basada en conceptos funcionales
http://labs.google.com/papers/mapreduce-osdi04-slides/index.html
3.- FlightCaster usa clojure en su tratamiento AI de la prediccion de retrasos de vuelos:
http://www.datawrangling.com/how-flightcaster-squeezes-predictions-from-flight-data

programación a medida Cadiz dijo...

Siempre es bueno estar informado, este artículo es muy interesante.