Ingeniería en comunicaciones y electrónica
Tema 1.1 del Plan de Estudios de POO IPN
La programación ha evolucionado drásticamente desde sus inicios, pasando de lenguajes crípticos y cercanos al hardware hasta abstracciones modernas que permiten desarrollar software complejo con mayor facilidad.
En este artículo, exploraremos las etapas clave de esta evolución, con especial enfoque en el lenguaje C/C++, que marcó un antes y después en la historia de la computación.
Los primeros lenguajes: programación en código máquina y ensamblador
En los albores de la computación, los programadores trabajaban directamente con código máquina (ceros y unos) o ensamblador, un lenguaje de bajo nivel que representaba instrucciones legibles para humanos pero aún muy cercanas al hardware.
Ejemplo en Ensamblador (x86):
mov eax, 5 ; Mueve el valor 5 al registro EAX
add eax, 3 ; Suma 3 al valor almacenado en EAX
Este enfoque era tedioso y propenso a errores, pero necesario para aprovechar al máximo los limitados recursos de las primeras computadoras.
Lenguajes de alto nivel: el nacimiento de C
En la década de 1970, Dennis Ritchie desarrolló C en los laboratorios Bell, creando un lenguaje que combinaba la eficiencia del ensamblador con una sintaxis más legible.
Características clave de C:
- Portabilidad: Un programa en C podía compilarse en diferentes arquitecturas.
- Eficiencia: Permite manipular memoria directamente (punteros).
- Estructuras de control: Introdujo if-else, while, for, etc.
Ejemplo en C:
#include <stdio.h>
int main() {
int numero = 5;
numero += 3;
printf("El resultado es: %d\n", numero);
return 0;
}
C se convirtió en el lenguaje base para sistemas operativos como Unix y sentó las bases para lenguajes posteriores.
C++: programación orientada a objetos y más
Bjarne Stroustrup extendió C en los años 80, creando C++, que añadió soporte para Programación Orientada a Objetos (POO) y características modernas sin sacrificar rendimiento.
Mejoras de C++ sobre C:
- Clases y objetos: Permite encapsular datos y comportamientos.
- Templates (genéricos): Facilita la reutilización de código.
- STL (Standard Template Library): Proporciona estructuras de datos eficientes.
Ejemplo en C++:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numeros = {1, 2, 3};
numeros.push_back(4); // Añade un elemento al vector
for (int num : numeros) {
std::cout << num << " ";
}
return 0;
}
Muchos lenguajes actuales heredaron conceptos de C/C++:
- Java y C#: Sintaxis similar, pero con recolección de basura.
- Python y JavaScript: Aunque más abstractos, usan estructuras inspiradas en C.
- Rust y Go: Enfocados en rendimiento y seguridad, aprendieron de los aciertos y errores de C/C++.
C++ se utiliza en áreas críticas como videojuegos, sistemas embebidos y desarrollo de alto rendimiento.
La evolución de la programación ha sido un viaje desde lo abstracto hasta lo eficiente, y C/C++ desempeñó un papel crucial en este proceso. Aunque hoy existen lenguajes más fáciles de aprender, entender C/C++ sigue siendo esencial para cualquier programador que desee dominar los fundamentos de la computación.
Gracias por leernos.
Si te gusto este artículo, únete a nuestra comunidad en Telegram o WhatsApp para más…
¡Hasta la próxima!