Motivación
Durante 2018 se constituyó, dentro del proceso de estandarización del lenguaje ISO C++, el subgrupo de trabajo SG20 (C++ Education Study Group) focalizado en proporcionar directrices curriculares y de enseñanza para C++.
El documento de trabajo
P1389R0 publicado por dicho grupo (disponible en
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1389r0.html) anima a integrar herramientas básicas de programación en los cursos introductorios de C++, tales como
package managers,
build systems y
debuggers, entre otras. Nuestra
serie de posts anterior, centrada en la integración de Visual Studio Code, Mingw-w64 y CMake en el entorno MS Windows, responde precisamente a esta directriz.
Asimismo, el documento P1389R0 sugiere facilitar a nuestros estudiantes una breve introducción acerca del lenguaje en la que se aprecien sus fortalezas y casos de uso moderno, pero que huya de comparaciones innecesarias con el lenguaje C que puedan llevar a considerar C++ un mero 'C con clases', un error muy extendido incluso en nuestros días. En efecto, aun cuando muchas fuentes se refieren a C/C++ como una unidad temática, ambos lenguajes son de hecho radicalmente diferentes, hasta el punto de que introducir C como primer paso en un curso en C++ puede resultar dramáticamente contraproducente (un punto éste analizado de forma muy convincente en CppCon 2015: Kate Gregory 'Stop Teaching C', https://youtu.be/YnWhqhNdYyk). Este post pretende proporcionar una presentación al lenguaje en la línea sugerida por P1389R0.