2010-06-20 7 views
9

Ci sono siti Web come raccolte di librerie python/perl/R. Perché non ce n'è uno equivalente per c?Perché non esiste una rete di archiviazione c completa?

Ho cercato su Internet e ho trovato solo un piccolo sito Web che si chiama CCAN. Ci sono solo poche librerie in quel sito.

Se ho bisogno di librerie aggiuntive per la programmazione c, dove posso trovarle? Esiste un sito web ben organizzato delle librerie c?

Grazie.

+3

Basta guardare più in profondità nel vostro repository distro Linux, librerie C si annidano in là. –

+0

È molto più facile trovare buone librerie C se sai quello che vuoi. Che tipo di libreria stai cercando? –

risposta

8

Se ho bisogno di librerie aggiuntive per la programmazione c, dove posso trovarle? Esiste un sito web ben organizzato delle librerie c?

Non noto a me al di fuori di CCAN.

Il problema qui è che C non ha alcuna specifica anche per le librerie. Confrontalo ad es. pacchetti in Java o Python o Perl.

E anche in questo caso, C è piuttosto spoglio e lascia molte cose da fare alle librerie. Astrazione I/O, gestione della memoria, multi-threading, integrazione del sistema operativo - piccole differenze nel modo in cui le librerie funzionano con una qualsiasi delle risorse potrebbero renderle incompatibili, impedendo che vengano utilizzate nello stesso progetto.

Ho visto in passato alcune librerie commerciali di terze parti per C, che coprono un bel po 'di funzionalità, ma sinceramente non posso raccomandarle e onestamente non ricordo nemmeno i loro nomi - perché spesso causavano più problemi che aiutando. (OK, sto mentendo: erano raramente causando irrisolvibili problemi:. Sono le numerose soluzioni alternative che stavano causando spesso i problemi in seguito)

In caso contrario, per C si potrebbe desiderare di controllare la Glib e (fare non fraintendetemi) per controllare anche lo standard C, poiché nella mia esperienza pochi conoscono molte delle utility già presenti nella libreria standard stessa. E beh, Google è tuo amico: un sacco di codice di dominio pubblico è lì per te per lanciare semplicemente così com'è nel tuo progetto.

-1

Perché è necessario un sito Web per una raccolta di librerie C? Basta usare Google.

+8

A volte Google non è così efficace per questa attività, perché "c" è solo una singola lettera? – Jfly

+1

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

+1

@progmr: code.google.com è attualmente adatto per la navigazione di contenuti ospitati su code.google.com, ma inutile per il gazillion di altre librerie C in circolazione. Prova a cercare "xerces api" in code.google.com e vedrai cosa intendo. @Luca: Google è utile per trovare una libreria specifica, ma non è utile per le librerie di navigazione. –

6

Non so di nessuno che abbia studiato questo dettaglio, anche se sarei curioso di vedere gli studi. Sono sicuro che ha a che fare con la natura della comunità di programmazione C stessa.

Penso che una parte importante (forse la principale?) Della risposta sia: prima del WWW, non esisteva una singola risorsa per ottenere le librerie per una determinata lingua. Le persone hanno ottenuto le loro librerie e la conoscenza delle biblioteche, attraverso molti mezzi diversi: attraverso BBS, mailing list, newsgroup e periodici. La comunità C risale a questo periodo, ovviamente, e ho notato una differenza simile nella cultura rispetto ad altre lingue di questo periodo e prima.

Penso che un'altra parte della risposta abbia a che fare con il decentramento generale della cultura C stessa. Non esiste un compilatore C, nessuna comunità di sviluppo C, che funga da hub e punto potenziale per i progetti a cui attaccarsi. E la comunità di sviluppo C è enorme, che guida ulteriormente questo decentramento e frammentazione.

Nel caso delle librerie C, le distribuzioni di SO in realtà fanno un buon lavoro di raccolta di utili librerie C/C++. (Con la sfortunata eccezione di Windows, credo.) Eseguono un lavoro migliore in questi linguaggi rispetto alla maggior parte degli altri, probabilmente poiché C e C++ sono linguaggi di sistema così importanti su queste piattaforme.

Per quanto riguarda CCAN, penso che cosa renderebbe un progetto più utile, dato il numero di diversi distributori di codice C in circolazione, è quello di avere un singolo sito che si collega alle varie librerie sui propri siti nativi, piuttosto che cercare di farli caricare direttamente su CCAN. Penso che ci sia un utilizzo in questo e in quello di Google, che ti darà un sacco di rumore se proverai a cercare le librerie. La domanda è: tu e la maggior parte delle comunità C là fuori abbraccerai un sito del genere se esistesse?

Si potrebbe essere divertito per vedere come CPAN avuto il suo inizio: http://www.brainbell.com/tutors/Perl/CPAN_History.htm

CPAN evoluto proprio come la sua comunità ha fatto. Quindi la stessa cosa potrebbe accadere nel mondo C/C++ se la leadership e l'interesse ci sono. Ma non è ancora successo.

2

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

=> vale a dire aggiungere lang:"C" nella query di ricerca

+2

Vorrei stare lontano da quello. Qualche tempo fa ho cercato la ricerca del codice di Google per le implementazioni UTF-8, proprio come un sondaggio/confronto, e tra le 20 circa che ho esaminato, non una sola era corretta. Tutti hanno violato le specifiche in vari modi, e la metà o più ha avuto errori importanti che potrebbero causare vulnerabilità o problemi di usabilità. –

0

c'è un sistema di repository e la gestione delle dipendenze Maven-come detto Biicode.
Non c'è ancora un'enorme raccolta di librerie, ma è possibile aggiungere forche di progetti open source o informare gli autori originali a riguardo.

EDIT: la società dietro biicode is dead

EDIT2: il successore spirituale sembra essere conan.io