fbpx

C++, la piedra angular de la programación. [Curso gratuito]

¿Qué es C++?

C++ es un lenguaje de programación orientado a objetos, multiplataforma e imperativo, que deriva del lenguaje ANSI C o simplemente C. A decir verdad, nos podemos referir a C++ como un súper conjunto de C, al que se le añaden algunas cualidades y características que C no posee.

Su antecesor fue desarrollado para estar fuertemente ligado al hardware, y C++ no es la excepción. Esto logra que mantenga una generosa potencia en programación de bajo nivel. Sin embargo, no es para nada una limitante si se necesita trabajar con un alto nivel de abstracción, ya que para ello se han implementado diversas mejoras y elementos.

Como dijimos al principio, a C++ se le puede llamar un súperconjunto de C, sin embargo y estrictamente hablando, C++ es otro lenguaje, esto debido en parte a que, a pesar de los grandes esfuerzos que se han hecho para que C++ sea totalmente compatible con C, sigue existiendo código escrito en C que es incompatible en C++.

Resumiendo: La definición “oficial” del lenguaje nos dice que C++ es un lenguaje de propósito general basado en el C, al que se han añadido nuevos tipos de datos, clases, plantillas, mecanismo de excepciones, sistema de espacios de nombres, funciones in-line, sobrecarga de operadores, referencias, operadores para manejo de memoria persistente, y algunas utilidades adicionales de librería (también se puede decir que la librería Estándar C es un subconjunto de la librería C++).

Un poco de historia

Bjarne Stroustrup empezó la búsqueda de algún lenguaje que reemplazara a C, inventado en los laboratorios Bell, que pasaron a ser los AT&T Bell Labs, desde 1979, donde él y sus colegas en el departamento de investigación, tenían permiso de experimentar con nuevas maneras de construir software.

C++ se convirtió en el lenguaje de programación más popular jamás creado. Se diseñó como un lenguaje de “propósito general“: podría correr en prácticamente cualquier plataforma y en casi todas partes, especialmente en videojuegos y sistemas embebidos.

Después de publicar su libro C++ Programming Language, Stroustrup continuó activo en la comunidad de C++, trabajando en el diseño del lenguaje, escribiendo compiladores y ayudando a hacer del lenguaje un estándar ISO en 1998. Actualmente es un profesor distinguido y poseedor de un puesto en el Colegio de Ingeniería en Ciencias de la Computación en la Universidad A&M de Texas.

En una entrevista que se le realizó Stroustrup en 2010 para conmemorar los 25 años del lenguaje se le hicieron algunas preguntas, de las cuales me gustaría resaltar las siguientes:

Primera pregunta: En su visión, ¿cuál es el impacto más significativo que C++ ha tenido en la cultura en general, no los programadores, sino en el día a día de todos los seres humanos?

Stroustrup: La última medida del éxito de cualquier lenguaje de programación debe ser el impacto de sus aplicaciones.

[…] Cuando está bien hecho, el software es invisible. Hay muchos pequeños procesadores en mi pequeña cámara fotográfica, pero no pienso en mi cámara como una computadora. Hay docenas de computadoras en un auto moderno, pero aún pienso en él como un auto.

Las personas ven las aplicaciones, pero primero yo debo tratar con los fundamentos y la infraestructura que soporta estas aplicaciones. Sospecho que si hubiese tenido algo de sentido comercial, cada computadora y casi cualquier gadget habría tenido una calcomanía que dijera: “C++ Inside“.

En general, no pienso que la gente aprecia lo mucho que depende del software, Dada la complejidad de la sociedad moderna y de los sistemas de transportación modernos, es justo decir que la mayoría de la gente podría morir de hambre si no tuviese software. Así como sin electricidad, calor y teléfonos.

Segunda pregunta: Con respecto a los nuevos sistemas, protocolos y aplicaciones, ¿qué es lo que admira? Stroustrup: Considero que un lenguaje de programación (una herramienta para programar) que se describa así mismo como la única y la mejor herramienta para todos y para todo problema, es una idea infantil. Si alguien clama que tiene el lenguaje perfecto o es un tonto, o un vendedor, o ambas cosas.

