CLion et la communauté open source : évoluer ensemble

Dès son origine, le développement de CLion a été guidé par les besoins des développeurs C et C++ du monde entier. Notre IDE multiplateforme a été conçu pour simplifier le développement, booster la productivité et rendre plus agréable le travail sur le code C++.
Nous sommes ravis de franchir une nouvelle étape dans notre collaboration avec la communauté en proposant désormais CLion gratuitement pour une utilisation à des fins non commerciales, notamment pour le développement open source. Si vous contribuez à un projet OSS ou débutez votre propre projet, c’est le moment idéal pour l’essayer.
Jetez un œil aux projets open-source qui ont déjà été réalisés grâce à CLion : des débogueurs puissants, des outils de rétro-ingénierie, des gestionnaires de fichiers légendaires et des bibliothèques utilisées partout dans le monde. Ce sont des exemples parlants de ce que les développeurs peuvent accomplir lorsqu’ils disposent des bons outils.

JSON for Modern C++
Créé par : Niels Lohmann
Pile technologique : C++11+ en-tête uniquement, CMake
Outils JetBrains utilisés : CLion
Créé dans le cadre d’un projet universitaire, JSON for Modern C++ a commencé comme fichier d’assistance pour la journalisation de données analytiques, puis a évolué pour devenir l’une des bibliothèques C++ les plus populaires sur GitHub, avec près de 45 000 étoiles.
« …nous cherchions à envoyer des informations d’analyse à un serveur. J’ai commencé par une instruction printf native, afin de placer toutes les variables requises dans un objet JSON. Très rapidement, la journalisation est devenue plus complexe, ce qui m’a amené à déplacer toutes les fonctions liées à JSON dans un fichier d’en-tête. Cela a finalement abouti à une bibliothèque JSON indépendante pour C++. »
Cette bibliothèque offre une interface de style C++ intuitive pour l’analyse et la sérialisation JSON. Elle est largement utilisée dans des secteurs divers, allant du développement de jeux à l’aérospatiale.
« En tant que mainteneur et contributeur open source, je ne dispose que d’un temps limité pour travailler sur mes projets. La simplicité d’exécution des tests offerte par CLion, l’intégration avec Git et les avertissements Clang-Tidy m’aident à rester productif et utiliser mon temps au mieux. »
Projets pour l’avenir :
- Automatiser le processus de publication manuel.
- Optimiser les performances et mettre de l’ordre dans l’architecture.
- Établir la feuille de route de la prochaine version majeure : 3.0.0.

Midnight Commander
Maintenu par : Yury Zaytsev
Pile technologique : C, Autotools, POSIX, ncurses
Outils JetBrains utilisés : CLion, PyCharm
Midnight Commander (ou mc
) est un gestionnaire de fichiers classique pour terminal au riche héritage. Inspiré de Norton Commander au début des années 90, il est depuis plébiscité par la communauté Unix pour son interface visuelle, sa conception axée sur le terminal et ses possibilités d’extension.
Yury, qui gère ce projet depuis 2015, se souvient de l’origine de son intérêt :
« Je me souviens très bien avoir été fasciné par les panneaux bleus de Norton Commander lorsque j’avais cinq ans. Des années plus tard, j’ai redécouvert les systèmes Unix et le premier programme que j’ai installé a été Midnight Commander. La magie opérait toujours et c’est ce qui m’a poussé à participer à ce projet. »
Son interface à deux volets a aidé plusieurs générations d’utilisateurs à interagir avec les systèmes Unix plus efficacement. Malgré les défis rencontrés, le développement se poursuit plusieurs décennies plus tard. Les outils de JetBrains aident à garder une base de code vieillissante facile à explorer :
« CLion a totalement transformé ma façon d’écrire du code. Les outils de refactorisation et de renommage, la navigation dans le code et des fonctionnalités telles que la prise en charge de l’expansion de macros, ont été particulièrement utiles pour assurer la maintenance de bases de code très volumineuses et datant de plusieurs décennies. »
Projets pour l’avenir :
- Migrer vers une boucle d’événements.
- Poursuivre la refactorisation et la modernisation de l’infrastructure pour améliorer la maintenabilité.
- Incorporer un moteur de script léger pour rendre le logiciel extensible.

