Questa domanda può essere facilmente estesa a qualsiasi problema che possa essere risolto da una libreria, correlata alla sicurezza o meno. Questa risposta si applica alle librerie che implementano qualsiasi funzionalità standardizzata e non è specifica per SSL.
incompatibilità di licenza
Non tutte le licenze software sono compatibili tra loro. Quando si desidera utilizzare una libreria con licenza GPL, è necessario concedere in licenza l'intero progetto in GPL, che potrebbe non rientrare nella strategia aziendale. Altre organizzazioni potrebbero rifiutare tutto tranne una licenza specifica per ragioni ideologiche. Ciò porta a soluzioni multiple per lo stesso problema che in pratica differiscono solo per i termini della licenza.
Brevetti
Anche quando uno standard in sé non è brevettato, potrebbe essere un certo metodo per implementare quello standard. In tal caso, devi utilizzare il metodo di implementazione brevettato e pagare la tassa, trasferirti in un paese in cui il brevetto non è applicabile, o creare una nuova implementazione con un metodo diverso che aggira il brevetto.
Sviluppo parallelo
Spesso accade che due diversi team di sviluppo sviluppino un'implementazione della stessa tecnologia indipendentemente l'una dall'altra. Quando entrambe le soluzioni arrivano sul mercato, nessuno vuole ammettere che la loro soluzione è inferiore, quindi entrambi continueranno a promuovere e mantenere la loro soluzione.
Preferenza lingua di programmazione
Per assicurarsi che una libreria si interfaccia bene con il tuo programma, preferibilmente dovrebbe essere scritta nello stesso linguaggio di programmazione. Quando hai un programma C, preferiresti una libreria scritta in C. Quando usi Java, ti piacerebbe un'implementazione Java. Quando usi C #, preferisci che sia implementato in .NET. Non è impossibile che entrambe le tecnologie si interfacciano con componenti scritte negli altri, ma richiede sempre un po 'di colla e nastro adesivo per collegarlo all'interfaccia, il che potrebbe compromettere le prestazioni, la leggibilità del codice e rendere più complicata la creazione di toolchain. / p>
Preferenze tecniche
Diversi progetti hanno priorità diverse. Alcuni vogliono l'implementazione più rapida possibile. Alcuni hanno bisogno di un ingombro di memoria molto basso. Alcuni vogliono l'implementazione con il miglior track record di sicurezza (che può essere misurato in molti modi diversi). La migliore libreria per un progetto non è necessariamente anche la migliore per un'altra. Avere più opzioni tra cui scegliere può essere utile.