Areas en las que C++ destaca

Sistemas operativos. Ya sea Windows, macOS o Linux, todos ellos están programados en C ++. C / C ++ es la columna vertebral de todos los sistemas operativos conocidos, ya que se trata de un lenguaje de programación rápido y sólido, lo que lo convierte en una opción ideal para desarrollar un sistema operativo. Además, C está bastante cerca del lenguaje ensamblador, lo que ayuda a escribir módulos de sistemas operativos de bajo nivel.

Navegadores. Los motores de renderizado de varios navegadores web están programados en C ++ simplemente porque ofrecen la mejor velocidad. Los motores de renderización requieren una ejecución más rápida para asegurarse de que los usuarios no tengan que esperar a que aparezca el contenido en la pantalla. Como resultado, tales sistemas de baja latencia emplean C ++ como lenguaje de programación.

Nube o Sistemas distribuidos. Las grandes organizaciones que desarrollan sistemas de almacenamiento en la nube y otros sistemas distribuidos, también usan C ++ porque se conecta muy bien con el hardware y es compatible con muchas máquinas. Los sistemas de almacenamiento en la nube utilizan sistemas de archivos escalables que funcionan cerca del hardware. C ++ se convierte en la opción favorita en dichas situaciones porque está cerca del hardware y, las bibliotecas de subprocesos múltiples en C ++ proporcionan una alta concurrencia y tolerancia de carga mayor, la cual es indispensable en tales escenarios.

Sistemas embebidos. Gran parte de los sistemas integrados (como máquinas médicas, relojes inteligentes, etc.) utilizan C ++ como lenguaje de programación principal, esto se debe como dijimos antes, a la cercanía del lenguaje con el hardware, que proporciona una grandiosa optimización de recursos y logra un excelente tiempo en la ejecución del código.

Videojuegos. Una de las principales ventajas que tiene C++ es la rapidez con la que el código puede ser ejecutado, y uno de los campos en los que este factor es fundamental es en los videojuegos, por ello C++ se utiliza para desarrollar tanto motores de videojuegos como los videojuegos en sí, por lo que aprender C++ es una excelente opción si deseamos adentrarnos profesionalmente en la industria de los videojuegos.

¿Por dónde comenzar?

Si estás leyendo este artículo, es seguramente porque te interesa aprender este lenguaje de programación, el cual es el lenguaje con el que se inician muchos desarrolladores. Nosotros en Azul School te hemos preparado un Curso Profesional de C++ en el que aprenderás desde las bases del lenguaje hasta un nivel intermedio del mismo. Y lo mejor de todo es que ¡Es gratuito! Así que no pierdas esta oportunidad de iniciarte como un programador profesional.

Tan solo tienes que registrarte en Azul School con tu cuenta de correo principal (ya que se enviará un mail para la verificación de la cuenta) y con ello ya tendrás acceso a todas las clases del curso. Y si llegas a tener alguna duda durante el curso, no te preocupes, pues siempre estaremos ahí para apoyarte y resolver tus preguntas, tan necesitas publicarla en Azul School, la red social de los programadores.

Por último, me gustaría cerrar con una cita a una pregunta de la entrevista que se le realizó a Stroustrup, la cual dice lo siguiente:

Pregunta: ¿Algún consejo para los programadores jóvenes?

Stroustrup: Sospecho que dar consejos es más fácil comparado con hacer caso a ellos. Conozca sus elementos fundamentales (algoritmos, estructura de datos, arquitectura de las computadoras y sistemas), y aprenda varios lenguajes de programación al punto que pueda usarlos como cualquier otro idioma.

Conozca su campo (que no tenga que ver con el cómputo) adecuadamente: matemáticas, biología, historia, óptica, lo que sea. Trate de comunicarse efectivamente verbal y por escrito. Gaste una irracional cantidad de tiempo en tópicos verdaderamente difíciles. Trate de hacer algo que marque la diferencia en nuestro mundo.

Artículos relacionados

Respuestas