CLion y la comunidad del código abierto: creciendo juntos

Desde el principio, CLion ha ido evolucionando en función de las necesidades de los desarrolladores de C y C++ de todo el mundo. Nuestro IDE multiplataforma se creó para simplificar el desarrollo, aumentar la productividad y hacer que trabajar con C++ fuese más agradable.
Nos complace dar el siguiente paso en nuestra colaboración continua con la comunidad: ahora, CLion es gratuito para fines no comerciales, entre los que se incluye el desarrollo de código abierto. Si contribuye a un proyecto de código abierto o está iniciando el suyo propio, nunca ha sido mejor momento para probarlo.
Solo tiene que echar un vistazo a los siguientes proyectos de código abierto creados con CLion: depuradores potentes, herramientas de ingeniería inversa, gestores de archivos legendarios y bibliotecas utilizadas en todo el mundo. Son ejemplos brillantes de lo que los desarrolladores pueden llegar a hacer con las herramientas adecuadas.

JSON for Modern C++
Creado por: Niels Lohmann
Pila tecnológica: biblioteca C++11+ compuesta solamente de archivos de encabezado, CMake
Herramientas de JetBrains utilizadas: CLion
JSON for Modern C++, creado en el marco de un proyecto universitario, empezó siendo un archivo de ayuda para registrar datos analíticos y, más adelante, se convirtió en una de las bibliotecas de C++ más populares de GitHub, con casi 45 000 estrellas.
«…necesitábamos enviar información analítica a un servidor. Empecé con una instrucción printf nativa, con todas las variables necesarias en un objeto JSON. Rápidamente, el registro se volvió más complejo, así que trasladé todas las funciones relacionadas con JSON a un archivo de encabezado, que se convirtió en una biblioteca JSON independiente para C++».
La biblioteca ofrece una interfaz intuitiva de estilo C++ para el análisis sintáctico y la serialización de JSON. Se utiliza muchísimo en sectores que van desde el desarrollo de juegos a la industria aeroespacial.
«Como mantenedor y colaborador de código abierto, no tengo mucho tiempo para trabajar en mis proyectos. La ejecución simple de pruebas de CLion, la integración con Git y las advertencias de Clang-Tidy me ayudan a ser productivo y aprovechar al máximo el tiempo».
Planes de futuro:
- Automatizar el proceso de publicación manual.
- Optimizar el rendimiento y limpiar la arquitectura.
- Planificar la hoja de ruta para la próxima versión principal: 3.0.0.

Midnight Commander
Mantenido por: Yury Zaytsev
Pila tecnológica: C, Autotools, POSIX, ncurses
Herramientas de JetBrains utilizadas: CLion, PyCharm
Midnight Commander (o mc
) es un gestor clásico de archivos para terminal con un legado rico. Inspirado originalmente en Norton Commander, de principios de los 90, se ha convertido en un gestor de archivos muy utilizado y apreciado en la comunidad Unix por su interfaz visual, su diseño orientado a usarse en terminales y su extensibilidad.
Yury, que mantiene el proyecto desde 2015, recuerda su fascinación inicial:
«Recuerdo muy bien la fascinación que sentí por los paneles azules de Norton Commander cuando tenía cinco años. Años más tarde, redescubrí los sistemas Unix y el primer programa que instalé fue Midnight Commander. Me devolvió esa magia, y fue entonces cuando empecé a colaborar».
Su interfaz de doble panel ayudó a varias generaciones de usuarios a interactuar con los sistemas Unix de forma más eficiente. A pesar de los retos, décadas después se sigue desarrollando y las herramientas de JetBrains hacen que sea fácil navegar por una base de código un tanto envejecida:
«CLion ha cambiado por completo mi forma de escribir código. Las herramientas de refactorización y cambio de nombre, la navegación por el código y funciones como la compatibilidad con la expansión de macros son indispensables para mantener bases de código masivas con décadas de antigüedad».
Planes de futuro:
- Migrar a un bucle de eventos.
- Seguir con la refactorización y la modernización de la infraestructura para mejorar la capacidad de mantenimiento.
- Incorporar un motor de scripts ligero para mejorar la extensibilidad.

