Continuamos con la breve historia de la computación en su segunda parte, anteriormente habíamos visto el desarrollo de los primeros lenguajes de programación hasta llegar a Pascal, un lenguaje estructurado que posteriormente daría lugar a los modernos lenguajes de programación.
C y sus antecesores B y BCPL
En 1966, en la Universidad de Cambridge, Martin Richards, matemático, profesor e informático de dicha universidad trabajaba en un lenguaje de bajo nivel al que llamó BCPL porque estaba basado en otro similar llamado CPL que había sido desarrollado por la misma universidad de Cambridge junto con la de Londres.
En los laboratorios de la empresa Bell de AT&T (American Telephone and Telegraph), la famosa empresa de Telecomunicaciones, Kenneth L. Thompson y Dennis M. Ritchie se basan en BCPL para desarrollar una versión simplificada a la que llamaron «Lenguaje B», que posteriormente ampliaron y mejoraron hasta entregar el famoso «Lenguaje C» que fue lanzado en 1972.
Desde su inicio, el lenguaje C se orientó a la implementación de Sistemas Operativos y se convirtió en el lenguaje preferido por los programadores de alto nivel en todo el mundo por su orientación intermedia pero capacidades de llegar a muy bajo nivel, siendo relativamente sencillo y manejable para el programador, pero manejando funciones de muy bajo nivel como incluir código Assembler puro dentro de sí mismo, para utilizarlo en todo su poder, sin tener su dificultad de implementación en una aplicación mas compleja.
Unix, Linux e incluso Windows están escritos en C combinado con Assembler para ciertas funciones de bajo nivel, así como muchos paquetes y programas de uso común en estos sistemas operativos.
El lenguaje C ha evolucionado a sus versiones C++ ( C plus plus), integrando una filosofía orientada a objetos, manejo de clases etc. o a C# (C Sharp) de Microsoft, aunque este último se parece mas a JAVA el cual revisaremos más adelante.
SMALTALK
Los orígenes de Smalltalk se encuentran en las investigaciones realizadas por Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg y otros durante los años setenta en el Palo Alto Research Institute de Xerox (conocido como Xerox PARC), para la creación de un sistema informático orientado a la educación. El objetivo era crear un sistema que permitiese expandir la creatividad de sus usuarios, proporcionando un entorno para la experimentación, creación e investigación.
Smalltalk es un lenguaje de programación que permite realizar tareas de computación mediante la interacción con un entorno de objetos virtuales. Metafóricamente, se puede considerar que un Smalltalk es un mundo virtual donde viven objetos que se comunican mediante el envío de mensajes.
Un programa Smalltalk consiste únicamente de objetos, un concepto que se utiliza universalmente dentro de todo sistema Smalltalk. Prácticamente todo, desde un número natural como el 4 hasta un servidor web es considerado un objeto. Los objetos Smalltalk presentan características comunes:
- Tienen una memoria propia.
- Poseen capacidad para comunicarse con otros objetos.
- Poseen la capacidad de heredar características de objetos ancestros.
- Tienen capacidad de procesamiento.
- Los objetos se comunican entre sí mediante el envío de mensajes..
- Asimismo, un objeto puede proveer muchas operaciones (actualmente esto está determinado por cada implementación)
JAVA
En los años ochenta, el mundo de la programación seguía su marcha feliz, aparecían las computadores personales y el computador ya estaba al alcance del ciudadano medio y no hacía falta estar en el ejército o ser físico catedrático de una gran universidad para acceder a un computador, con lo que nacieron los nuevos programadores aficionados, que trabajaban en garajes o en las propias casas de habitación, se fundaron de este modo compañías que hoy son gigantescas como Microsoft, Apple y los lenguajes originales evolucionaban hacia un nuevo paradigma: «La programación orientada a objetos», C se convertía en C++, Pascal en Delphi, los ambientes cambiarían de modo consola a formato gráfico con las Apple primero y con Windows después.
Sin embargo los lenguajes originales no se adaptaban en un 100% al modelo de objetos y ante esta necesidad de implementar verdaderos lenguajes de objetos, en 1990 Patrick Naughton, ingeniero de Sun Microsystems, junto con James Gosling y Mike Sheridan y otros programadores comenzaron a trabajar en un proyecto llamado «The Green Project», se mudaron a una pequeña oficina en Sand Hill Road en Menlo Park, que no debe confundirse con la aldea de Menlo Park en New Jersey donde Tomás Edison tuvo su laboratorio a principios del siglo pasado, en dicha oficina se encerraron durante 18 meses, desconectados de la empresa, intentando desarrollar una nueva tecnología para programar la siguiente generación de dispositivos electrónicos inteligentes.
Pensaron basarse en C++ pero luego de batallar con el lenguaje lo descartaron y decidieron arrancar de cero y crear un nuevo lenguaje al que originalmente llamaron Oak (Roble), supuestamente por ser este el árbol que veían a través de la ventana.
En 1991 Oak ya compilaba sus primeros programas, en 1992 habían desarrollado un sistema completo de control de aparatos electrónicos en el entorno de un hogar, con un prototipo de computador experimental llamado *7 (Star Seven) y un controlador tipo PDA con pantalla táctil, con teléfono incorporado y ciertas funciones adicionales cuya programación estaba en Oak, hasta habían creado un logo mascota que se llamó Duke y que es la mascota de JAVA.
Luego se dedicaron a otro proyecto que llamaron VOD (Video On Demand), que era la interfaz gráfica para lo que ellos denominaban televisión interactiva, pero el mundo no estaba preparado para todo esto.
El proyecto Green fue cerrado y Oak tuvo que cambiar de nombre pues ya existía esa marca comercial registrada para adaptadores de tarjetas gráficas y tuvieron que cambiarle el nombre a JAVA.
Sin embargo no prosperó comercialmente pero la internet ya era un hecho y el fenómeno WEB se extendía por todo el mundo por lo que decidieron adaptar el lenguaje a este nuevo entorno, así que trabajaron con JAVA para correrlo en un Navegador o Browser al percatarse del gran éxito que tenían navegadores de WWW como Mosaic y Netscape, así nació Hot Java que implementaba por «applets», que son partes de Java que pueden ser cargadas para ser ejecutadas localmente.
En enero de 1995 se funda Java Soft dedicada al desarrollo de aplicaciones y tecnología JAVA, buscando crear un nuevo estándar de programación y aparece la versión 1.0 del JDK (Java Developer Kit) que es el conjunto de herramientas para desarrollar aplicaciones en JAVA.
En mayo de 1995 durante la conferencia «SunWorld 95», John Gage de Sun Microsystem y Marc Andreessen de Netscape anunciaban el soporte a la versión alpha de Java que sería incorporada al Netscape Navigator que era el navegador mas usado entonces en internet.
Un par de meses después, vendría la Alpha 2 de Java con soporte para Windows NT y en agosto del mismo año la Alpha 3 con soporte para Windows 95.
Java desde sus inicios se creó con este concepto: “Write Once, Run Anywhere”, Escríbalo una vez, córralo en todos lados»…
Es decir que Java se diseñó para que un programa escrito en un computador pudiese ser ejecutado en cualquier otro tipo de equipo aunque esté con un sistema operativo diferente, es decir si lo hago en Linux lo puedo correr en Windows, en Mac, en Unix incluso (en teoría), en un teléfono celular.
Se supone que el lenguaje es libre pero al respecto existe gran controversia y temor, sobre todo por la compra de Oracle de la empresa padre de Java, es decir Sun Microsystem.
Filosofía de JAVA
El lenguaje Java se creó con cinco objetivos principales:
1.Debería usar el paradigma de la programación orientada a objetos.
2.Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
3.Debería incluir por defecto soporte para trabajo en red.
4.Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
5.Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
Los nuevos chicos en el pueblo
Java tiene millones de adeptos y se ha convertido en el estándar de programación orientada a objetos, sin embargo no cumple del todo con los requisitos del paradigma, como el caso de tener tipos «primitivos» de variables. Ante esas contradicciones con la filosofía de orientación a objetos que achacan a JAVA, surgen programadores que buscan crear nuevos lenguajes capaces de cumplir con el paradigma de orientación a objetos.
Python, lanzado en 1994 por el programador holanes, Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, es un lenguaje multiparadigma ya que acepta programación orientada a objetos, así como imperativa y funcional.
Yukihiro «Matz» Matsumoto, programador japonés, presentó en 1995 a Ruby, un lenguaje interpretado, reflexivo y ciertamente orientado totalmente a objetos que ha dado hijos como Ruby on Rails, un framework o entorno de trabajo para la creación de aplicaciones siguiendo el patrón de desarrollo MVC (Modelo Vista Controlador), tratando de utilizar un mínimo de escritura de código al programador.
En el entorno web aparecen HTML, PHP JavaScript y otros que mas que están 100% orientados a elaborar páginas web, de los cuales HTML vive bajo la controversia de que si es un lenguaje o no, pero con HTML5 alcanza capacidades que amenazan con desplazar a los otros lenguajes web.
Se dice que la programación es un mundo cruel e ingrato, para el programador, pero al mismo tiempo fascinante, adictivo y estimulante, el usuario jamás estará contento con el programa pero depende absolutamente del mismo y del programador, por ahí decían que la programación es una guerra interminable entre Dios y los Programadores, éstos últimos empeñados en crear programas cada vez más seguros, sólidos y a prueba de idiotas y Dios empeñados en crear idiotas cada vez más grandes, capaces de hacer tronar a todas las aplicaciones o sistemas que los programadores hayan construido; hasta el momento sigue ganando Dios…
1 comment for “La breve historia de la programación. Parte 2”