lunes, 3 de noviembre de 2014

Historia de los lenguajes de programación

Historia de los lenguajes de programación


La historia de la informática y de la computación se ha caracterizado fundamentalmente en la existencia de centenares de lenguajes de programación, de forma tal que siempre se ha hablado de “la Babel de los lenguajes”, aunque bien es cierto que son solo unas decenas escasas los que han tenido un impacto significativo, y uno pocos los utilizados en la industria, los negocios y la ciencia.

Muchos de los lenguajes de programación actuales tienen sus raíces en los lenguajes que nacieron a finales de los cincuenta y primeros años de los sesenta, tales como COBOL (1960) , FORTRAN IV(1961), BASIC (1964), LOGO (1967). Estos lenguajes representaron la primera alternativa a los lenguajes ensambladores. En la década de los setenta y primeros años de los ochenta emergieron nuevos lenguajes, como Pascal (1971), C (1972) y Ada (1979), que se convirtieron en dominantes, desplazando por ejemplo a otros como ALGOL Y BASIC. Otros lenguajes, como COBOL y FORTRAN, lograron adaptarse y se mantuvieron como lenguajes de referencia en el mundo de los negocios y en el campo científico, respectivamente, con versiones actualizadas y estandarizadas por organizaciones como ANSI.

Todos esto lenguajes anteriores seguían el estilo de programación estructurada y se conocían lenguajes de programación imperativos o estructurados. En paralelo con el desarrollo de estos lenguajes surgieron dos nuevos estilos o paradigmas de programación; programación funcional y programación orientada a objetos. Posteriormente a principios de los ochenta apareció C++ como lenguaje imperativo con propiedades de orientación a objetos y que durante la década de los noventa ha sido el lenguaje de programación orientada a objetos por excelencia. En 1995 se presento oficialmente por el constructor Sun el lenguaje Java, un lenguaje orientado a objetos y con una funcionalidad muy dirigida a la red Internte. En el año 2000 Microsoft presento C#.

El lenguaje C: historia y características


C es el lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX. Sin embargo la popularidad, eficacia y potencia de C se ha producido porque este lenguaje no esta prácticamente asociado a ningún sistema operativo, ni a ninguna maquina en especial. Esta es la razón fundamental por la cual C es conocido como el lenguaje de programación de sistemas por excelencia.

C es una evolución de los lenguajes BCPL – desarrollado por Martin Richards- y B- desarrollado por Ken Thompson en 1970—para el primitivo UNIX de la computadora DEC PDP-7.
C nació realmente en 1978. Desde su nacimiento, C fue creciendo en popularidad y los sucesivos cambios en el lenguaje a lo largo de los años junto a la creación de compiladores por grupos no involucrados en su diseño hicieron necesario pensar en la estandarizacion de la definición del lenguaje C.

C es un lenguaje de alto nivel, que permite programar con instrucciones de lenguajes de propósito genera. También C se define como un lenguaje de programación estructurado de propósito general; aunque en su diseño también primo el hecho de fuera especificado como un lenguaje de programación de sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.

Ventajas de C


El lenguaje C tiene una gran cantidad de ventajas sobre otros lenguajes y constituye precisamente la razón fundamental de que después de casi dos décadas de uso C siga siendo uno de los lenguajes mas populares, utilizados en empresas, organizaciones y fabricas de software de todo el mundo.

Algunas ventajas que posee este lenguaje son:

  • El lenguaje C es poderoso y flexible, con ordenes, operaciones y funciones de biblioteca que se pueden utilizar para escribir la mayoría de los programas que corren en la computadora.
  • C se utiliza por programadores profesionales para desarrollar software en la mayoría de los modernos sistemas de computadora.
  • Se puede utilizar C para desarrollar sistema operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones.
  • Un programa C puede ser escrito para un tipo de computadora y trasladarse a otro computadora con pocas o ninguna modificación .   
C se caracteriza por su velocidad de ejecución. En los primeros días de la informática los problemas de tiempo de ejecución se resolvían escribiendo todo o parte de una aplicación en lenguaje ensamblador. Debido a que existen mucho programas escritos en C se han creado numerosas bibliotecas C para programadores profesionales que soportan gran variedad de aplicaciones.

 Características técnicas de C


Hay numerosas características que diferencias a C de otros lenguajes y lo hacen eficiente y potente a la vez

  • Una nueva sintaxis para declarar funciones. Una declaración de función puede añadir una descripción de los argumentos de la función. Esta información adicional sirve para que los compiladores detecten mas fácilmente los errores causados por argumentos que no coinciden.
  • Asignación de estructuras y enumeraciones.
  • Pre-procesador mas sofisticado.
  • Una nueva definición de la biblioteca que acompaña a C. Entre otras funciones se incluyen: acceso al sistema operativo (por ejemplo, lectura y escritura de archivos), entrada y salida con formato, asignación dinámica de memoria, manejo de cadenas de caracteres.
  • Una colección de cabeceras estándar que proporciona acceso uniforme a las declaraciones de funciones y tipos de datos.

 Breve historia de C++


C++ es heredero directo del lenguaje C que a su vez se deriva del lenguaje B. C se mantiene como un subconjunto de C++. El lenguaje de programación C fue desarrollado por Dennos Ritche de AT&T Bell Laboratorios que se utilizo para escribir y mantener el sistema operativo Unix. C es un lenguaje de propósito general que se puede utilizar para escribir cualquier tipo de programa. Aunque C es un lenguaje muy potente, tiene dos características que lo hacen inapropiado como una introducción moderna a la programación. Primero, C requiere un nivel de sofisticacion a sus usuarios que les obliga a un difícil aprendizaje para los programadores principiantes, ya que es de comprensión difícil. Segundo, C fue diseñado al principio de los setenta, y la naturaleza de la programación ha cambiado de modo significativo en la década de los ochenta y noventa.

