esta historia fue escrita en la primavera de 2000 cuando estaba en octavo grado. Durante varios años después de que lo escribí, el texto estuvo disponible en línea y se convirtió en una referencia para otros artículos, entradas de Wikipedia e incluso cursos universitarios. He colocado el informe aquí para la posteridad y la diversión (¿Cómo podría haber dejado fuera a Python??). En 2004, hice dos actualizaciones en respuesta a las críticas enviadas por correo electrónico, pero el texto no ha cambiado. Para una referencia más actualizada, te señalo descaradamente a Wikipedia.,
– Andrew Ferguson
A History of Computer Programming Languages
desde la invención del motor de diferencia de CharlesBabbage en 1822, las computadoras han requerido un medio de instruirlas para realizar una tarea específica. Este medio se conoce como lenguaje de programación. Los lenguajes de computación se componían primero de una serie de pasos para conectar un programa en particular; estos se transformaron en una serie de pasos clave en la computadora y luego se ejecutaron; más tarde estos lenguajes adquirieron características avanzadas como la ramificación lógica y la orientación de objetos., Las lenguas de cómputo de los últimos cincuenta años se han dividido en dos etapas, la primera lengua principal y la segunda lengua principal, que se utilizan hoy en día.
Al principio, el motor de diferencia de Charles Babbage solo se podía hacer para ejecutar tareas cambiando los engranajes que ejecutaban los cálculos. Por lo tanto, la forma más temprana de un lenguaje computarizado era el movimiento físico. Finalmente, el movimiento físico fue reemplazado por señales eléctricas cuando el Gobierno de los Estados Unidos construyó el ENIAC en 1942., Siguió muchos de los mismos principios del motor de Babbage y, por lo tanto, solo podía ser»programado» mediante interruptores de preajuste y recableando todo el sistema para cada nuevo «programa» o cálculo. Este proceso resultó ser muy tedioso.
en 1945, John Von Neumann estaba trabajando en el Instituto de Estudios Avanzados. Desarrolló dos conceptos importantes que afectaron directamente el camino de los lenguajes de programación.La primera fue conocida como «técnica de programa compartido «(www.softlord.com). esta técnica estableció que el hardware real de la computadora debe ser simple y no necesita ser cableado a mano para cada programa., En su lugar, se deben usar instrucciones complejas para controlar el hardware simple, permitiendo que sea reprogramado muchfaster.
el segundo concepto también fue extremadamente importante para el desarrollo de lenguajes de programación. Von Neumann lo llamó «transferencia de control condicional» (www.softlord.com). esta idea se basa en la noción de subrutinas, o pequeños bloques de código que podrían ser cambiados en cualquier orden, en lugar de un solo conjunto de pasos ordenados cronológicamente para que el ordenador tome., La segunda parte de la idea establecía que el código del ordenador debería poder ramificarse basado en sentencias lógicas como IF (expresión) THEN, y en bucle como con una sentencia FOR. «Conditionalcontrol transfer «dio lugar a la idea de» bibliotecas», que son bloques de código que se pueden reutilizar una y otra vez. (Actualizado el 1 de agosto de 2004: alrededor de este tiempo, Konrad Zuse, un alemán, estaba inventando sus propios sistemas informáticos de forma independiente y desarrolló muchos de los mismos conceptos, tanto en sus máquinas como en el lenguaje de programación Plankalkul. Por desgracia, su trabajo no se hizo ampliamente conocido hasta mucho más tarde., Para obtener más información, consulte este sitio web: http://www.epemag.com/zuse/, o las entradas en Wikipedia: Konrad Zuse y Plankalkul.)
en 1949, unos años después del trabajo de Von Neumann, el corto lenguaje Codeappared (www.byte.com). fue el primer lenguaje informático para dispositivos electrónicos y requería que el programador cambiara sus sentencias a 0 y 1 a mano. Sin embargo, fue el primer paso hacia las lenguas complejas de hoy en día. En 1951, Grace Hopper escribió el primer compilador, A-0 (www.byte.com)., Un compilador es un programa que convierte las sentencias del lenguaje en 0 y 1 para que el ordenador las entienda. Esto condujo a una programación más rápida, ya que elprogramador ya no tenía que hacer el trabajo a mano.
en 1957, la primera de las principales lenguas apareció en la forma ofortran. Su nombre significa FORmula TRANslating system. El lenguaje fue diseñado en IBM para la computación científica. Los componentes eran muy simples, y proporcionaban al programador un acceso de bajo nivel a las entrañas de las computadoras., Hoy en día, este lenguaje se consideraría restrictivo, ya que solo incluía declaraciones IF, DO, andGOTO, pero en ese momento, estos comandos fueron un gran paso adelante. Los tipos básicos de datos en uso hoy en día comenzaron en FORTRAN, estos incluyeron variables lógicas (verdadero o falso), y números enteros, reales y de doble precisión.
aunque FORTAN era bueno en el manejo de números, no era tan bueno en el manejo de entrada y salida, lo que importaba más a la informática de negocios. La informática empresarial comenzó a despegar en 1959, y debido a esto, se desarrolló COBOL., Fue diseñado desde cero como el idioma para los hombres de negocios. Sus únicos tipos de datos eran números y cadenas de texto. También permitió que estos se agruparan en arrays y registros, para que los datos pudieran ser rastreados y organizados mejor. Es interesante notar que el programa aCOBOL está construido de una manera similar a un ensayo, con cuatro o cinco secciones principales que se construyen en un todo elegante. Las declaraciones COBOL también tienen una gramática muy similar al inglés, por lo que es bastante fácil de aprender. Todas estas características fueron diseñadas para que sea más fácil para el negocio promedio aprender y adoptarlo.,
(actualizado el 11 de agosto de 2004) en 1958, John McCarthy de MITcreated the LISt Processing (or LISP) language. Fue diseñado para la investigación de Inteligencia Artificial (IA). Debido a que fue diseñado para un campo especializado, la versión original de LISP tenía una sintaxis única: esencialmente ninguna. Los programadores escribieron código en árboles de análisis, que generalmente son un intermediario generado por el compilador entre la sintaxis superior (como en C O Java) y el código de nivel inferior., Otra diferencia obvia entre este lenguaje (en forma original) y otros lenguajes es que el tipo básico y único de datos es la lista; a mediados de la década de 1960, LISP adquirió otros tipos de datos. Una lista LISP se denota por una secuencia de elementos encerrados porparentheses. Los propios programas LISP están escritos como un conjunto de listas, por lo que este tiene la capacidad única de modificarse a sí mismo, y por lo tanto crecer por sí mismo., La sintaxis dellisp se conocía como «Cambridge Polish», ya que era muy diferente de la lógica booleana estándar (Wexelblat, 177):
- x V y – Cambridge Polish, lo que se usó para describir el programa LISP
- O(x,y) – notación de prefijo entre paréntesis, lo que se usó en el programa LISP
- x O y – booleana estándar logic
lisp permanece en uso hoy en día debido a su naturaleza altamente especializada y abstractnature.
El lenguaje Algol fue creado por un comité para uso científico en 1958., Su mayor contribución es ser el pie del árbol que ha llevado a lenguajes como Pascal, C, C++, y Java.It también fue la primera lengua con una gramática formal, conocida como Backus-NaarForm o BNF (McGraw-Hill Encyclopedia of Science and Technology, 454). Aunque Algol implementó algunos conceptos novedosos, como la llamada recursiva de funciones, la siguiente versión del lenguaje, Algol 68, se volvió hinchada y difícil de usar (www.byte.com). esto llevó a la adopción de lenguas más pequeñas y compactas, como Pascal.
Pascal fue iniciado en 1968 por NiklausWirth., Su desarrollo se debió principalmente a la necesidad de una buena enseñanza tool.In al principio, los diseñadores de lenguaje no tenían esperanzas de que disfrutara de una adopción generalizada. En su lugar, se concentraron en el desarrollo de buenas herramientas para la enseñanza, como un depurador y un sistema de edición y soporte para máquinas de microprocesador comunes que estaban en uso en las instituciones de enseñanza.
Pascal fue diseñado en un enfoque muy ordenado, que combina muchas de las mejores características de los lenguajes en uso en el momento, COBOL, FORTRAN, y ALGOL., Al hacerlo,se limpiaron muchas de susregularidades y declaraciones extrañas de estos lenguajes, lo que ayudó a ganar usuarios (Bergin, 100-101). La combinación de características,entrada/salida y características matemáticas sólidas, lo convirtió en un lenguaje altamente exitoso. Pascal también mejoró el tipo de datos» puntero», una característica muy poderosa de cualquier lenguaje que lo implementa., También agregó una instrucción CASE,que permitía que las instrucciones se ramificaran como un árbol de tal manera:
Pascal también ayudó al desarrollo de variables dinámicas, que podían ser creadas mientras se ejecutaba un programa, a través de los comandos NEW y DISPOSE.Sin embargo, Pascal no implementó matrices dinámicas,o grupos de variables, lo que resultó ser necesario y llevó a su caída (Bergin, 101-102). Wirthlater creó un sucesor de Pascal, Modula-2, pero para cuando apareció, Cwas ganando popularidad y usuarios a un ritmo rápido.,
C fue desarrollado en 1972 por DennisRitchie mientras trabajaba en Bell Labs en Nueva Jersey. La Transición En el uso de las primeras lenguas principales a las lenguas principales de hoy ocurrió con la transición entre Pascal y C. sus antepasados directos son B y BCPL, pero sus similitudes con Pascal son bastante obvias. Todas las características de Pascal, incluyendo las nuevas como la sentencia CASE están disponibles en C. C usespointers extensivamente y fue construido para ser rápido y poderoso a expensas de ser difícil de leer., Pero debido a que se corrigió la mayoría de los errores que Pascal tenía, itwon sobre los antiguos usuarios de Pascal con bastante rapidez.
Ritchie desarrolló C para el nuevo Unixsystem que se estaba creando al mismo tiempo. Debido a esto, C y Unix van mano adentro. Unix le da a C Características avanzadas tales como variables dinámicas, multitarea,manejo de interrupciones, bifurcación y entrada-salida fuerte y de bajo nivel. Debido a esto, C se usa muy comúnmente para programar sistemas operativos como Unix, Windows, MacOS y Linux.
a finales de la década de 1970 y principios de la de 1980, se estaba desarrollando un nuevo método de programación., Era conocido como Object OrientedProgramming, u OOP. Los objetos son piezas de datos que pueden ser empaquetados y manipulados por el programador. A Bjarne Stroustroup le gustó este método y desarrolló extensiones A C conocidas como «C With Classes».»Este conjunto de extensiones se desarrolló en el lenguaje completo c++, que fue lanzado en 1983.
C++ fue diseñado para organizar la rawpower de C usando OOP, pero mantener la velocidad de C y poder ejecutarse en muchos tipos diferentes de computadoras. C++ se usa con mayor frecuencia en simulaciones, como juegos., C++ proporciona una forma elegante de rastrear y manipular cientos de personas en ascensores, o ejércitos llenos de diferentes tipos de soldados. Es el lenguaje de elección en los cursos de Ciencias Informáticas AP de hoy en día.
a principios de la década de 1990, la TV interactiva era la tecnología del futuro. Sun Microsystems decidió que la TV interactiva necesitaba un lenguaje especial, portátil (puede ejecutarse en muchos tipos de máquinas). Este idioma finalmente se convirtió en Java. En 1994, el equipo del proyecto Java cambió su enfoque a la web, que se estaba convirtiendo en «lo genial» después de que interactive TV fallara., Al año siguiente, Netscape licenció Java para su uso en su navegador de Internet, Navigator. En este punto, Java se convirtió en el lenguaje del futuro y varias compañías anunciaron aplicaciones que se escribirían en Java, no de las cuales entrarían en uso.
aunque Java tiene objetivos muy elevados y es un ejemplo de libro de texto de un buen lenguaje, puede ser el «lenguaje que no era». tiene serios problemas de optimización, lo que significa que los programas escritos en él se ejecutan muy lentamente. Y Sun ha perjudicado la aceptación de Java mediante la participación en batallas políticas sobre ella con Microsoft., Pero Java puede terminar como el lenguaje instruccional del mañana, ya que está realmente orientado a objetos y implementa técnicas avanzadas como la verdadera portabilidad del código y la recolección de basura.
Visual Basic se enseña a menudo como un primer lenguaje de programación hoy en día, ya que se basa en el lenguaje BASIC desarrollado en 1964 por John Kemeny y Thomas Kurtz. BASIC es un lenguaje muy limitado y fue diseñado para personas que no son de Ciencias de la computación. Las sentencias arechiefly se ejecutan secuencialmente, pero el control del programa puede cambiar según IF..,Luego, y sentencias GOSUB que ejecutan un cierto bloque de código y luego regresan al punto original en el flujo del programa.
Microsoft ha extendido BASIC en su producto Visual Basic (VB). El corazón de VB es la forma, o ventana en blanco en la que arrastra y suelta componentes como menús, imágenes y barras deslizantes.Estos elementos se conocen como » widgets.»Los Widgets tienen propiedades (como itscolor) y eventos (como clics y dobles clics) y son centrales para construir cualquier interfaz de usuario hoy en día en cualquier idioma., VB se utiliza con mayor frecuencia hoy en día para crear interfaces rápidas y simples para otros productos de Microsoft como Excel y Access sin necesidad de una gran cantidad de código, aunque es posible crear aplicaciones completas con él.
Perl a menudo se ha descrito como la» cinta adhesiva de Internet», porque se usa más a menudo como el motor para la interfaz aweb o en scripts que modifican archivos de configuración. Tiene muchas funciones de coincidencia de texto que lo hacen ideal para estas tareas., Perl fue desarrollado por Larry Wall en 1987 porque las herramientas Unix sed y awk (usadas para la manipulación de texto) ya no eran lo suficientemente fuertes como para soportar sus necesidades.Dependiendo de a quién le preguntes, Perl significa extracción práctica y ReportingLanguage o patológicamente ecléctico Lister basura.
los lenguajes de programación han estado en desarrollo durante años y lo seguirán siendo durante muchos años. Comienzan con una lista de pasos para conectar una computadora para realizar una tarea.Estos pasos finalmente encontraron su camino en el software y comenzaron a adquirir más y mejores características., Las primeras lenguas principales se caracterizaban por el simple hecho de que estaban destinadas a un fin y sólo a un fin,mientras que las lenguas de hoy se diferencian por la forma en que se programan, ya que pueden utilizarse para casi cualquier fin. Y quizás los lenguajes de mañana serán más naturales con la invención de computadoras cuánticas y biológicas.