PRINCIPALES LENGUAJES DE PROGRAMACION

ABC

ABC es el resultado de un proyecto del CWI (un centro de investigación holandés de carácter oficial). En el sitio web de CWI hay intérpretes ABC para distintas plataformas (Unix, Macintosh, MS-DOS y Atari-ST). También está disponible el código fuente de la versión Unix.
ABC pretende ser un sustituto de BASIC. Como éste, fue pensado para principiantes, aunque su evolución posterior lo hace también adecuado para programadores avanzados. Es muy fácil de aprender y de usar, y el código es compacto pero legible (al menos eso dicen). Tiene tipos de datos de muy alto nivel: números (enteros exactos de cualquier tamaño y números no exactos), textos (strings de cualquier longitud), listas(sus elementos tienen que ser del mismo tipo y siempre están ordenados), compuestos (equivalentes a registros sin nombres de campo) ytablas (son listas con índices o claves). Como sucede con otros intérpretes, ABC es, además de un lenguaje de programación, un entorno interactivo de trabajo.
Un defecto de ABC es que los textos no pueden contener más que los caracteres US-ASCII (nada de acentos, eñes, etc.). También se le ha criticado la falta de extensibilidad (algo común a muchos lenguajes, me parece).
El intérprete va acompañado de alguna información, pero el verdadero manual se vende como libro independiente.




Ada
 
El lenguaje Ada fue el resultado de un concurso convocado por el Ministerio de Defensa de los Estados Unidos para disponer de un solo lenguaje para todas sus necesidades. Este lenguaje debía ser útil para fines muy diversos, como programación de sistemas, inteligencia artificial, y sobre todo, aplicaciones en tiempo real (programas que controlan desde el tráfico hasta la trayectoria de un misil) y sistemasincrustados (en inglés, embedded; pequeños ordenadores contenidos en vehículos u otros aparatos). La primera documentación de Ada data de 1979, y el primer estándar, de 1983 (Ada 83). El último estándar, Ada 95, incorpora OOP e interfaces para C, Fortran y Cobol.
Ada es un sucesor de Pascal, y el código fuente tiene un aspecto parecido, aunque es mucho más potente y flexible. El estándar 95 cumple todos los principios de ingeniería de software ampliamente reconocidos hoy en día (fiabilidad, portabilidad, modularidad, eficiencia, tipos de datos abstractos, programación concurrente, programación orientada a objetos, etc.).
El nombre del lenguaje es un homenaje a Ada Lovelace, hija de Lord Byron y ayudante de Charles Babbage, quien es considerada como la primera programadora (hombre o mujer) de la historia.



APL y J

El profesor canadiense Ken Iverson, cuando trabajaba en la Universidad de Harvard, inventó una notación personal para describir procedimientos matemáticos (inicialmente, por tanto, no pretendía ser un lenguaje de programación). Esta notación, concisa y sin ambigüedad, fue descrita por el propio Iverson en 1962 en el libro A Programming Language, (de ahí las iniciales APL) y durante la década de los 60, IBM desarrolló el primer intérprete.
APL es sobre todo conocido por su concisión. Por ejemplo, la sentencia 10 ? 10 muestra por pantalla los números del 1 al 10 ordenados aleatoriamente:
Otro de los puntos fuertes de APL es su capacidad para manejar conjuntos de datos como un todo, evitando en muchos casos la necesidad de bucles. Normalmente se trata de un lenguaje interpretado, proporcionando un entorno interactivo y flexible.
APL ha sido criticado por su falta de legibilidad, lo que hace difícil modificar programas antiguos (hace, por ejemplo, amplio uso del goto, es decir, de su forma particular). Otro defecto importante deriva del uso de símbolos propios (letras griegas y otros caracteres aún menos convencionales), lo que, además de dificultar la escritura (al no aparecer en los teclados normales), hace que el código sea poco portable, ya que cada versión concreta de APL almacena a su modo el código fuente (y eso, sin contar, con las habituales diferencias de una implementación a otra). El propio Iverson, junto con Roger Hui, ha creado un nuevo lenguaje (J), derivado de APL, que usa sólo caracteres ASCII.

AWK

AWK (a menudo escrito enteramente en minúsculas: awk), es un lenguaje descrito en un libro de Aho, Kernighan y Weinberger (de los cuales toma las iniciales). Está especialmente indicado para el análisis y procesamiento de textos de acuerdo con patrones, haciendo uso de expresiones regulares.
Perl se puede considerar un descendiente suyo, heredando todas sus capacidades (e incluyendo muchas otras) y parte de su sintaxis. A pesar de eso, hay algunas razones que pueden inclinarnos a usar AWK en vez de Perl, como su mayor simplicidad, la mayor regularidad de su sintaxis y su menor tamaño.


BASIC