Para subsanar estas deficiencias Bjarne Stroustrup de AT&T Bell Laboratorios desarrollo C++ al principio de la década de los ochenta. Stroustrup diseño C++ como un mejor C. En general, C estándar es un subconjunto de C++ y la mayoría de los programas C son también programas C++. C++, ademas de añadir propiedades a C, presenta características y propiedades de programación orientada a objetos, que es una técnica de programación muy potente.

Se han presentado varias versiones de C++ y su evolución continua en la actualidad. Las características mas notables que han ido incorporándose a C++ son : herencia múltiple, genericidad, plantillas, funciones virtuales, excepciones, etc.


Breve historia de Java


Ocho años después de su lanzamiento, Java se convirtió  en un estándar de la industria, en un lenguaje de programación para desarrollo de aplicaciones tanto de propósito general como de Internet y también en un lenguaje para comenzar la formación en programación, al tener características excelentes para el aprendizaje.

Java, desarrollado por Sun Microsystems en 1995, es un magnifico y completo lenguaje de programación orientado a objetos diseñado para distribuir contenidos a través de una red. Una de sus principales características es que permite operar de forma independiente de la plataforma y del sistema operativo que se este utilizando. Esto quiere decir que permite crear una aplicación que podrá descargarse de la red y funcionar posteriormente en cualquier tipo de plataforma de hardware o software. Generalmente, por el contrario, todo programa o aplicación queda atado a dos cosas: a hardware y al sistema operativo.

La idea de Java por el contrario, es poner una capa sobre cualquier plataforma de hardware y sobre cualquier sistema operativo para permitir que cualquier aplicación desarrollada en Java quede ligada únicamente a Java, independizada por lo tanto de la plataforma. Esta concepción queda recogida en el concepto de maquina virtual JVM (Java Virtual Machina), un software que interpreta instrucciones para cualquier maquina sobre la que este corriendo y que permite, una vez instalado, que una misma aplicación pueda funcionar en un PC o en un Mac sin tener que tocarla. Hoy en día cualquier sistema operativo (Windows, Macintosh, Linux, Unix, Solaris, etc.) cuenta con una JVM, Así que, lo que hace java en combinación con esta “maquina” es funcionar como hardware y como sistema operativo virtual, emulando en software una CPU universal. Al instalar Java esta actuara como una capa de abstracción entre un programa y el sistema operativo, otorgando una total independencia de lo que haya por debajo, es decir; cualquier aplicación funcionara en cualquier maquina e incluso en cualquier dispositivo.

Otra gran ventaja es que los programadores no tendrán que desarrollar varias versiones de la misma aplicación, puesto que el modelo de desarrollo es el mismo se trate del dispositivo mas pequeño o del mas grande de los servidores. Otra gran ventaja es que permite que todas las maquinas, plataformas y aplicaciones se comuniquen entre si accediendo desde cualquier equipo, donde quiera que este. En definitiva, se puede decir que Java es lo mas cercano a un lenguaje de computación universal que existe hoy día, lo que significa que puede correr en cualquier plataforma siempre y cuando una maquina virtual haya sido escrita para ella.

C# el mas joven


A pesar del éxito de java, indudable por otra parte, también tiene sus lagunas. Entre ellas la dificultad para la interoperabilidad de lenguajes cruzados o programación de lenguajes mezclados. ES decir, la capacidad para que el código producido por un lenguaje funcione fácilmente con el código producido por otro. La interoperabilidad de lenguajes cruzados se requiere para la creación de sistemas de software grandes y distribuidos, así como para la construcción de componentes de software.

Otra carencia notable de Java es la no integración completa de la plataforma Java, aunque los programas java se pueden ejecutar en un entorno Windows ( suponiendo que se ha instalado la Maquina Virtual Java). Para responder a estas necesidades Microsoft creo C# dentro de su estrategia global .NET y nombro arquitecto jefe del proyecto a Anders Hejlsberg , uno de los grandes expertos mundiales en lenguajes de programación (entre otros proyectos creo en los ochenta el popular Turbo Pascal).

C# esta relacionado directamente con C, C++ y Java. De C ha heredado su sintaxis, muchas de las palabras reservadas y sus operadores. De C++ ha heredado su modelo de objetos. La relación con Java es mas bien de “amor/odio”. C# y Java son familia, mas bien primos hermanos, sin embargo C# no es descendiente de Java, aunque compartan unos descendientes comunes, C y C++. Por ejemplo, ambos soportan programación distribuida y ambos utilizan código intermedio para conseguir portabilidad, pero difieren en los detalles. C# añade importantes innovaciones al arte de la programación. Por ejemplo, C# incluye delegados, propiedades, indexadores y eventos como elementos del lenguaje.

También añade sintaxis que soporta atributos. Además C# racionaliza la creación de componentes, eliminado los problemas asociados con COM. También, en este caso como Java, ofrece una cantidad significativa de verificación de errores en tiempo de ejecución , seguridad y gestión de la ejecución. En resumen C# reúne la potencia de C++ con la seguridad de tipos de Java.

 C# representa en la primera década del siglo XXI (21) a un lenguaje de programación con la mayoría de las grandes propiedades que todo buen lenguaje debe cumplir. Por esta razón es un lenguaje que ningún programador profesional puede ignorar si desea realizar desarrollador elegantes y eficientes.

No hay comentarios.:

Publicar un comentario