Programación

Lenguaje C++ – Introducción

¿Por qué no empezar con el popular Java? ¿O el tan elogiado Python? ¿O Swift para hacer aplicaciones para el iPhone “rápidamente”?¿Por qué iniciar con el Lenguaje C++ que tiene fama de todo, menos de “fácil”?

Pienso que cualquier lenguaje que se aborde es un buen punto de partida, siempre que se haga con método y rigor, al menos en el estudio del primer lenguaje que estudiamos, considero es muy importante.

Sin embargo, desde mi punto de vista algunas de las razones para empezar con C++ y no con otro lenguaje de programación son las siguientes:

  1. Es lo más cercano a C estándar, el cual nos abre la puerta al mundo del bajo nivel y de la programación de sistemas evitando la necesidad de usar ensamblador, de modo que una eventual transición puede resultar más cómoda que desde cualquier otro lenguaje a C.
  2. C++ es un lenguaje multiparadigma: Soporta programación genérica (Plantillas), estructurada, modular, abstracción de datos y orientada a objetos (1). Lo cual nos permitirá familiarizarnos con cualquier otro lenguaje sin demasiada complicación.
  3. Amplia disponibilidad de plataformas de trabajo. Prácticamente hay por lo menos un compilador para cada arquitectura y sistema operativo existente. Además debemos sumar la disponibilidad de compiladores en línea, lo cual elimina prácticamente cualquier barrera para poder programar, en cualquier momento, en cualquier lugar, en cualquier dispositivo.
  4. A partir de C++ se desarrollaron muchos de los más importantes y poderosos lenguajes de programaciones modernos. Java, Python, Swift, C#, PHP y un largo etcétera, comparten en mayor o menor medida, sintaxis, nomenclatura estructuras de control, entre otras características. De modo que abordar esos lenguajes será relativamente fácil una vez que se utilice C++ con comodidad.
  5. C++ nos permite hacer lo que C (programación a bajo nivel) y podemos programar a alto nivel cualquier cosa que necesitemos. Algo que no necesariamente permiten lenguajes más modernos.
  6. Finalmente y no menos importante, C++ sigue siendo uno de los lenguajes de programación mejor pagados.

No me extenderé más, creo que esas razones tienen el suficiente peso como para seguir ahondando en el tema.

Historia de C++

Bjarne Stroustrup

C++ fue creado por Bjarne Stroustrup en los Laboratorios Bell (dónde más pudo ser…) desde 1979 y fue presentado formalmente el 14 de octubre de 1985, derivado, como casi siempre, de una necesidad del propio creador,

C++ se benefició de los siguientes lenguajes:

  • C: Extendió C heredando su potencia de bajo nivel ANSI C++ de hecho C++ es un superconjunto de C
  • Simula 67: es la principal fuente de inspiración de C++ (Según su autor), de aquí se heredó el concepto de Clase
  • Algol-68: Sobrecarga de operadores
  • ADA y CLU: Plantillas y manejo de excepciones
  • Smalltak: Abstracción y herencia
  • Modula-2: Capacidad de organización

Con respecto a C, tal vez lo más importante que se deba decir es que no hay algo que se pueda hacer en C que no se pueda hacer con C++(2).

Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.

Compiladores de C++

Para programar cómodamente en C++ es conveniente contar con un compilador instalado de forma local, aunque cabe señalar que existen compiladores en línea que nos permiten compilar programas en C++ siempre y cuando se cuente con una conexión a Internet. Esta opción puede ser útil si nos encontramos aburridos y queremos practicar en lugar de mantener pláticas intrascendentes, por ejemplo.

Compiladores en línea

Alguno de los compiladores en línea que podemos utilizar son:

C++ Shell – http://cpp.sh/ Simple pero eficiente compilador, ligero, sin adornos

C++ Shell

GDB Online https://www.onlinegdb.com/, soporta C, C++, Java, Python 3 y PHP

GDBOnline

JDoodle https://www.jdoodle.com/online-compiler-c++ Permite programar sin los indicadores de ámbito para la librería estándar

JDoodle

CodeChef https://www.codechef.com/ide Permite compilar una amplia variedad de lenguajes de programación, pero tiene el problema de que tiene límites de transferencia que pueden impedir que puedas utilizarlo (como se muestra en el recuadro rojo)

Codechef

TutorialsPoint https://www.tutorialspoint.com/compile_cpp_online.php Otro compilador en línea multilenguaje con el plus de contar con una amplia variedad de extensos tutoriales(en inglés). Este quizá sea uno de los más completos IDE disponibles en línea permitiendo incluso trabajar con proyectos de más de un archivo.