El lenguaje BASIC fue creado en 1964 por los norteamericanos John Kemeny y Thomas Kurtz, en el Dartmouth College. Su intención era diseñar un lenguaje adecuado para principiantes. No tenía, por tanto, pretensiones de gran potencia, pero era sencillo de aprender y permitía abordar pronto pequeños proyectos. BASIC son las iniciales de Beginner's All-purpose Symbolic Instruction Code.
El BASIC tuvo un gran éxito; se usó ampliamente en la enseñanza y también en la programación profesional. Sin embargo, el BASIC original era poco estructurado, lo que hizo que recibiera muchas críticas, especialmente como lenguaje de aprendizaje, por favorecer malos hábitos de programación. Lo curioso es que en lugar de desaparecer, fueron surgiendo versiones nuevas de BASIC, con características más próximas a los lenguajes modernos, y hoy en día Visual Basic (de Microsoft) es uno de los lenguajes más utilizados en Windows.


BETA

BETA es un lenguaje de programación orientado a objetos, desarrollado inicialmente en varias universidades escandinavas. Está relacionado con Simula (también de origen escandinavo), que fue el primer lenguaje orientado a objetos.


C y C++

C fue creado en los Bell Telephone Laboratories al principio de los 70, por Dennis M. Ritchie. Su nacimiento estuvo ligado al del sistema operativo Unix, que se desarrolló paralelamente. Sus características debían ser: eficiencia (o sea, rapidez en la ejecución de los programas), potencia (permite explotar a fondo las posibilidades de la máquina) y portabilidad. Unix fue reescrito en C, lo cual supuso un gran éxito de este lenguaje, a partir del cual se convirtió en uno de los más extendidos..
A C se le ha criticado que los programas suelen ser poco legibles y propensos a errores. Por contra, casi nadie le discute su potencia y su gran implantación, que a menudo lo convierten en la elección inevitable para proyectos colectivos.
A partir de 1979, Bjarne Stroustrup, de AT&T, empezó a trabajar en un descendiente de C con soporte de orientación a objetos y otras mejoras, que sería conocido como C++ (la primera versión, interna de AT&T, data de 1983).


COBOL

COBOL (COmmon Business Oriented Language, lenguaje común orientado a los negocios) fue desarrollado en 1959 por un comité de CODASYL (Conference on Data Systems Languages). A pesar del tiempo transcurrido, sigue siendo bastante usado en el ámbito de la gestión empresarial. Como es habitual en los lenguajes que perduran después de mucho tiempo ha sufrido distintas modificaciones de acuerdo con las nuevas tendencias.
COBOL es considerado un lenguaje de fácil aprendizaje. Los programas deben contener cuatro secciones: identificación, entorno, datos y procedimientos. Una herencia de sus lejanos orígenes es el uso de una convención basada en las columnas (por ejemplo, las sentencias deben estar entre las columnas 12 y 72), aunque versiones modernas pueden usarse de otra forma.


Dialect

Dialect es un lenguaje diseñado por la empresa Aristar, especializada en aplicaciones para centros médicos. Creado en principio como una versión de Basic, comparte con éste la facilidad de uso, pero es mucho más avanzado. Tiene tipos de alto nivel, como los frames o tablas con claves (como ABC) o arrays (listas heterogéneas y dinámicas como en Lisp) y soporta programación orientada a objetos. También tiene soporte para desarrollar aplicaciones GUI.


Euphoria

Euphoria es un lenguaje interpretado (en realidad, seudo compilado) de gran velocidad. Sus características más importantes son la sencillez de aprendizaje y facilidad de uso. Su sintaxis es parecida a Pascal, aunque es más flexible y simple. Utiliza ampliamente un tipo de datos parecido a la lista de Lisp o Logo, llamado secuencia (sequence). Euphoria es propiedad de la empresa canadiense RDS (Rapid Deployment Software).


Forth

Forth fue creado por Charles Moore en los años 60 desarrollando herramientas especializadas para varias aplicaciones. Fue formalizado como lenguaje para la automatización de telescopios cuando Moore trabajaba en el National Radio Astronomy Observatory, en 1970. Forth suele considerarse un lenguaje para aplicaciones científicas, sin alejarse mucho del campo en que se fraguó. Se considera especialmente adecuado para sistemas incrustados (en inglés, embedded).
Forth cuenta entre sus ventajas el ser pequeño (ocupa poca memoria), rápido y extensible. Y entre sus puntos débiles, que tiene una sintaxis extraña que lo hace difícil de aprender y posiblemente de usar (aunque sobre esto hay, como es natural, distintas opiniones). Una característica importante es que es un lenguaje basado en el uso de una pila (stack). Por ejemplo, la sentencia equivalente a PRINT 5-3 (de BASIC) es 5 3 - ., donde 5 pone el número 5 en la cima de la pila, 3 pone el número 3 arriba del 5, - resta el elemento de la cima del que está debajo, elimina ambos operandos y pone en la pila el resultado, y . muestra el número de la cima y lo elimina.
Como ejemplo de las posibilidades de Forth, lo siguiente es la definición de una función para calcular el máximo común divisor de dos números, basada en el algoritmo de Euclides


