Programacion Rad
Programacion Rad
HISTORIA
En la dcada de 1940 fueron creadas las primeras computadoras modernas, con
alimentacin elctrica. La velocidad y capacidad de memoria limitadas forzaron a los
programadores a escribir programas, en lenguaje ensamblador muy afinados.
Finalmente se dieron cuenta de que la programacin en lenguaje ensamblador requera
de un gran esfuerzo intelectual y era muy propensa a errores.
En 1948, Konrad Zuse public un artculo acerca de su lenguaje de programacin
Plankalkl. Sin embargo, no fue implementado en su vida y sus contribuciones fueron
aisladas de otros desarrollos.
Entre algunos lenguajes importantes que fueron desarrollados en este perodo se
encuentran:
1943 - Plankalkl (Konrad Zuse), diseado, pero sin implementar durante medio siglo
1943 - el sistema de codificacin ENIAC.
1949 - 1954 -- una serie de conjuntos de instrucciones nemotcnicas, como la de
ENIAC, comenzando en 1949 con C-10 para BINAC (que luego evolucionara en
UNIVAC). Cada conjunto de instrucciones estaba destinado a un fabricante especfico.
LAS DCADAS DE 1950 Y 1960
En los cincuenta, los tres primeros lenguajes de programacin modernos, cuyos
descendientes an continan siendo utilizados, son:
FORTRAN (1955), creado por John Backus.
LISP (1958), creado por John McCarthy.
COBOL (1959), creado por el Short Range Committee, altamente influenciado por
Grace Hopper.
Otro hito a finales de 1950 fue la publicacin, por un comit Americano y Europeo de
cientficos de la computacin, de un nuevo lenguaje para algoritmos; el Reporte de
ALGOL 60 ("ALGOrithmic Language"). Este reporte consolid muchas ideas que
estaban circulando en aquel entonces, y proporcion dos innovaciones importantes para
los lenguajes de programacin:
Estructuras de bloques anidadas: las secuencias de cdigo y las declaraciones asociadas
se pueden agrupar en bloques sin tener que pertenecer explcitamente a procedimientos
separados;
mbito lxico: un bloque puede tener sus propias variables, procedimientos y
funciones, invisible al cdigo fuera de dicho bloque, por ejemplo, ocultamiento de
informacin.
Otra innovacin, relacionada con esto, fue cmo el lenguaje fue descrito:
Una notacin matemtica exacta, Backus-Naur Form (BNF), fue utilizada para describir
la sintaxis del lenguaje. Todos los subsecuentes lenguajes de programacin han
utilizado una variante de BNF para describir la porcin libre del contexto de su sintaxis.
Algol 60 influenci particularmente en el diseo de lenguajes posteriores, de los cuales
algunos se hicieron ms populares. Los grandes sistemas de Burroughs fueron
diseados para ser programados en un subconjunto extendido de Algol.
Las ideas fundamentales de Algol se continuaron, produciendo Algol 68:
la sintaxis y la semntica se hizo an ms ortogonal, con rutinas annimas, un sistema
de tipificacin recursiva con funciones de orden superior, etc.;
y no slo la parte libre del contexto, sino que tanto la sintaxis como la semntica del
lenguaje completo fueron definidos formalmente, en trminos de una gramtica de Van
Wijngaarden, un formalismo diseado especficamente para este propsito.
Las variadas pero poco usadas caractersticas de Algol 68 (por ejemplo, bloques
simultneos y paralelos) y su complejo sistema de atajos sintcticos y coerciones
automticas de tipo lo hicieron impopular entre los ejecutores y se gan una reputacin
de ser difcil. Niklaus Wirth sali del comit de diseo para crear el sencillo lenguaje
Pascal.
Algunos de los lenguajes importantes que fueron desarrollados en este perodo incluyen:
1951 - Regional Assembly Language
1952 - Autocode
1954 - IPL (precursor de LISP)
1955 - FLOW-MATIC (precursor de COBOL)
1957 - FORTRAN (primer compilador)
1957 - COMTRAN (precursor de COBOL)
1958 - LISP
1958 - ALGOL 58
1959 - FACT (precursor de COBOL)
1959 - COBOL
1959 - RPG
1962 - APL
1962 - Simula
1962 - SNOBOL
1963 - CPL (precursor de C)
1964 - BASIC
1964 - PL/I
1967 - BCPL (precursor de C)
1968-1979: ESTABLECIENDO PARADIGMAS FUNDAMENTALES
El perodo comprendido entre finales de 1960 y finales de 1970 trajo un gran
florecimiento de lenguajes de programacin. La mayora de los paradigmas de lenguajes
de programacin ms importantes y actualmente en uso se inventaron en este perodo:
Simula, inventado en la dcada de 1960 por Nygaard y Dahl como un superconjunto de
Algol 60, fue el primer lenguaje diseado para apoyar la programacin orientada a
objetos.
C, en principio un lenguaje de programacin de sistemas, fue desarrollado por Dennis
Ritchie y Ken Thompson en los Laboratorios Bell entre 1969 y 1973.
Smalltalk (mediados de los 70) proporcionaron un completo diseo de un lenguaje
orientado a objetos.
Prolog, diseado en 1972 por Colmerauer, Roussel y Kowalski, fue el primer lenguaje
de programacin lgica.
ML construy un sistema de tipos polimrfico (inventado por Robin Milner en 1973) en
el tope de Lisp, pionero en los lenguajes funcionales de programacin con tipado
esttico.
Cada uno de estos lenguajes gener toda una familia de descendientes, y los lenguajes
ms modernos cuentan al menos uno de ellos en su ascendencia.
En los aos 60 y 70 tambin suscit un debate considerable sobre los mritos de la
"programacin estructurada", que esencialmente significaba programacin sin el uso de
GOTO. Este debate estaba estrechamente relacionado con el diseo del lenguaje:
algunos lenguajes no incluan GOTO, lo que oblig a la programacin estructurada en
el programador. Aunque el debate se recrudeca acaloradamente en ese momento, casi
todos los programadores estn de acuerdo en que, incluso en lenguajes que ofrecen
GOTO, es una mala prctica de programacin usarlo, excepto en raras circunstancias.
Como resultado de ello, las generaciones posteriores de diseadores de lenguajes han
encontrado el debate sobre programacin estructurada tedioso e incluso desconcertante.
Algunos lenguajes importantes que se desarrollaron en este perodo fueron:
1968 - Logo
1969 - B (precursor C)
1970 - Pascal
1970 - Forth
1972 - C
1972 - Smalltalk
1972 - Prolog
1973 - ML
1975 - Scheme
1978 - SQL (inicialmente slo un lenguaje de consulta, posteriormente ampliado con
construcciones de programacin)
1978 - Modula-2
La dcada de 1980: consolidacin, mdulos, rendimiento[editar]
La dcada de 1980 fueron aos de consolidacin relativa en los lenguajes imperativos.
En vez de inventar nuevos paradigmas, se comenz a trabajar a partir de las ideas
inventadas en la dcada anterior. C++ combinaba la programacin orientada a objetos y
la programacin de sistemas. El gobierno de Estados Unidos estandariz Ada, un
lenguaje de programacin de sistemas destinado a ser utilizado por contratistas de
defensa. En Japn y en otras partes, se gastaron enormes sumas investigando los
llamados lenguajes de programacin de quinta generacin que incorporaban
construcciones de la programacin lgica. La comunidad de los lenguajes funcionales
llevaron a cabo la estandarizacin de ML y Lisp. La investigacin en Miranda, un
lenguaje funcional, con evaluacin perezosa, comenz a tomar fuerza en esta dcada.
Una nueva tendencia importante en el diseo de lenguajes era un mayor enfoque en la
programacin de sistemas a gran escala a travs del uso de mdulos, una organizacin a
gran escala de unidades de cdigo. Modula, Ada, y ML desarrollaron sistemas de
mdulos notables en la dcada de 1980. Los sistemas de mdulos eran relacionados con
frecuencia con construcciones de programacin genricas, que seran, en esencia,
mdulos parametrizados (vase tambin polimorfismo en programacin orientada a
objetos).
Aunque no aparecan nuevos paradigmas de lenguajes de programacin imperativos,
muchos investigadores expandieron las ideas de los lenguajes anteriores y las adaptaron
a nuevos contextos. Por ejemplo, los lenguajes de los sistemas Argus y Emerald
adaptaron la programacin orientada a objetos para sistemas distribuidos.
La dcada de 1980 tambin trajo avances en la implementacin de lenguajes de
programacin. El movimiento de RISC en la arquitectura de computadoras postulaba
que el hardware deba estar diseado para los compiladores ms que para los
programadores de ensamblador humanos. Con la ayuda de las mejoras en la velocidad
del procesador, permitiendo tcnicas de compilacin cada vez ms agresivas, el
movimiento RISC despert un mayor inters en la tecnologa de compilacin de los
lenguajes de alto nivel.
Las tecnologas de los lenguajes continuaron sobre estas lneas entrando en la dcada de
1990.
Algunos lenguajes importantes que se desarrollaron en este perodo son:
1980 - C++ (C con clases, el nombre cambi en julio de 1983)
1983 - Ada
1984 - Common Lisp
1984 - MATLAB
1985 - Eiffel
1986 - Objective-C
1986 - Erlang
1987 - Perl
1988 - Tcl
1988 - Mathematica
1989 - FL (Backus);
LA DCADA DE 1990: LA ERA DE INTERNET
El rpido crecimiento de Internet en la dcada de 1990 fue el siguiente gran
acontecimiento histrico para los lenguajes de programacin. Con la apertura de una
plataforma totalmente nueva para los sistemas informticos, Internet cre una
oportunidad adoptar nuevos lenguajes. En particular, el lenguaje de programacin Java
se hizo popular debido a su pronta integracin con el navegador web Netscape
Navigator, y varios lenguajes de scripting alcanzaron un amplio uso en el desarrollo de
aplicaciones personalizadas para servidores web. La dcada de 1990 no vio ninguna
novedad fundamental en los lenguajes imperativos, pero s mucha recombinacin y la
maduracin de viejas ideas. Esta era comenz la difusin de los lenguajes funcionales.
Una filosofa de conduccin grande era la productividad del programador. Surgieron
muchos lenguajes de aplicaciones de desarrollo rpido (RAD), los cuales usualmente
venan con un IDE, recolector de basura, y eran descendientes de lenguajes anteriores.
Todos estos lenguajes eran orientados a objeto. Estos incluan Object Pascal, Visual
Basic y Java. Java, en particular, recibi mucha atencin. Pero ms radicales e
innovadores que los lenguajes de RAD eran los nuevos lenguajes de script. Estos no
descendan directamente de otros lenguajes y ofrecieron nuevas sintaxis e incorporacin
ms liberal de otras caractersticas. Muchos consideran estos lenguajes de script ms
productivos que los lenguajes de RAD, aunque esto se debe a menudo a que es ms
difcil escribir y mantener largos programas que pequeos programas simples. Sin
embargo, no es menos cierto que los programas de script llegaron para convertirse en
los ms prominentes en la conexin con la Web.
1990 - Haskell
1991 - Python
1991 - Visual Basic
1991 - HTML (lenguaje de marcado de hipertexto)
1993 - Ruby
1993 - Lua
1994 - CLOS (parte del ANSI Common Lisp)
1995 - Java
1995 - Delphi (Object Pascal)
1995 - JavaScript
1995 - PHP
1996 - WebDNA
1997 - Rebol
1999 - D
TENDENCIAS ACTUALES
La evolucin de los lenguajes de programacin contina, tanto en la industria como en
investigacin. Algunas de las tendencias actuales incluyen:
2000 - ActionScript
2001 - C#
2001 - Visual Basic .NET
2002 - F#
2003 - Groovy
2003 - Scala
2003 - Factor
2005 - Scratch
2007 - Clojure
2009 - Go
2011 - Dart
2014 - Swift
Personas destacadas en la historia de los lenguajes de programacin[editar]
Joe Armstrong, creador de Erlang.
John Backus, inventor de Fortran.
Alan Cooper, desarrollador de Visual Basic.
Edsger W. Dijkstra, desarroll la estructura para la programacin estructurada.
James Gosling, desarrollador de Oak, precursor de Java.
Anders Hejlsberg, desarrollador de Turbo Pascal, Delphi y C#.
Grace Hopper, desarrolladora de Flow-Matic, influenciando el lenguaje COBOL.
Kenneth E. Iverson, desarrollador de APL, y co-desarrollador de J junto a Roger Hui.
Bill Joy, inventor de vi, autor de BSD Unix, creador de SunOS, el cual se convirti en
Solaris.
Alan Kay, pionero en programacin orientada a objetos, creador de Smalltalk.
Brian Kernighan, coautor del primer libro de programacin en lenguaje C con Dennis
Ritchie, y coautor de los lenguajes de programacin AWK y AMPL.
Yukihiro Matsumoto, creador de Ruby.
Mitchel Resnick, creador del lenguaje visual Scratch
John McCarthy, inventor de LISP.
Bertrand Meyer, inventor de Eiffel.
Robin Milner, inventor de ML, y comparti crdito en el mtodo HindleyMilner de
inferencia de tipo polimrfica.
John von Neumann, creador del concepto de sistema operativo.
Martin Odersky, creador de Scala, y previamente contribuy en el diseo de Java
Seymour Papert, pionero de la inteligencia artificial, inventor del lenguaje de
programacin Logo en 1968. .
Dennis Ritchie, inventor de C. Sistema Operativo Unix.
Nathaniel Rochester, inventor del primer lenguaje en ensamblador simblico (IBM
701).
Guido van Rossum, creador de Python.
Bjarne Stroustrup, desarrollador de C++.
Ken Thompson, inventor de B, desarrollador de Go, y coauthor del sistema operativo
Unix.
Larry Wall, creador de Perl y Perl 6.
Niklaus Wirth, inventor de Pascal, Modula y Oberon.
Stephen Wolfram, creador de Mathematica.
TIPOS DE ID SOPORTADOS POR LA PROGRAMACION RAD