Tema 1. Los retos de la programación.

J. Pablo Reymon

2023-09-05

  • facebook logo
  • linkedIn logo
  • whatsapp logo
  • X logo
« Anterior
Siguiente »

Introducción al curso.

En la actualidad, la tecnología se ve involucrada en distintos aspectos de la vida cotidiana; se ha convertido necesariamente en una herramienta importante no solo para nuestra vida social, sino para industrias y servicios (de salud o financieros, por ejemplo). La búsqueda de nuevas tecnologías y sus aplicaciones se ha vuelto una necesidad imperante que ha permitido explorar y llegar a los límites del conocimiento humano.

¿Te has preguntado alguna vez cómo está hecho un sitio web, como por ejemplo Raiko EngineLink? Estimado lector, sea bienvenido a este primer artículo del curso. Sin lugar a duda, esta pregunta sobre cómo se hacen las cosas nos permite crear recursos y herramientas que faciliten la comprensión a manera de respuesta, tal como lo proponemos en Raiko EngineLink, ¿Estás listo?... ¡Vamos allá!

“La tecnología se define como el conjunto de habilidades y técnicas empleadas para producir un bien o servicio.”

La tecnología puede tener diversos enfoques, la clasificación más simple consiste en tecnologías tangibles (como, por ejemplo, de materiales) y aquellas tecnologías intangibles (que pueden ofrecer un servicio). Dentro del conjunto de habilidades necesarias para construir una tecnología destaca el ámbito de la programación, este es un punto crucial para comprender e implementar herramientas a través de dispositivos. Es así como la programación implícitamente nos ha acompañado a lo largo de la historia. Uno de los fundamentos de la programación es permitir resolver problemáticas de complejidad que el humano tal vez no pueda procesar.

“La programación se define como el conjunto de instrucciones para la realización de una tarea.”

 

Evolución tecnológica.

La implementación de tecnologías ha existido desde las civilizaciones antiguas, ejemplo de ello es el ábaco. Sin embargo, durante el siglo XIX los grandes inventores concibieron la idea de máquinas más específicas para resolver problemas aún más complejos. A manera de resumen, enlistamos los principales hitos tecnológicos en la historia:

  • La computadora mecánica fue concebida por el matemático Charles Babbage, en 1822. Esta se basó en el mecanismo del telar de Jacquard, el cual consistía en tarjetas perforadas.
  • En 1834 Ada Lovelace diseña el primer algoritmo empleado en la Máquina Analítica de Babbage.
  • En 1848 George Boole introduce el álgebra booleana, para la creación de expresiones lógicas que faciliten una mejor estructura en los algoritmos.
  • En 1936 Alan Turing (Criptógrafo británico) idea la teoría del computador (Máquina de Turing), que consistía en una cinta infinita dividida en celdas de memoria. Bajo este concepto se crean los primeros computadores.
  • A principios de la década de 1940 se crea el primer computador de propósito general, ENIAC (Electrónic Numerical Integrator and Computer). Posteriormente en 1945 John Von Neumann diseña el computador de programa almacenado, donde se almacenan las instrucciones en el computador.
  • En 1949 se construyen los computadores de programa almacenado EDSAC (Electronic Delay Storae Automatic Calculator) y el EDVAC (Electronic Discrete Variable Automatic Computer).
  • En 1950 se crea el lenguaje ensamblador.
  • Durante la década de 1950 se crea los primeros lenguajes de programación tales como COBOL y FORTRAN.
  • En 1973, se crea el primer computador personal (PC), Alto por Xerox.
  • En 1985, se comienza a comercializar el sistema Operativo Windows.
  • En 1989 se populariza internet.
  • En 1993 nace la World Wide Web (WWW).

 

Figura 1. Una mujer programando en el ENIAC, recuperado de Huffington Post (2016).

Los lenguajes de programación son el medio por el que los humanos se comunican con las máquinas. Los primeros lenguajes de programación surgieron en la primera mitad del siglo XX, junto con el desarrollo de las primeras computadoras. Estos lenguajes de programación eran de bajo nivel, es decir, que se basaban en instrucciones binarias o en códigos específicos para cada máquina. Algunos ejemplos de estos lenguajes son el Lenguaje Máquina, el ensamblador o el autocode.

A medida que las computadoras se fueron haciendo más complejas y potentes, se hizo necesario crear lenguajes de programación de alto nivel, que fueran más cercanos al lenguaje humano y que permitieran expresar conceptos abstractos y algoritmos de forma más sencilla y eficiente. Estos lenguajes se podían traducir a código máquina mediante compiladores o intérpretes. Algunos de los primeros lenguajes de alto nivel fueron FORTRAN, LISP, COBOL o ALGOL.

Desde entonces, los lenguajes de programación han evolucionado siguiendo diferentes paradigmas, como el imperativo, el funcional, el orientado a objetos, el declarativo o el concurrente. Cada paradigma ofrece una forma diferente de estructurar y resolver los problemas computacionales. Algunos ejemplos de lenguajes de programación actuales son C, Java, Python, Ruby o PHP, por mencionar algunos. Los lenguajes de programación y las computadoras han cambiado la forma en que los humanos interactúan con la información, la ciencia, la tecnología y la sociedad. Gracias a ellos, se han podido crear aplicaciones y sistemas que facilitan la comunicación, el aprendizaje, el entretenimiento, la salud, la seguridad y el desarrollo humano.

Figura 2. Primera Computadora Personal Xerox Alto 1973. Recuperado de Timetoast Timelines (2016).

 

Generaciones de los lenguajes de programación.

Desde la invención del ENIAC, los lenguajes de programación se han implementado para comunicar y ejecutar instrucciones para que el computador pueda ejecutarlos.  De la mano de la tecnología, los lenguajes de programación también han evolucionado, según algunos autores, se contemplan al menos cinco generaciones de los lenguajes de programación:

  • Primera generación: perteneciente al lenguaje máquina, en esta etapa se realizaban cálculos en secuencias binarias (unos y ceros) para operaciones de suma y resta, por ejemplo.
  • Segunda generación: pertenecen los lenguajes ensambladores, aquí se introducen cierto tipo de reglas que facilitan la estructura de ejecución proporcionada por el usuario. El lenguaje ensamblador ejecuta la instrucción y codifica al lenguaje máquina para ser interpretado.
  • Tercera generación: en esta generación pertenecen los lenguajes considerados de nivel alto, aquí se hacen aún más elegibles para el ser humano las reglas e instrucciones (comandos) en los lenguajes de programación.
  • Cuarta generación: comienzan a desarrollarse los lenguajes orientados a propósitos específicos, concretamente a áreas de interés, como por ejemplo SQL que es un lenguaje de programación para trabajar bases de datos.
  • Quinta generación: los lenguajes de programación se expanden a campos aún más específicos, como por ejemplo la Inteligencia Artificial.
Sobre el artículo

Texto creado bajo la licencia de Raiko EngineLink. Queda estrictamente prohibida la replicación de este y todos los contenidos creados fuera de esta plataforma. ©, Todos los derechos reservados. Descubre cómo hacemos esto.

manage_search