Historia de la programación
Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de maquina a herramientas poderosas que crean las abstracciones complejas. Es importante por que los idiomas han evolucionado, y que capacidades nos dan los nuevos idiomas.
“Tan largo como no había maquinas, programar era ningún problema; cuando tuvimos pocas computadoras débiles, programar llegó a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un problema igualmente gigantesco. En este sentido que la industria electrónica no ha resuelto un solo problema, ha creado el problema de usar su producto”.
Una de las llaves a programar exitoso es el concepto de la abstracción. La abstracción es la llave a la construcción de sistemas complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción aumentó dramáticamente. Los sistemas sencillos se caracterizaban por idiomas usados en 1950’s y 60’s, un solo programista podría entender el problema entero y por lo tanto manipular todas las estructuras y datos del programa. Los programistas hoy pueden entender todos los programas y los datos.
La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de generaciones. Esto es un arreglo útil para clasificar los idiomas por la edad.
-Primera generación:
Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas. Las primeras se usaban como calculadoras simples.
John Von Neumann desarrolló el modelo que lleva su nombre para describir este concepto de “programa almacenado”. En este modelo se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa.
Se tenía el problema de representar las acciones que iba a realizar la computadora y la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios. Entonces a cada acción que sea capaz de realizar la computadora asociarle un número, que será su código de operación (opcode)[1].
-Segunda generación:
El primer gran avance que se dio, como ya se comento, fue la abstracción dada por el Lenguaje Ensamblador y con el, el nacimiento de las primeras herramientas automáticas para generar el condigo maquina. Esto redujo los errores triviales, como podía ser el numero que correspondía a una operación que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU y entender bien todo lo que sucede dentro de el.
-Tercera generación:
Con el desarrollo en los 50’s y 60’s de algoritmos de mas elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían mucho de física, química y otras ramas similares, pero no de computación y por supuesto, les era sumamente complicado trabajar con lenguaje ensamblador en vez de formulas. Así nació el concepto de lenguaje de alto nivel con el primer compilador de FORTAN (FORmula TRANslation), que inicio con un simple esfuerzo de traducir un lenguaje de formulas, al lenguaje ensamblador y por consiguiente al lenguaje de maquina. A partir de FORTAN, se han desarrollado innumerables lenguajes que siguen el mismo concepto. buscar la mayor abstracción posible y facilitar la vida al programador, aumentando la productividad, encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel al lenguaje de computadora.
-Cuarta generación:
Los idiomas de cuarta generación parecen según las instrucciones a las de la tercera generación. Lo nuevo de estos lenguajes son los conceptos como clases, objetos y eventos que permiten soluciones más fáciles y lógicos.
La mayoría de los idiomas modernos son objetivos orientados, que permite que modele un mundo verdadero que usa mi idioma. Además, puedo limitar el acceso para modelar las restricciones de mundo verdadero en datos. La llave es que use el término “mundo verdadero”.
-Quinta generación:
Como la quinta generación están conocidos los lenguajes de inteligencia artificial. Han sido muy valorados al principio de los 90’s mientras ahora el desarrollo de software toma otros caminos.
Lo que veremos en el futuro es menos dependencia en el idioma y mas en el modelando herramientas, tal como el unificado modelando el
No hay comentarios:
Publicar un comentario