C++ es usado por muchas aplicaciones que tienen como prioridad la optimización de recursos y el buen control sobre la memoria, por supuesto, sin dejar de lado la escalabilidad, modularidad y la distribución por varias plataformas.
C++ es tan poderoso que se utiliza en muchos proyectos importantes: TensorFlow para Machine Learning, V8 como el motor de JavaScript para Google Chrome y Node.js, Electron para crear aplicaciones de escritorio con HTML, CSS y JavaScript, entre otras.
Además, muchos motores de Videojuegos como Unreal Engine, Creation Engine, CryEngine o Source usan C++. De hecho, ¿me crees si te digo que Unity 3D también utiliza C++? Si, programamos en C#. Pero Unity lo compila todo a C++. 😱😮
C++ es una extensión de C, algo así como C con “super poderes”. Son tan parecidos que puedes llegar a confundirte. La diferencia es que tenemos todas las características de la Programación Orientada a Objetos para que nuestra experiencia de desarrollo sea excelente.
Si conoces el mundo de JavaScript, podríamos decir que es como programar JS con ES6 o versiones más avanzadas: ganamos muchos superpoderes y una mejor sintaxis pero, por ahora, seguimos teniendo que compilar a JavaScript “viejo” para que los navegadores lo puedan entender.
¿A qué me refiero con “características de la POO”?
Como sabes, la programación orientada a objetos es un paradigma de programación. Una forma de organizar la lógica de nuestras aplicaciones. Podemos agregar o quitar “objetos” sin necesidad de cambiar todo el código del programa. Al usar POO nuestras aplicaciones están basadas en clases y objetos y C++ se encarga de que podamos usar estos tipos de datos.
Debemos ser muy conscientes y entender muy bien algunos conceptos como la abstracción, encapsulamiento, herencia, el polimorfismo y algunas cosas más. Pero no te preocupes. Si estás familiarizado con otros lenguajes de programación orientados a objetos, incluso si no, aprender a implementar todos estos conceptos en C++ te resultará muy sencillo, y eso por no decir “obvio”.
C++ es muy veloz porque nos permite hacer un buen manejo de la memoria sin necesidad de máquinas virtuales ni recolectores de basura.
Tal vez hayas oído hablar de los apuntadores, son como cualquier otra variable pero, en vez de guardar texto, números o cualquier otro tipo de dato, pueden acceder a la dirección en memoria del resto de nuestras variables. Esto significa que podemos modificar la posición donde se guardan nuestras variables o también que tenemos mucho más control sobre ellas.
También tenemos muchas librerías, nativas o desarrolladas por la comunidad, que nos ayudan a realizar tareas sencillas y complejas. Por ejemplo: iostream
nos ayuda a imprimir o recibir datos desde la consola y tomar decisiones a partir de ellos, fstream
nos ayuda a leer y escribir archivos del disco duro. Así como estas existen muchas más.
C++ es un lenguaje complejo pero es constantemente actualizado. Podemos darnos cuenta de esto porque, a pesar de ser relativamente “viejo”, su sintaxis es relativamente sencilla y agradable. Claro, esto es mi opinión. A ti podría no gustarte. Pero eso significa que debes darle una oportunidad y ver de primera mano todo lo que C++ nos puede ofrecer.
Repl.it es una herramienta de desarrollo online para programar desde la web. No debemos instalar nada. Repl.it se encarga de instalar, compilar y realizar todas las tareas complicadas. Solo tienes que preocuparte por aprender y programar tus proyectos.
Más adelante puedes interesarte por instalar un entorno de desarrollo en tu computadora. Recuerda que C++ puede funcionar con diferentes compiladores, traductores de C++ a código que tu computadora pueda entender. Cfront fue uno de los primeros compiladores de C++ pero también existe GCC (GNU Compiler Collection), otro compilador que además es público, gratuito y open source.
También tenemos IDEs: programas que nos ofrecen ayudas para escribir nuestro código más fácilmente. En algunos casos incluso pueden escribir parte del código por nosotros. La opción más popular es Code::Blocks y nos ofrece la posibilidad de instalar los compiladores de una vez. 😉
Te invito a tomar el Curso de C++ en Platzi. Vamos a crear un juego de laberintos mientras aprendemos a programar en C++. No necesitas ningún conocimiento previo pero, definitivamente, conocer otro lenguaje te puede ayudar muchísimo, no solo a programar mejor en C++ sino en cualquier otro lenguaje.
También puedes tomar el Curso de Programación Orientada a Objetos para profundizar más en este concepto y aprender a organizar mucho mejor la lógica de tus aplicaciones.
¡#NuncaParesDeAprender! 🤓💚
Muy bueno 😄
Excelente post, como siempre muy didáctico. Sólo debo aclarar que GCC es Software Libre, lo que tiene sus diferencias con un software open source.
Con este post, creo que me decido a buscar volver a ser Platzi, pero esta vez Expert.
Gracias @juandc por explicarlo tan simple pero con todo lo necesario para entender C++
🙌 Super!!
Yes
¿Alguien más tiene problemas con CodeBlocks en Mac?
prueba compilando directo en tu terminal! es mejor =)
¿La licencia de JetBrains por correo institucional se renueva después del año o se acaba completamente?
La puedes renovar, pero tienes que hacerlo manualmente, se me olvido decirte que debe ser .edu el correo forzosamente para que te den la licencia gratis.
¿Pero esa renovación cuesta dinero, o se puede hacer mientras se tenga el correo educativo?
Mientras tengas correo educativo puedes renovarlo las veces que quieras, sigo estudiando y he usado productos de Jetbrains desde el 2016.
Puedes hacerlo por consola como dice Ricardo, o probar Visual Studio Community.
Interesantísimo!