- Per framework, in genere vado solo con framework grandi e maturi con un sacco di moduli pre-scritti e una grande comunità. In generale, la scelta di un framework rispetto all'altro non ridurrebbe di molto la quantità di lavoro che è necessario dedicare al proprio codice, alcuni framework potrebbero incoraggiare un codice più bello, altri potrebbero rendere certe operazioni facili, ma in genere riassumono molto piccola differenza per lo sforzo di sviluppo totale. Tuttavia, i framework più diffusi potrebbero avere più moduli già pronti da sfruttare e in questo modo è possibile risparmiare molto più tempo e impegno.
- Per le librerie di piccole dimensioni e non, in generale potresti apportare modifiche tu stesso se necessario senza molti problemi, quindi di solito considererei la comunità come un ulteriore vantaggio. La maggior parte delle piccole biblioteche è gestita da una sola persona, ma è comunque meglio che costruirsi. Per le biblioteche di grandi dimensioni, tuttavia, disporre di una community attiva e matura e della documentazione è essenziale perché difficilmente si è in grado di apportare modifiche da soli con la stessa facilità.
- La licenza è essenziale. Per le librerie one-man, è probabile che sia necessario apportare modifiche alla libreria, quindi è essenziale che la loro licenza ti consenta di farlo in base ai termini con cui sei d'accordo.
Per le librerie di piccole dimensioni, dovresti sempre presumere che dovrai biforcarti e che il progetto è già stato abbandonato. Questo di solito non è un problema, specialmente se il progetto è ospitato su Github o BitBucket, perché rendono il progetto di altre persone molto semplice. Per le librerie di piccole dimensioni, puoi sempre prendere in carico la manutenzione del progetto da solo, se il manutentore originale se ne è andato o se stanno pianificando di portare la direzione del progetto in luoghi in cui non vuoi andare.
Sono meno interessato all'attività del progetto, le biblioteche mature che hanno raggiunto il loro senso di "perfezione" in genere dovrebbero solo eseguire correzioni di bug, quindi la loro attività è rallentata. L'attività del progetto è importante solo se la biblioteca coinvolge un target in continua evoluzione, ad esempio, un wrapper per il servizio esterno dovrebbe essere costantemente aggiornato con l'evolversi del servizio esterno, quindi lo sviluppo attivo è essenziale, ma una libreria matematica non avrebbe bisogno di molto nuovo sviluppo una volta che ha tutte le funzionalità necessarie.
Per le biblioteche più grandi, le cose diventano più difficili. La presa in consegna è molto più complicata, fortunatamente le biblioteche più grandi generalmente non si muovono più velocemente, in quanto sono generalmente più mature.
Come ha detto @Sam nella sua risposta, sono d'accordo sul fatto che la cosa più importante nella valutazione della libreria open source è quanto soddisfa le tue esigenze. Una volta risolto qualsiasi problema di licenza, l'uso di una libreria open source è raramente un errore perché puoi sempre andare in forchetta se le cose vanno a sud.