Il y a plein d'autres projets comme ça, je cite juste ceux que j'utilise :
tinyxml2, parseur XML qui tient en un seul fichier C++
le langage lua, dont l'implémentation est prévue pour être intégrée à un programme C. (La documentation officielle explique même quels fichiers modifier.)
la bibliothèque TCLAP d'analyse de ligne de commande pour C++, entièrement écrite en fonctions inline dans des fichiers d'en-tête. (Donc la distribution n'a rien à compiler.)
À mon avis la notion de distribution est différente, sans être incompatible, avec la démarche de développement dont tu parles. Il y a des paquets qui ne sont jamais compilés mais qui sont utiles (timezone-data), des paquets qui ne contiennent que des scripts shell et qui sont donc non compilables (mon gestionnaire de paquets me donne les noms de mktwpol, mediacrush-cli, guilt, bashmount, split2flac) et que tu pourrais aussi bien les télécharger dans /usr/local/bin. Je citais aussi l'exemple de TCLAP entièrement écrit en header C++.
Eh bien ces logiciels sont empaquetés dans les distribution. Cela apporte des facilité pour les utilisateurs :
#include et ça marche, vu que tout est déjà dans /usr/include et /usr/lib
les corrections de bug de l'auteur originel sans avoir à m'en préoccuper (c'est ma distribution met à jour ces paquets).
pas besoin de distribuer du code externe dans les sources de mon projet. Aussi, le script de compilation de mon projet est plus clair.
Je suis utilisateur gentoo. Toute une part du travail des développeurs de gentoo est de débusquer les bibliothèques imbriquées (bundled/embedded library) et les retirer des sources, pour que les paquets utilisent toujours la version de la distribution. Par exemple un développeur gentoo critiquait Blender, dont les sources incluait une bibliothèque externe (libmv) qui elle-même incluait d'autres bibliothèques externes (glog, gflags, ldl). Une en particulier (eltopo) n'avait pas de makefile, pas de licence, ne compilait pas avec gcc 4.7 (ou plutôt les dévs de Blender n'avaient pas pris la peine de copier le fichier de licence et ils compilent avec un gcc ancien). Désormais, gentoo expose ces bibliothèques pour tous les utilisateurs. Tous les projets (pas seulement Blender) peuvent les utiliser et elles sont mises à jour régulièrement (donc même pour Blender, au lieu d'utiliser sa vieille version moisie/bugguée incluse dans les sources officielles).
[^] # Re: Forums en anglais
Posté par JGO . En réponse à la dépêche C : Science et éducation : EZ-Draw 1.2 est sorti. Évalué à 7. Dernière modification le 19 avril 2014 à 15:22.
Il y a plein d'autres projets comme ça, je cite juste ceux que j'utilise :
À mon avis la notion de distribution est différente, sans être incompatible, avec la démarche de développement dont tu parles. Il y a des paquets qui ne sont jamais compilés mais qui sont utiles (timezone-data), des paquets qui ne contiennent que des scripts shell et qui sont donc non compilables (mon gestionnaire de paquets me donne les noms de mktwpol, mediacrush-cli, guilt, bashmount, split2flac) et que tu pourrais aussi bien les télécharger dans /usr/local/bin. Je citais aussi l'exemple de TCLAP entièrement écrit en header C++.
Eh bien ces logiciels sont empaquetés dans les distribution. Cela apporte des facilité pour les utilisateurs :
Je suis utilisateur gentoo. Toute une part du travail des développeurs de gentoo est de débusquer les bibliothèques imbriquées (bundled/embedded library) et les retirer des sources, pour que les paquets utilisent toujours la version de la distribution. Par exemple un développeur gentoo critiquait Blender, dont les sources incluait une bibliothèque externe (libmv) qui elle-même incluait d'autres bibliothèques externes (glog, gflags, ldl). Une en particulier (eltopo) n'avait pas de makefile, pas de licence, ne compilait pas avec gcc 4.7 (ou plutôt les dévs de Blender n'avaient pas pris la peine de copier le fichier de licence et ils compilent avec un gcc ancien). Désormais, gentoo expose ces bibliothèques pour tous les utilisateurs. Tous les projets (pas seulement Blender) peuvent les utiliser et elles sont mises à jour régulièrement (donc même pour Blender, au lieu d'utiliser sa vieille version moisie/bugguée incluse dans les sources officielles).