Fortran

FORTRAN (de FORmula TRANslation) fue creado por John Backus a mediados de la década de los 50 para la IBM, convirtiéndose en el primer lenguaje de programación de alto nivel. Fue pensado para aplicaciones matemáticas y científicas y sigue siendo muy usado en ese terreno.
Los dos estándares principales son FORTRAN 77 y Fortran 90 (a partir de esta versión se empezó a usar el término con minúsculas). El estándar 90 incorporó novedades importantes, como notación de vectores, localización dinámica de memoria, tipos derivados y sobrecarga de operadores, la mayoría de las modernas estructuras de control, etc.


Haskell

Haskell es un lenguaje funcional de muy alto nivel, con un código conciso y claro. Pone énfasis en el qué más que en el cómo, permitiendo una programación rápida. No es adecuado para aplicaciones en las que es necesaria una gran velocidad de ejecución así como cuando hay poca disponibilidad de memoria o hace falta implementar algoritmos a bajo nivel.


Icon

Icon es un lenguaje de muy alto nivel, diseñado hace unos veinte años por Ralph E. Griswold y colaboradores en el Department of Computer Science de la Universidad de Arizona. Griswold ya tenía experiencia previa en el diseño de lenguajes de alto nivel, pues fue uno de los creadores de SNOBOL, y de él tomó algunas características para Icon.
Icon destaca en el tratamiento de textos, permitiendo una programación rápida y concisa. Entre otros objetivos, puede ser usado para análisis y formateo de textos, inteligencia artificial, matemáticas simbólicas y programación de prototipos. Las últimas versiones incluyen también gráficos y facilidades GUI.


Java

Java es un lenguaje muy moderno (se presentó en 1995) desarrollado por la empresa Sun Microsistems al parecer su historia es bastante curiosa, iniciándose como un lenguaje para el control de electrodomésticos (con el nombre de Oak). Cuando el proyecto estaba prácticamente abandonado, Bill Joy, cofundador de Sun, viendo Internet como el terreno idóneo para competir con Microsoft, retomó este lenguaje, que con los cambios pertinentes se transformó en Java.
Java es famoso por las applets, pequeñas aplicaciones gráficas que se insertan dentro de una página web. Uno de sus puntos fuertes es su capacidad multiplataforma, que permite que el mismo código seudo compilado se ejecute en cualquier sistema (cualquier sistema con soporte Java, claro).
En cuanto al lenguaje en sí, es un descendiente de C++, aunque intenta corregir muchos de sus defectos. Está totalmente orientado a objetos e incluye numerosas bibliotecas estándar.


Lisp

Lisp fue diseñado a finales de los años 50 por el pionero de la Inteligencia Artificial John McCarthy. Aunque (a diferencia de otros lenguajes posteriores, como Prolog) no contiene mecanismos de inferencia intrínsecos, éstos son fáciles de implementar. La estructura de datos esencial en Lisp es la lista, una secuencia ordenada de elementos que pueden ser átomos (funciones, nombres o números) u otras listas. Las listas son esenciales en IA debido a su flexibilidad. Y desde luego son esenciales en Lisp, cuyo nombre deriva, precisamente de «List Processing».
El Lisp original sólo tenía unas cuantas funciones de manipulación de listas con las cuales se debía ir construyendo otras funciones, cada vez de mayor complejidad. Las versiones actuales contienen muchas más funciones que facilitan la programación. Aunque existen muchas variantes, la llamada Commom Lisp sirve normalmente de referencia.


Logo

Logo es un lenguaje derivado de Lisp desarrollado a finales de los años 60 por Daniel Bobrow y Wallace Feurzeig, de Bolt, Beranek and Newman, Inc. y por Seymour Papert del Massachusetts Institute of Technology. Está concebido como un lenguaje apropiado para el aprendizaje y fue muy usado cuando se empezaron a introducir ordenadores en los centros de enseñanza. Su característica más conocida es el uso de los llamados «gráficos de tortuga», un sistema muy intuitivo de realizar gráficos.
Además de su interés como lenguaje educativo, Logo es apropiado para una amplia variedad de aplicaciones de inteligencia artificial y simulaciones. Comparte con Lisp el ser interactivo e interpretado, basado en funciones y en listas y usar ampliamente la recursividad. Por contra, elimina el uso exagerado de paréntesis anidados propio de Lisp y es más fácil de aprender.


Modula-2

