Esta pregunta puede extenderse fácilmente a cualquier problema que pueda ser resuelto por una biblioteca, relacionado con la seguridad o no. Esta respuesta se aplica a las bibliotecas que implementan cualquier funcionalidad estandarizada y no es específica de SSL.
Incompatibilidad de licencia
No todas las licencias de software son compatibles entre sí. Cuando desee utilizar una biblioteca con licencia GPL, debe licenciar todo su proyecto bajo GPL, lo que podría no encajar en su estrategia comercial. Otras organizaciones podrían rechazar cualquier cosa excepto una licencia específica por razones ideológicas. Esto conduce a múltiples soluciones para el mismo problema, que en la práctica solo difieren según los términos de la licencia.
Patentes
Incluso cuando un estándar en sí no está patentado, podría haber un cierto método para implementar ese estándar. En ese caso, tiene que usar el método de implementación patentado y pagar la tarifa, mudarse a un país donde la patente no es ejecutable o crear una nueva implementación con un método diferente que funcione en torno a la patente.
Desarrollo paralelo
A menudo sucede que dos equipos de desarrollo diferentes desarrollan una implementación de la misma tecnología de forma independiente. Cuando ambas soluciones llegan al mercado, ninguna quiere admitir que su solución es inferior, por lo que ambas seguirán promoviendo y manteniendo su solución.
Preferencia de lenguaje de programación
Para asegurarse de que una biblioteca se adapte bien a su programa, preferiblemente debe estar escrito en el mismo lenguaje de programación. Cuando tienes un programa en C, preferirías una biblioteca escrita en C. Cuando usas Java, te gustaría una implementación de Java. Cuando usas C #, preferirías que se implementara en .NET. No es imposible en ninguna de las dos tecnologías interactuar con los componentes escritos en las otras, pero siempre requiere algo de pegamento y cinta adhesiva para hacer que se conecte a la interfaz, lo que podría perjudicar el rendimiento, la legibilidad del código y complicar aún más la compilación de herramientas. / p>
Preferencia técnica
Los diferentes proyectos tienen diferentes prioridades. Algunos quieren la implementación más rápida posible. Algunos necesitan una huella de memoria muy baja. Algunos quieren la implementación con el mejor registro de seguimiento de seguridad (que se puede medir de muchas maneras diferentes). La mejor biblioteca para un proyecto no es necesariamente la mejor para otro. Tener múltiples opciones para elegir puede ser beneficioso.