Logos unah 11

Línea de tiempo sobre lenguajes de programación

  • El nacimiento de la primera computadora

    El nacimiento de la primera computadora
    Honrad Zuse creó el primer ordenador de la historia llamándolo Z1. El Z1 era el primer sistema informático totalmente programable. No fue hasta el año 1942 que alguna empresa viera posibles beneficios y oportunidades los ordenadores. La primera compañía se llamó ABC Computers perteneciente a John Atanasoff y Clifford Berry. Dos años después, el ordenador Harvard Mark I fue desarrollado llevando más allá la tecnología de los ordenadores.
  • Algoritmo: Método de Monte Carlo

    John Von Neumann, Stanislau Ulam, y Nick Metropolis, todos en el laboratorio nacional de Los Álamos, diseñan el algoritmo Metropolis, también conocido como método de Monte Carlo. La idea es obtener soluciones aproximadas a problemas con una cantidad ingente de grados de libertad (aka variables) simulando un proceso aleatorio. Dada la fama del ordenador para cálculos determinísticos, es irónico que uno de los primeros grandes algoritmos fuera aleatorio.
  • Algoritmo: Método del Simplex para programación lineal

    George Dantzig de la RAND corporation creó el algoritmo del Simplex para programación lineal Este algoritmo trata de buscar el máximo de una función lineal dado un conjunto de restricciones lineales. En bachillerato social es lo que se hace de mirar la recta paralela qué vértice del polígono toca. Básicamente es lo mismo en n dimensiones, tenemos un polítopo formado por las intersecciones de hiperplanos y hay que mirar de todos los "vértices" en cual la función es mayor o menor.
  • Algoritmo: Métodos de iteración en subespacios de Krylov

    Desarrollado por Magnus Hestenes, Eduard Stiefel, y Cornelius Lacnzos. Este algoritmo busca resolver la (a priori) simple ecuación Ax = B donde A es una matrix nxn enorme, y b es un vector. La idea es resolver ecuaciones relativamente más simples con matrices "cercanas" a A de manera iterativa: [; K x{i+1} = K x{i} + b - A x_{i} ;]
  • Invención del lenguaje ensamblador

    Invención del lenguaje ensamblador
    Invención del lenguaje ensamblador por Mauricio V. Wilkes de la Universidad de Cambridge. Antes, la programación se efectuaba en binario directamente.
  • Invención del primer compilador

    Invención del primer compilador
    Invención del primer compilador, A0, por Grace Murray Hopper que permitía generar un programa binario a partir de un código fuente.
  • Algoritmo: Descomposición computacional de matrices

    Alston Householder del laboratorio nacional de Oak Ridge formaliza esta aproximación. La idea es descomponer la matriz A como productos de otras matrices más simples, que permiten mayor eficiencia en los cálculos y mayor control del error que producimos al realizarlos. El ejemplo más típico es el método LU, donde descomponemos A en el producto de L y U donde L es una matriz triangular por debajo con todos los elementos de la diagonal 1, y U es una matriz triangular por arriba.
  • Creación del primer lenguaje de alto nivel: SPEEDCODING

    Creación del primer lenguaje de alto nivel: SPEEDCODING
    John Backus crea el primer lenguaje de alto nivel SpeedCoding para el IBM 701 para soportar la computación con números de coma flotante.
  • Creación de Fortran

    Creación de Fortran
    FORmulaTRANslation es el lenguaje de programación más antiguo y que continúa en uso. Creada por John Backus, esta herramienta fue desarrollada para la computación científica de alto nivel, matemáticas y estadísticas. A día de hoy, este lenguaje se sigue usando en la industria automovilística, aeroespacial, gubernamental y la investigación. Por ejemplo, es muy útil para el pronóstico de los servicios meteorológicos.
  • Algoritmo: Compilador de Fortran

    John Backus lideró un equipo de IBM desarrollando el compilador optimizador de Fortran. La creación de Fortran podría ser considerada una de las grandes piedras de toque de la computación. Por fin los científicos podían tener una manera estándar de programar sin tener que ir a lenguaje máquina, y aunque para los estándares de ahora el compilador no es gran cosa, en aquella época los informáticos se sorprendían de lo fino que hilaba el compilador.
  • Creacíon de Cobol

    Creacíon de Cobol
    El Common Business Oriented Language está detrás de la mayoría de los sistemas de transacciones de negocio de los procesos de las tarjetas de crédito, ATMs (Modo de Transferencia Asíncrona), telefonía, sistemas hospitalarios, gobierno, sistemas automatizados y señales de tráfico. El desarrollo de Cobol, creado por Grace Murray Hopper, muestra un lenguaje familiar y uniforme para transacciones empresariales. Por ejemplo, lo usan en el servicio postal estadounidense.
  • Algoritmo QR

    J.G.F. Francis de Ferranti Ltd., Londres, encontró un método estable para computar los valores propios de una matriz nxn. Es relativamente fácil transformar cualquier matriz en una matriz "casi triangular por arriba". Pero hasta que se desarrolló el método QR era casi imposible quitar esos últimos elementos que no son cero sin caer en una avalancha de errores. El método QR descompone una matriz en un producto de Q y R, y lo que se hace a partir de este método es ir pasando de QR a RQ .
  • Algoritmo: Quicksort

    Presentado por Tony Hoare de Elliott Brothers, Ltd., Londres. Poner N números en orden descendente o ascendente parece algo mundano. El problema es encontrar maneras de hacerlo rápidamente. El algoritmo de Hoare usa la clásica técnica de "divide y vencerás". Elige un elemento como pivote, separa el resto en pilas de elementos "grandes" y "pequeños", y repite para cada pila. Aunque es posible tener que hacer todas las N(N-1)/2 comparaciones, en promedio Quicksort corre en O(Nlog(N)) pasos.
  • Creación del código ASCII

    Creación del código ASCII
    El código ASCII (siglas en ingles para American Standard Code for Information Interchange) Fue creado por el Comité Estadounidense de Estándares o "ASA", este organismo cambio su nombre en 1969 por "Instituto Estadounidense de Estándares Nacionales" o "ANSI" como se lo conoce desde entonces. Este código nació a partir de reordenar y expandir el conjunto de símbolos y caracteres ya utilizados por ese entonces en telegrafía por la compañía Bell.
  • Creación de Basic

    Creación de Basic
    Creado por estudiantes de Dartmouth College, el denominado Beginners All Purpose Symbolic Instruction Code fue diseñado como un lenguaje simplificado para aquellos que no tenían como base fuertes conocimientos técnicos o matemáticos. Una versión modificada, escrita por Bill Gates y Paul Allen, llegó a ser el primer producto de Microsoft. Fue vendido al M.I.T.S. para el Altair. En 1977, fue integrado en el Apple II para su arranque.
  • Algoritmo: FFT

    Desarrollado por James Cooley. La idea es dividir el problema recursivamente y pasar de hacer O(N2) pasos a O(NlogN). Pero la manera de hacerlo no es tan evidente como Quicksort. El desarrollo de este algoritmo fue lo que impulsó al estudio más detenido de la complejidad de ciertos programas y algoritmos (i.e. vieron que la manera más obvia no siempre es la mejor). Las aplicaciones de FFT son innumerables, desde las matemáticas teóricas (descomposición en factores) hasta el procesado de señal.
  • Creación del lenguaje de programación B

    Creación del lenguaje de programación B
    B es un lenguaje de programación diseñado por Dennis Ritchie y Ken Thompson en los Laboratorios Bell, principalmente usado para aplicaciones no numéricas y programación de sistemas. Las primeras implementaciones de Unix se hicieron con B, pero pronto imperó el desarrollo con C. Así, en septiembre de 1973 todo el código de Unix estaba ya traducido a este lenguaje. Hoy día B está casi extinto y su interés es meramente histórico, ya que representa la transición entre BCPL y C.
  • Creación del lenguaje C

    Creación del lenguaje C
    Este lenguaje fue desarrollado entre 1969 y 1973 por Dennis Ritchie para los laboratorios Bell Telephone para usarlos en el sistema Unix. Se le llamó «C» porque sus características derivaban de un lenguaje anterior llamado «B». C llegó a ser tan poderoso que la mayoría del núcleo de Unix fue reescrito con él. De hecho, hoy en día, Linux está todavía basado en C.
  • Creación del lenguaje Pascal

    Creación del lenguaje Pascal
    El lenguaje se llamó así en honor de Blaise Pascal, el inventor de las calculadoras matemáticas, aunque su creador se llamaba Niklaus Wirth, y lo desarrolló como una herramienta de enseñanza y formación aunque tiene un uso meramente comercial. Este lenguaje se usa en Skype.
  • Interprete Bourne Shell

    Bourne Shell es un programa informático cuya función consiste en interpretar órdenes. Incorpora características tales como control de procesos, redirección de entrada/salida, listado y lectura de ficheros, protección, comunicaciones y un lenguaje de órdenes para escribir programas por lotes o “scripts”. Fue el intérprete usado en las primeras versiones de Unix y se convirtió en un estándar de facto.
  • Creación de C++

    Creación de C++
    En los laboratorios Bells, Bjarne Stroustrup modificó el lenguaje C al C++, creando lo que muchos consideran el lenguaje de programación más popular que ha existido nunca. Además, ha sido listado en lo alto de los top ten de los lenguajes de programación desde 1986 y archivado en el Hall of Fame en 2003. Hoy en día es usado por Firefox, Office y Adobe PDF Reader.
  • Creación de Perl

    Creación de Perl
    Larry Wall, un programador Unix, creó Perl después de intentar extraer datos de un informe y darse cuenta que Unix no podía llevar a cabo las operaciones que él necesitaba. Practical Extraction Report Language fue descrito por su inventor como un lenguaje que «consigue que hagas tu trabajo». Actualmente es usado por Craigslist.
  • Fast Multipole Algorithm

    Desarrollado por Leslie Greengard y Vladimir Rokhlin de Yale University.
    Este algoritmo resuelve uno de los mayores problemas del problema (valga la redundancia) de N-cuerpos. En el problema de N-cuerpos intentamos encontrar la dinámica que siguen N cuerpos donde todos influyen a todos los otros (por ejemplo galaxias o planetas). Parece que como mínimo para resolverlo necesitamos N2 computaciones (una para cada par de partículas).
  • Creación de Python

    Creación de Python
    Monty Python sirvió de inspiración para nombrar este lenguaje. Guido Van Rossum lo creó para solucionar problemas en el lenguaje ABC y continúa utilizándose para tal fin. Hoy en día es usado por la NASA, Google y YouTube.
  • Creación de Ruby

    Creación de Ruby
    Fue creado por Yukihiro Matsumoto, conocido como Matz, y utilizando partes de sus lenguajes de programación favoritos: Perl, Smalltalk, Eiffel, Ada y Lisp. Ahora es usado por Basecamp.
  • Creación de PHP

    Creación de PHP
    Rasmus Lerdoff desarrolló PHP para reemplazar unos scripts de Perl usados para mantener su web personal. Hoy en día, PHP ha crecido hasta llegar a ser parte de una arquitectura web integrada en 20 millones de websites. Facebook lo usa actualmente.
  • Creación de Javascript

    Creación de Javascript
    Java y Javascript no están relacionados y tienen muy diferente semántica, aunque no lo parezca. Javascript fue desarrollada por Brendan Eich, de Netscape, bajo el nombre de Mocha. Tiene influencia del lenguaje C. Hoy en día es usado en servicios como node.js. De él depende AJAX.
  • Creación del lenguaje Java

    Creación del lenguaje Java
    Un grupo de trabajadores de Sun Microsystems, liderado por James Gosling, creó Java para arrancar los decodificadores de una televisión interactiva. Hoy en día, Java está presente en más de 1.000 millones de PCs de todo el mundo y muchas websites no pueden funcionar sin ella. Fue utilizada en 2004 en la misión de la NASA Mars Rovers.
  • Creación del lenguaje de programación D

    Creación del lenguaje de programación D
    D es un lenguaje de programación de uso general desarrollado por Walter Bright y Andrei Alexandrescu cuya primera versión apareció en 1999. Se origina como un rediseño de C++, con un enfoque más pragmático, pero no es un lenguaje puramente derivado del anterior. D ha mantenido algunas características de C++ y también está influido por otros conceptos de otros lenguajes como Java, C# y Eiffel. Una versión estable fue lanzada el 2 de enero de 2007 y la ultima el 2 de agosto de 2012.
  • Creación de C#

    Creación de C#
    C# (pronunciado si sharp en inglés) es un lenguaje de programación multiparadigma desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.
    Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, incluye mejoras derivadas de otros lenguajes.
  • Creación de Ruby On Rails

    Creación de Ruby On Rails
    Fue extraído por David Heinemeier Hansson de su trabajo en Basecamp, un proyecto dirigido por 37 señales. Hasson lanzó Ruby On Rails, en principio, como código abierto, en 2004, pero no compartió los derechos hasta febrero de 2005. Ahora está en su versión 3.0.7 y tiene más de 1.800 contribuyentes.
  • Creación del lenguaje Rust

    Creación del lenguaje Rust
    Rust es un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Mozilla. Ha sido diseñado para ser "un lenguaje seguro, concurrente y práctico". Es un lenguaje de programación multiparadigma, soporta programación funcional pura, por procedimientos, imperativa y orientada a objetos.
  • Creación del lenguaje TypeScript

    Creación del lenguaje TypeScript
    Creado por Microsoft, es un superconjunto de Javascript, es decir incorpora las misma capacidades de Javascript además de incorporar nuevas, como el sistema de tipo estático y objetos representados en clase como lenguajes de la familia .NET.
  • Creación del lenguaje Kotlin

    Creación del lenguaje Kotlin
    Creado por el equipo de JetBrains[1] (los que tiene varios IDE de gran calidad!) es un lenguaje que Google lo nombro como principal para su plataforma Android, al igual que Java.
  • Creación del lenguaje Swift

    Creación del lenguaje Swift
    Este lenguaje diseñado por Apple llego para reemplazar a Objective-C como lenguaje principal para sus dispositivos.