A finales de los setenta, Niklaus Wirth, autor de Pascal, diseñó un nuevo lenguaje de programación llamado Modula-2. Modula-2 tiene muchos puntos en común con Pascal y corrige algunos de sus defectos. Como su nombre sugiere está basado en la programación modular. Es adecuado para el aprendizaje de la programación y también para proyectos reales de cualquier tamaño.


Modula-3

Modula-3 es otro miembro de la familia de lenguajes derivados de Pascal, creado a finales de los ochenta por las compañías DEC (Digital Equipment Corporation) y Olivetti. Incorpora nuevas facilidades para el manejo de excepciones, programación concurrente, programación orientada a objetos y recolección automática de basura.


Pascal

Pascal fue creado inicialmente por Niklaus Wirth como un lenguaje para la enseñanza de la programación al final de los años 60. Es un descendiente de Algol y a su vez influyó mucho en otros lenguajes posteriores, como Ada. Destaca por la claridad del código y por promover «buenos hábitos» de programación.
Pascal alcanzó una gran popularidad cuando la empresa Borland lanzó Turbo Pascal, un compilador para IBM-PC rápido y barato, que además introducía mejoras importantes al lenguaje. Su sucesor, también de gran éxito, es Delphi, una herramienta de programación visual basada en Object Pascal, una versión de Pascal con objetos.


Perl

Perl es un lenguaje de alto nivel escrito por Larry Wall y miles de voluntarios. La primera versión es del año 1988. Hereda características de lenguajes dispares, como AWK (del que puede considerarse sucesor), C o el shell de Unix. Aunque es muy potente y extenso, normalmente sólo hace falta usar una parte mínima de sus posibilidades, siendo fácil de aprender. Puede usarse para muchas tareas, siendo especialmente adecuado para el análisis y generación de textos y la administración de sistemas.
Perl se ha hecho famoso por ser muy usado en Internet, ejecutándose continuamente en miles de servidores. Es fácil encontrar montones de recursos sobre este lenguaje, que hoy en día está casi tan de moda como Java.


Prolog

Prolog parte de los trabajos, a principios de los 70, de Robert A. Kowalski, de la Universidad de Edimburgo, y Alain Colmerauer, de la Universidad de Aix-Marseille. Forma parte de un conjunto de lenguajes llamados lógicos, ya que implementan una lógica formal. Se dice que Prolog es adecuado para buscar soluciones de problemas que no sabemos resolver, mientras que la mayoría de los demás lenguajes (llamados imperativos) son más útiles cuando conocemos de antemano la solución (que hay que «explicar» con detalle según la gramática del lenguaje).
Prolog se extendió rápidamente por Europa y Estados Unidos, pero quizá lo que le dio más fama fue su elección en 1982 por parte de un programa japonés de investigación sobre ordenadores de quinta generación. Normalmente se considera un lenguaje ligado a la investigación sobre Inteligencia Artificial, aunque hoy en día se utiliza también en campos diversos, incluyendo finanzas, defensa o ingeniería.


Scheme

Scheme es un dialecto de Lisp creado a mediados de los 70 por Guy Lewis Steele Jr. y Gerald Jay Sussman, del MIT. Pone énfasis en la elegancia y simplicidad y es mucho más pequeño que la mayoría de versiones de Lisp. Es muy usado en ambientes académicos y de investigación.


Smalltalk

Smalltalk fue desarrollado en Xerox Parc (Palo Alto Research Center) bajo el impulso de Alan Kay durante la década de los 70. Inicialmente debía ser un lenguaje para un ordenador personal llamado Dynabook dirigido a todo tipo de usuarios, incluyendo niños. Debía ser, por tanto, un sistema con un entorno intuitivo y fácil de programar. Aunque el proyecto Dynabook nunca se completó, el lenguaje tomó vida propia y continuó su camino.
Es poco conocida la gran importancia que tuvo este desarrollo en la evolución de la informática. De él parten muchas de las ideas de los modernos interfaces de usuario, como el uso de gráficos, ratón, ventanas y menús desplegables. Se puede leer más sobre esto al principio de este documento.
Smalltalk es un lenguaje orientado a objetos puro (el mismo término, si no el concepto, fue inventado por Alan Kay) e incluye todos los conceptos claves, como clases, métodos, mensajes y herencia. Todo el programa es una cadena de mensajes enviados a objetos.


SNOBOL

SNOBOL fue diseñado en los Bell Laboratories por D. J. Farber, R. E. Griswold y F. P. Polensky a principios de los años 60. Se trata de un lenguaje de muy alto nivel orientado a la manipulación de cadenas de caracteres con rasgos muy avanzados. A pesar de que ejerció una influencia bastante importante (por ejemplo, en la formación del concepto de expresión regular), hoy en día apenas se utiliza y puede considerarse como un lenguaje histórico. R. E. Griswold desarrolló posteriormente Icon, que hereda algunas características de SNOBOL.