C'est une question que m'a posé un collègue : est-ce que tu peux me conseiller un bon IDE C++ pour Linux, qui serait capable de bien réagir à de gros projets.

Ma réponse a été « non ». Ça fait un bout de temps que je n'ai pas utilisé d'IDE sous Linux. C'est donc le moment de faire un petit tour d'horizon de ce qui existe.

Je précise le contexte :

  • l'IDE doit fonctionner sous Linux, bien entendu,
  • il doit être capable de bien réagir (être réactif) avec un projet de plus d'un milion de lignes de code et de quelques miliers de fichiers sources.

Puisque ce collègue travail comme moi dans le domaine du jeu vidéo et que le code source d'Unreal vient d'être rendu accessible, je trouve là un bon candidat.

Vérifions quand même le nombre de lignes de code de l'Unreal Engine :

Total Physical Source Lines of Code (SLOC) = 3,751,128
(Données générées en utilsant 'SLOCCount' de David A. Wheeler)

Dont 1,740,661 dans le répertoire ThirdParty. On est globalement sur du deux milions de lignes de code. Avec 19154 fichiers dont 8063 dans ThirdParty. Ok, c'est qualifiant.

Je me lance donc dans une compilation du moteur. À noter que les scripts et renseignements à la racine sont très simples. Un petit coup d’œil pour vérifier ce qui est fait tout de même. Le script de mise en place commence à installer des dépendances. Mono, Qt,... et 3 Go de dépendances venant de GitHub. Euh...

Github build
Checking / downloading the latest archives
Checking dependencies (excluding Win32, Win64, Mac, HTML5, Android)...
Received 1035/15883 files (29,5/3041,7mb; 0,39mb/s; 0%)...

Je vais donc faire une petite pause le temps que ça arrive.

Les IDE

Pour les IDE, je vais commencer par Clion (en beta), QtCreator et pourquoi pas le classique Eclipse/CDT. Dans la liste, en fonction du temps que j'ai, se trouvent aussi : Code::Blocks, Codelite, KDevelop, Anjuta, Geany,... et deux trois autres. Je ne sais pas s'ils sont toujours vivants.

Au niveau des critères, je pense examiner :

  • Est-ce que le programme est toujours maintenu (le C++ évoluant, c'est nécessaire pour un IDE),
  • Y a t'il un support des C++ récents,
  • Est-ce qu'il y a une intégration native de framework de tests unitaires,
  • L'IDE a-t-il un mode de debug et avec quels fonctionnalités,
  • Quelles sont les capacités de navigation dans le code
  • Le prix ? Est-ce Open Source ?
  • Les dépendances, la facilité d'installation
  • Les supports de Build System (uniquement interne, autotools, cmake,...)

Suite au prochain épisode...