ImHex
Creado por: Nikolaij Sägesser
Pila tecnológica: C++, Qt, LLVM, lenguaje de script personalizado
Herramientas de JetBrains utilizadas: CLion, Rider, WebStorm
ImHex comenzó como un proyecto paralelo para explorar el diseño de lenguajes de programación y estructuras de datos binarias. Su creador, Nikolaij Sägesser, inventó un lenguaje personalizado para definir tipos de datos y superponerlos a datos binarios. Lo que empezó como una herramienta para visualizar esas definiciones se convirtió en un potente editor hexadecimal multiplataforma para la ingeniería inversa.
«Lo empecé durante mi trabajo de final de grado: necesitaba herramientas de este tipo y tenía amigos que estaban muy frustrados con lo que ya existía. Eso me motivó para seguir adelante».
Ahora, ImHex ofrece scripts personalizados, definición de formatos, análisis en tiempo real y visualización binaria, todo ello en una elegante interfaz gráfica de usuario multiplataforma.
«Utilizo principalmente CLion y ha sido increíble. Poder usar GCC y Clang en todas las plataformas, especialmente en Windows, donde no se cuestiona el uso de MSVC, cambia las reglas del juego. Con CLion, puedo utilizar cadenas de herramientas de código abierto, depuradores y configuraciones de compilación en todas partes, y funciona a la perfección».
Planes de futuro:
- Reescribir el lenguaje de programación personalizado para utilizar una máquina virtual para la ejecución.
- Ampliar la compatibilidad con formatos binarios.
- Mejorar la interfaz y la experiencia de usuario y añadir más herramientas de visualización.

x64dbg
Creado por: Duncan Ogilvie
Pila tecnológica: C++, Qt, CMake (ahora cmkr
), sistema de complementos personalizado
Herramientas de JetBrains utilizadas: CLion
x64dbg es un depurador muy conocido en el campo de la ingeniería inversa especialmente en Windows, donde las herramientas de depuración accesibles se han ido quedando atrás. Duncan lo puso en marcha como proyecto de fin de grado para llenar ese vacío, inspirándose en OllyDbg.
«En aquel momento, no había nada que fuera fácil de usar para depurar a 64 bits y yo era lo suficientemente ingenuo como para crear algo que sí lo fuera. 😅»
Ahora, con más de cuatro millones de descargas, x64dbg lo usan todo tipo de personas en todo el mundo, desde hackers independientes a investigadores institucionales, e incluso el Vaticano. El proyecto ha migrado hace poco a CMake a través de cmkr
, lo que hace que el desarrollo y la contribución sean más sencillos.
«Pasamos de un proceso complicado de compilación de más de 10 pasos a, simplemente, abrir la carpeta en CLion y pulsar “compilar”». Lo mejor es que las configuraciones de CMake y de depuración se pueden hacer desde una sencilla interfaz de usuario y no requieren manipular archivos JSON».
A pesar de estar bien establecido, x64dbg sigue evolucionando. Aunque el desarrollo de funcionalidades se ha ralentizado por falta de tiempo, estas son algunas de las principales áreas de trabajo actualmente:
- Cambiar al compilador Visual Studio 2022 para que sea compatible con las funcionalidades de C++.
- Integrar la compatibilidad con tipos de Windows y con AVX-512.
- Extraer componentes de la interfaz de usuario en una biblioteca multiplataforma reutilizable.
Estos proyectos, y las personas que hay detrás, son el espíritu del código abierto: resolver problemas difíciles, compartir conocimientos y crear herramientas de las que depende el mundo. Creemos que este trabajo es importante y estamos orgullosos de contribuir a estos esfuerzos.
Obtenga su licencia gratuita y cree su próximo gran proyecto con confianza, rapidez y comodidad.
Artículo original en inglés de: