La historia del lenguaje de programación C++ comienza a principios de los años 70,
con un programador de nombre Dennis Ritchie que trabajaba en los laboratorios de
AT&T Bell.
Trabajando con un lenguaje llamado BCPL inventado por Martin Richards (que luego
influyó para crear el B de Ken Thompson), Dennis deseaba un lenguaje que le
permitiese manejar el hardware de la misma manera que el ensamblador pero con
algo de programación estructurada como los lenguajes de alto nivel. Fue entonces
que creó el C que primeramente corría en computadoras PDP-7 y PDP-11 con el
sistema operativo UNIX. Pero los verdaderos alcances de lo que sería éste, se verían
poco tiempo después cuando Dennis volvió a escribir el compilador C de UNIX en el
mismo C, y luego Ken Thompson (diseñador del sistema) escribió UNIX
completamente en C y ya no en ensamblador.
Al momento de que AT&T cedió (a un precio bastante bajo) el sistema operativo a
varias universidades, el auge de C comenzaba. Cuando fueron comerciales las
computadoras personales, empezaron a diseñarse varias versiones de compiladores
C, éste se convirtió en el lenguaje favorito para crear aplicaciones.
En 1983, el Instituto Americano de Normalización (ANSI) se dio a la tarea de
estandarizar el lenguaje C, aunque esta tarea tardó 6 años en completarse, y
además con la ayuda de la Organización Internacional de Normalización (ISO), en el
año de 1989 definió el C Estándar.
A partir de éste, se dio pie para evolucionar el lenguaje de programación C. Fue en
los mismos laboratorios de AT&T Bell, que Bjarnes Stroutstrup diseñó y desarrolló
C++ buscando un lenguaje con las opciones de programación orientada a objetos.
Ahora el desarrollo del estándar de C++ acaparaba la atención de los diseñadores.
En el año 1995, se incluyeron algunas bibliotecas de funciones al lenguaje C. Y con
base en ellas, se pudo en 1998 definir el estándar de C++.
Algunas personas podrían pensar que entonces C++ desplazó a C, y en algunos
aspectos podría ser cierto, pero también es cierto que algunas soluciones a
problemas requieren de la estructura simple de C más que la de C++, C
generalmente es usado por comodidad para escribir controladores de dispositivos y
para programas de computadoras con recursos limitados.
La base del lenguaje fue creada por programadores y para programadores, a
diferencia de otros lenguajes como Basic o Cobol que fueron creados para que los
usuarios resolvieran pequeños problemas de sus ordenadores y el segundo para que
los no programadores pudiesen entender partes del programa.
C++ es un lenguaje de nivel medio pero no porque sea menos potente que otro, sino
porque combina la programación estructurada de los lenguajes de alto nivel con la
flexibilidad del ensamblador. La siguiente tabla muestra el lugar del lenguaje respecto
a otros.
Ejemplos de lenguajes estructurados:
En la actualidad los lenguajes que originalmente eran no estructurados han sido
modificados para que cumplan con esta característica, tal es el caso de Basic, que
actualmente soporta la programación orientada a objetos. Podemos notar cuando un
lenguaje de programación es viejo si vemos que no cumple con la programación
estructurada. C++ es, también, un lenguaje orientado a objetos, y es el mismo caso
de Java. Al referirnos a lenguaje estructurado debemos pensar en funciones, y
también a sentencias de control (if, while, etc.)
Muchos compiladores de C++ están orientados hacia el desarrollo bajo entornos
gráficos como Windows 98. Este sistema operativo está escrito casi completamente
en C, incluso cuando la compañía Microsoft creó el compilador Visual C++. “Pero
deberíamos preguntarnos si esta aparente anomalía refleja una mentalidad inmadura
de C++ entre los diseñadores del este sistema y el deseo de la compañía de influir
en el código de sistema operativo existente o una relativa idoneidad de los dos
lenguajes para escribir sistemas operativos”2. En lo personal, pensaría en otra razón
popular entre usuarios de Linux.
C++ es un superconjunto de C, cualquier compilador de C++ debe ser capaz de
compilar un programa en C. De hecho la mayoría admite tanto código en C como en
C++ en un archivo. Por esto, la mayoría de desarrolladores compilan con C++ su
código escrito en C, incluso hay quienes, siendo código en C ponen la extensión
CPP (extensión de los archivos de código C++) y lo compilan con C++ (hasta hace
unos días yo hacía esto), lo cual no es recomendable por norma al programar.
Cuando se compila código C en un compilador C++ este debe cumplir con los
estándares definidos en 1989, cualquier palabra definida en el estándar de 1999 no
funcionará.
La evolución de C++ continúa, y la diversidad de compiladores contribuye a ello.