2010-06-20 4 views
9

Il existe des sites Web en tant que collections de bibliothèques python/perl/R. Pourquoi il n'y en a pas d'équivalent pour c?Pourquoi il n'y a pas de réseau d'archives c complet?

J'ai cherché sur Internet et j'ai seulement trouvé un petit site Web s'appelant CCAN. Il n'y a que quelques bibliothèques sur ce site.

Si j'ai besoin de bibliothèques supplémentaires pour la programmation c, où puis-je les trouver? Y a-t-il un site Web bien organisé des bibliothèques c?

Merci.

+3

regarder plus profondément dans votre juste référentiel Linux distro, les bibliothèques c se cachent là-dedans. –

+0

Il est beaucoup plus facile de trouver de bonnes bibliothèques C si vous savez ce que vous voulez. Quel genre de bibliothèque recherchez-vous? –

Répondre

8

Si j'ai besoin de bibliothèques supplémentaires pour la programmation c, où puis-je les trouver? Y a-t-il un site Web bien organisé des bibliothèques c?

Aucun connu à l'extérieur du CCAN.

Le problème ici est que C n'a pas de spécification même lâche pour les bibliothèques. Comparez cela à, par exemple. paquets en Java ou Python ou Perl. Et même alors, C est un os assez dénudé laissant beaucoup de choses à mettre en œuvre par les bibliothèques elles-mêmes. L'abstraction des E/S, la gestion de la mémoire, le multithreading, l'intégration du système d'exploitation - des différences mineures dans le fonctionnement des bibliothèques avec l'une des ressources peuvent les rendre incompatibles, empêchant leur utilisation dans le même projet. J'ai vu dans le passé quelques bibliothèques commerciales tierces pour C, couvrant beaucoup de fonctionnalités, mais franchement, je ne peux pas les recommander et honnêtement je ne me souviens même pas de leurs noms - car ils causaient souvent plus de problèmes que vraiment portion. (OK, je mentais: ils étaient rarement causant impossibles à résoudre problèmes. Ce sont les nombreuses solutions de contournement qui étaient à l'origine souvent les problèmes plus tard)

Sinon, C vous pouvez vérifier la Glib et (faire ne vous méprenez pas) pour vérifier également la norme C, car, d'après mon expérience, peu d'entre eux connaissent réellement les utilitaires déjà présents dans la bibliothèque standard elle-même. Et bien, Google est votre ami: beaucoup de code de domaine public est là pour que vous jetiez tout simplement dans votre projet.

-1

Pourquoi avez-vous besoin d'un site Web pour une collection de bibliothèques C? Utilisez simplement Google.

+8

Parfois, Google n'est pas très efficace pour cette tâche, parce que «c» est seulement une seule lettre? – Jfly

+1

Utilisez http://code.google.com – progrmr

+1

@progmr: code.google.com est actuellement bon pour la navigation sur des sites hébergés sur code.google.com, mais inutile pour les autres bibliothèques C de gazillion. Essayez de chercher "xerces api" dans code.google.com, et vous verrez ce que je veux dire. @Luca: Google est bon pour trouver une bibliothèque spécifique, mais pas aussi utile pour parcourir les bibliothèques. –

6

Je ne connais personne qui a étudié cela en détail, bien que je serais curieux de voir les études. Je suis sûr que cela a à voir avec la nature de la communauté de programmation C elle-même.

Je pense qu'une grande partie (peut-être la partie primaire?) De la réponse est: avant le WWW, il n'y avait pas une seule ressource pour obtenir des bibliothèques pour une langue particulière. Les gens ont obtenu leurs bibliothèques, et la connaissance des bibliothèques, par de nombreux moyens différents: à travers les BBS, les listes de diffusion, les groupes de discussion et les périodiques. La communauté C date de cette époque, bien sûr, et j'ai remarqué une différence de culture similaire en ce qui concerne les autres langues de cette période et avant.

Je pense qu'une autre partie de la réponse a trait à la décentralisation générale de la culture C elle-même. Il n'y a pas de compilateur C, pas de communauté de développement C, qui sert de hub et de point d'ancrage pour les projets. Et la communauté de développement C est énorme, ce qui entraîne davantage cette décentralisation et éclatement.

Dans le cas des bibliothèques C, les distributions de système d'exploitation réussissent en fait très bien à collecter des bibliothèques C/C++ utiles. (Avec l'exception malheureuse de Windows, je crois.) Ils font un meilleur travail dans ces langages que la plupart des autres, probablement parce que C et C++ sont des langages systèmes si importants sur ces plateformes. En ce qui concerne le CCAN, je pense que ce qui ferait un projet plus intéressant, étant donné le nombre de distributeurs différents de code C, est d'avoir un seul site qui relie les différentes bibliothèques sur leurs propres sites natifs, plutôt que d'essayer de les envoyer directement au CCAN. Je pense qu'il y a une utilité à cela dans et à part de Google, ce qui vous donnera beaucoup de bruit si vous essayez simplement de chercher des bibliothèques. La question est, est-ce que vous et la plupart des communautés C embrasserais un tel site s'il existait?

Vous pourriez être amusé de voir comment CPAN a fait ses débuts: http://www.brainbell.com/tutors/Perl/CPAN_History.htm

CPAN comme sa évolué communauté a fait. Donc, la même chose pourrait arriver dans le monde C/C++ si le leadership et l'intérêt sont là. Mais ce n'est pas encore arrivé.

2

utilisation http://www.google.com/codesearch?q=lang:%22C%22 variante de http://www.google.com/codesearch

=> à savoir ajouter lang:"C" dans la recherche requête

+2

Je resterais loin de ça. Il y a quelques temps, j'ai effectué une recherche sur le code Google pour trouver des implémentations UTF-8, tout comme un sondage/une comparaison, et parmi les 20 ou plus que j'ai examinés, pas un seul n'était correct. Ils ont tous violé la spécification de diverses façons, et la moitié ou plus ont eu des bugs majeurs qui pourraient entraîner des vulnérabilités ou des problèmes d'utilisabilité. –

0

Il y a un dépôt Maven comme système de gestion et de dépendance appelé Biicode.
Il n'y a pas encore une grande collection de bibliothèques, mais vous pouvez ajouter vous-même des forks de projets open source ou en informer les auteurs originaux.

EDIT: la société derrière biicode is dead

EDIT2: le successeur spirituel semble être conan.io

Questions connexes