ImHex
Créé par : Nikolaij Sägesser
Pile technologique : C++, Qt, LLVM, langage de script personnalisé
Outils JetBrains utilisés : CLion, Rider, WebStorm
ImHex a débuté en tant que projet secondaire pour explorer la conception de langages de programmation et les structures de données binaires. Son créateur, Nikolaij Sägesser, a mis au point un langage personnalisé pour définir les types de données et les appliquer aux données binaires. Ce qui a commencé comme un outil de visualisation de ces définitions s’est transformé en un éditeur hexadécimal multiplateformes pour la rétro-ingénierie.
« J’ai commencé ce projet dans le cadre d’un mémoire de licence, car j’avais moi-même besoin de ce type d’outil et plusieurs amis étaient très insatisfaits de ce qui existait alors. Cela m’a motivé pour la suite. »
ImHex inclut maintenant des scripts personnalisés, des définitions de formats, de l’analyse en temps réel et la visualisation binaire, tout cela dans une interface utilisateur graphique multiplateforme moderne.
« J’utilise principalement CLion et c’est génial. Le fait de pouvoir utiliser GCC et Clang sur toutes les plateformes, notamment sous Windows, où MSVC est incontournable, a tout changé. Avec CLion, je peux utiliser des chaînes d’outils open source, des débogueurs et des configurations de build là où j’en ai besoin, et cela fonctionne tout simplement. »
Projets pour l’avenir :
- Réécrire le langage de programmation personnalisé pour utiliser une machine virtuelle pour l’exécution.
- Étendre la prise en charge des formats binaires.
- Améliorer l’interface et l’expérience utilisateur, et ajouter des outils de visualisation.

x64dbg
Créé par : Duncan Ogilvie
Pile technologique : C++, Qt, CMake (désormais cmkr
), système de plugin personnalisé
Outils JetBrains utilisés : CLion
x64dbg est un débogueur reconnu pour la rétro-ingénierie, notamment sous Windows, dans lequel les outils de débogage accessibles ont traditionnellement du retard. Duncan a débuté ce projet alors qu’il était encore au lycée pour combler cette lacune, en s’inspirant d’OllyDbg.
« Il n’existait rien d’intuitif pour le débogage à 64 bits à cette époque, et j’ai été suffisamment naïf pour me lancer dans la création d’un outil pour cela. 😅 »
Aujourd’hui, avec plus de quatre millions de téléchargements, x64dbg est utilisé partout dans le monde et par des personnes et organisations très variées, qui vont des hackers indépendants aux chercheurs institutionnels, jusqu’au Vatican. Ce projet a récemment été migré vers CMake via cmkr
, ce qui simplifie le développement et les contributions.
« Alors qu’on avait auparavant un processus de build compliqué en plus de 10 étapes, la migration a permis de passer à la simple ouverture d’un dossier dans CLion et à la sélection de « build ». Et surtout, les configurations CMake et de débogage peuvent se faire depuis une simple interface utilisateur, sans recourir à des fichiers JSON. »
x64dbg est désormais bien établi, mais son évolution continue. Le développement de fonctionnalités a ralenti en raison d’une disponibilité plus limitée, mais les principaux domaines de travail actuels incluent :
- Passer au compilateur Visual Studio 2022 pour la prise en charge des fonctionnalités modernes de C++.
- Intégrer la prise en charge des types Windows et d’AVX-512.
- Extraire les composants de l’interface utilisateur dans une bibliothèque multiplateforme réutilisable.
Ces projets, et les personnes qui les font vivre, sont représentatifs de l’esprit du développement open source : résoudre des problèmes complexes, partager des connaissances et créer des outils dont le monde dépend. Nous pensons que ce travail est important et nous sommes fiers de contribuer à ces efforts.
Demandez votre licence gratuite pour créer votre prochain grand projet en toute confiance, rapidement et confortablement.
Auteur de l’article original en anglais :