TutorialsPoint

Nota acerca de los compiladores online

Cuando utilices uno de estos compiladores notarás que algunos compiladores no definen lo que se denomina nombre de espacio,  std en este caso, lo que provocará que, o lo definimos manualmente, o deberemos utilizar los streams de datos utilizando los identificadores de ámbito (::), no importa si no entiendes en este momento éste párrafo. De hecho acostúmbrate, en la programación es común introducir un término, a continuación utilizarlo, y hasta después (a veces mucho, mucho, después) entender cómo funciona.

Compiladores locales

En el caso de utilizar un compilador en el equipo local, deberemos descargar un compilador e instalar la versión correcta de acuerdo a nuestro sistema operativo, actualmente también hay que tomar en cuenta la arquitectura, considera que algunos compiladores para CPU’s de 32 bit no trabajarán en uno de 64 bit y viceversa.

Para Windows y Linux podemos utilizar

DevCpp (Para arquitectura de 32 bits, en Windows, en Linux no se ha probado), Actualmente no recibe actualizaciones mayores dado que el desarrollador inicial ha abandonado el proyecto, te sugiero ya no usarlo, hay versiones más modernas y con soporte por parte de la comunidad de usuarios.

CodeBlocks con el compilador de C++ Se ha probado con éxito en Windows XP, 7, 8 y 10 (32 y 64 bit), también hay versiones disponibles para Linux (varias distros) y MacOS. El repositorio actualizado al 06/03/22 para Windows lo puedes encontrar en https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/ de los archivos disponibles descarga codeblocks-20.03-setup-nonadmin.exe que es el archivo que tiene el compilador para C++.

Auque reconozco la calidad de los productos que la extinta Borland, no recomiendo utilizar los antiguos IDE Turbo C++ y Borland C++ básicamente por el tiempo de abandono que tienen y por la gran dependencia de muchas librerías específicas de Borland que no son compatibles con compiladores más recientes, dificultando la portabilidad de los programas realizados en estas plataformas.

Para el desarrollo profesional tarde o temprano tendrás que utilizar una solución propietaria (de paga), antes de llegar a este nivel, puedes aprovechar Visual Studio de Microsoft, la versión Community es gratuita y te prepara antes de dar el salto. Es una buena opción que vale la pena consideres. Sin embargo en etapas tempranas puede resultar “demasiado”, por lo que no lo sugiero si apenas empiezas.

Zinjal. Este IDE relativamente reciente es funcional, ligero y ofrece todo lo necesario que necesitarás como estudiante de C++, de acuerdo a su desarrollador, es tan potente como para que desarrolles tus propios IDE’s. Lo considero una alternativa bastante aceptable. Una de las grandes ventajas es que ha sido desarrollado en español, está disponible para Windows, MacOS y Linux.

Nuestra elección

Para este mini curso utilizaré como IDE/Compilador en línea:

GDB Online https://www.onlinegdb.com

Y cuando los programas se hagan más complejos, utilizaré

CodeBlocks con el compilador GCC/G++

Codeblocks

Sin embargo nada te impide utilizar el IDE que más te agrade, incluso tu bloc de notas puede ser suficiente.

Antes de empezar (ahora sí) para que reflexiones un poco, te dejo la respuesta de Bjarne Stroustrup a la pregunta realizada por la revista Wired con motivo del 25 aniversario del lenguaje C++

Wired.com: ¿Algún consejo para los programadores jóvenes?

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

Conoce tu campo (que no tenga que ver con el cómputo), adecuadamente: matemáticas, biología, historia, óptica, lo que sea. Trata de comunicarte efectivamente verbal y por escrito. Gasta una irracional cantidad de tiempo en tópicos verdaderamente difíciles. Trata de hacer algo que haga la diferencia en nuestro mundo.” (3)

Revista Weired: https://www.wired.com/2010/10/1014cplusplus-released/all/1#ixzz12OBqPT5L consultado el 04/09/2017
Powered by Ethical hack

Referencias

Fuente Imágenes

Tutorial de C++ by eHack


 C++ Presentación by Roberto C. González is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
eHack Blog

Entradas recientes

dnsenum

El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…

11 meses hace

Las 24 listas negras de IPv4 más comunes.

En esta entrada te presento 24 de las listas negras más comunes que los servidores…

1 año hace

ZoomIt – SysInternals

ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…

2 años hace

WinObj – SysInternals

WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…

2 años hace

WhoIs – SysInternals

Whois realiza el registro de registro para el nombre de dominio o la dirección IP…

2 años hace

VolumeID – SysInternals

VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…

2 años hace