Desde sus inicios, el software de código abierto (OSS) ha tenido dos corrientes filosóficas opuestas:
Idealista
Donde «gratis» significa libertad, no sin valor económico. Existe una profunda creencia de que todo software debe estar abierto por razones ideológicas y éticas, no solo tecnológicas.
Pragmático
Aquí, las consideraciones principales son técnicas, incluido un desarrollo más rápido y mejor que involucra a más colaboradores y permite mejores revisiones, mejor y más fácil depuración de errores, etc.
A pesar de ser corrientes teóricamente opuestas, el punto de vista idealista también tiene fuertes imperativos técnicos, lo que hace que en muchos casos, los objetivos de ambas corrientes coincidan. Por ejemplo:
¿Debería ser privado el software que permite que un dispositivo médico salve vidas? ¿No tenemos derecho a saber qué está controlando estos dispositivos? ¿Cómo sabemos si están libres de errores, o si no son vulnerables a ataques externos?
¿Debería ser privado el software que analiza datos y toma decisiones por nosotros, como en el caso del internet de las cosas ? ¿Podemos estar seguros de que nuestro vehículo es seguro? Si en el caso de los vehículos se ha demostrado que su software es extremadamente fácil de manipular, ¿cómo vamos a confiar en dispositivos que tenemos dentro de nuestras casas?
Desafortunadamente, los conflictos entre estas dos formas de pensar hacia el código abierto a menudo han sido muy destructivos y perjudiciales para su comunidad. Es poco probable que alguna vez lleguen a entenderse al 100%; El enfoque pragmático cuenta con la mayoría de los recursos económicos, ya que tiene una mayor aceptación empresarial, mientras que el campo más idealista, pese a estar en desventaja, siempre tendrá seguidores comprometidos.