Code ::Blocks version stable est enfin sorti ! Malgré l’excellence de ce logiciel, le manque d’une version stable s’est fait cruellement sentir pendant quelques longues années. Non que le projet ait stagné, bien au contraire ! L’équipe de Code ::Blocks a tenu à ne sortir la version stable qu’une fois qu’un haut niveau de perfection était atteint. Et le résultat est au rendez-vous ! Plus la peine d’installer une nightly-build pour pouvoir profiter de toutes les dernières fonctionnalités de cet IDE qui est réellement extrêmement complet. Le logiciel se lance nettement plus vite (ce qui était l’un des reproches récurrents), et devrait devenir multilingue sous-peu. L’équipe de Code ::Blocks a décidé d’adopter la méthode de numérotation de série d’Ubuntu, et l’on passe donc de la version 1.0RC1 à la version 8.2 (février 2008) !

Code ::Blocks est un IDE initialement conçu pour le C/C++, qui se veut simple et complet. Il est considéré à l’heure où j’écris ces lignes comme le meilleur IDE C++ open source.

En fait, Code ::Blocks en lui-même est à peine plus qu’un simple éditeur de texte avec coloration syntaxique, mais il est conçu autour d’une architecture de plugins, le rendant du coup très complet et très extensible. Il est capable d’utiliser presque tous les compilateurs gratuits du marché, tel que mingw32, Microsoft Visual C++ Toolkit, Borland C++ et j’en passe. Il dispose également de l’auto complétion, d’un plugin pour correctement indenter votre code. Tous les plugins sont fournis avec le logiciel, vous n’aurez pas à les télécharger un à un.

Bon allez, je me lance dans une (vaine) tentative de lister les fonctionnalités de ce formidable IDE :

  • Environnement proche de Visual Studio 8, avec possibilité de reprendre l’apparence de ses onglets.
  • Possibilité d’afficher les boites de dialogue utiles au bon moment, avec quelques bidouillages pas bien méchants dans les options.
  • L’apparence en général est presque entièrement paramétrable (couleur, polices, taille des bordures, positions des « sous-fenêtres » qui sont par ailleurs ancrables).
  • Sauvegarde automatique (pas par défaut).
  • Enroulement/déroulement des blocs de code.
  • Auto-complémentation : on tape un mot-clé, on tape Ctrl-J, et on a le bloc de code correspondant.
  • Évidemment, rechercher/remplacer avec une variante pour rechercher dans tous les fichiers du projet, tous les fichiers ouverts ou d’un chemin (au choix).
  • Explorateur de symboles.
  • Possibilité de définir un code par défaut pour les fichiers.
  • Possibilité de définir vos propres raccourcis.
  • Templates pour des projets consoles, librairies, et GUI avec différentes librairies telles que wxWidgets, QT, API win32, GTK+, openGL, etc.
  • Possibilité de créer vos propres templates.
  • Possibilité de faire des espaces de travail, équivalent des solutions de Visual Studio.
  • Possibilité de faire plusieurs « chemins » par projet (un Debug et un Release par exemple, mais aussi une bibliothèque et à côté le programme qui l’utilise.
  • Possibilité de lancer des recherches sur internet par un simple clic-droit.
  • Par un simple clic-droit, on peut trouver la déclaration de telle ou telle variable.
  • Importation des projets Dev C++, Visual studio .net, Visual C++, ainsi que des « solutions ».
  • Variables Globales, « variables » qui contiennent le chemin des bibliothèques. Très utile si vous installez votre bibliothèque autre part, ou si vous avez plusieurs ordinateurs.
  • Coloration syntaxique paramétrable, paramétrée pour le C++ par défaut.
  • Possibilité de choix des mots-clés.
  • Indentation automatique.
  • Support de 13 compilateurs dont 2 pour le langage D, le reste pour le C/C++.
  • Interfacé avec GDB (Gnu DebuGger).
  • Pour chaque programme utilisé (compilateur, debogueur), possibilités de lui envoyer n’importe quel paramètre, la plupart étant enregistrés avec des cases à cocher pour les compilateurs.
  • Todo list : permet de gérer des TODO, de les ajouter avec un simple clic-droit, de les afficher dans une boite flottante.
  • Architecture de plugin (je note ici quelques plugins qui ne sont pas entièrement intégrés dans l’environnement, mais seulement par le menu Plug-In. Mais en vérité, presque toutes les fonctionnalités de Code ::Blocks lui sont données par des plugins) :
    • AStyle plugin (pour réindenter correctement votre code)
    • Class Wizard (pour créer une ébauche de classe)
    • Code statistics (vous dit combien vous avez de lignes de code, de lignes tout cours, etc.)
    • Dev C++ DevPack updater/installer (sans commentaire)
    • wxSmith un outils RAD pour wxWidgets
    • Code snippets (on enregistres des bouts de code que l’on réutilisera plus tard)
    • BYO Games (un snake et un tetris ! Si Si je vous jure, et ce plug-in vous dit même d’arrêter de travailler quand vous en avez trop fait.)

Code ::Blocks peut être comparé à Dev-C++. Cependant, si vous avez testé Dev-C++, vous pouvez vous apercevoir, vu la liste faite plus haut, que Code ::Blocks est plus, beaucoup plus complet. Un autre point qui n’est pas cité dans la liste, la stabilité du logiciel : Code ::Blocks a quelques bogues très mineurs, mais ne crashe pratiquement jamais. Soit dit en passant, cette liste n’est pas complète et sera de toute façon vite dépassée ; de plus cette liste est pour Windows et il existe d’autres plugins sous linux, dont un pour QT. Il est donc peut être plus intéressant de le comparer à Visual C++, très bon lui aussi (surtout pour le deboguage), mais plus compliqué, lourd, et surtout qui n’est pas libre. La nouvelle version de Code ::Blocks est selon moi aussi bonne voire meilleure que Visual C++, tout en gardant sa simplicité d’utilisation, et sa licence bien évidemment.

Conclusion

A mon avis Code ::Blocks est un excellent choix d’IDE. Malgré quelques bogues (très) mineurs, comme l’auto-complétion qui refuse parfois de fonctionner (je viens de citer le bogue le plus gênant), les « gros » bogues, eux, se font très rares.

On aurait pu également lui reprocher de mettre du temps à se lancer et de consommer beaucoup de ressources, mais c’est un bien moindre mal par rapport à ce qu’on gagne, c’est à dire un logiciel extrêmement stable, complet, extensible, simple d’utilisation malgré tout, et très personnalisable.

De plus, il est également possible de programmer en langage D ; et vous pourrez aussi créer vos propres plugins.

Pour finir, il est multi-plateformes, et les « nightly build » (correctifs qui paraissent quasiment chaque jour, réduisant constamment le nombre de bogues) existent toujours.

[Merci à Yoch pour la mise à jour de cette notice sur le Framawiki.