¿Razones para NO abrir código de fuente sin fines de lucro? [cerrado]

34

Soy un gran fanático del código fuente abierto. Creo que entiendo la mayoría de las ventajas de ir a código abierto. Soy un investigador estudiantil de ciencias, y tengo que trabajar con una cantidad sorprendente de software y código que no es de código abierto (o es propietario o no es público). Realmente no puedo ver una buena razón para esto, y puedo ver que el código, y las personas que lo usan, definitivamente se beneficiarían de ser más públicos (si no otra cosa, en ciencia es vital que sus resultados puedan replicarse si es necesario, y eso es mucho más difícil si otros no tienen acceso a su código).

Antes de salir y comenzar a hacer proselitismo, quiero saber: ¿hay algún buen argumento para no publicar públicamente un código sin fines de lucro y con una licencia compatible con OSI?

(Me doy cuenta de que hay algunas preguntas similares , pero la mayoría se enfoca en situaciones en las que el código se usa principalmente para ganar dinero, y no pude tener mucha relevancia en las respuestas).

Aclaración: por "sin fines de lucro", incluyo motivos de beneficios posteriores, como el reconocimiento de marca de la empresa matriz y las expectativas de beneficios de los inversores. En otras palabras, la pregunta se relaciona solo con el software para el cual NO existe un motivo de ganancia vinculado al software.

nada101
fuente
+1 ya que me parece una pregunta interesante. Pero me pregunto si este es el lugar correcto para preguntar esto. Tal vez obtendría diferentes perspectivas de otros sitios de SE, como el sitio PM.SE. Sólo una sugerencia.
haylem
@haylem, no había visto PM.SE, pero parece que es más por aspectos técnicos de la gestión de proyectos.
naught101
¿Mantendrás activamente el proyecto después o es un cementerio de códigos? En otras palabras, cuál es el futuro del proyecto.
@ ThorbjørnRavnAndersen: sí, estoy asumiendo el mantenimiento activo, el desarrollo y el uso del código.
naught101

Respuestas:

28

Debe tener en cuenta que el código abierto puede requerir un esfuerzo adicional.

Como ejemplo, en esta entrada del blog, el ingeniero de Sun / Oracle describe los esfuerzos que tuvieron que hacer al abrir su código: ¿Código abierto o Servicio de lavandería sucio?

A medida que nos preparamos para sumergirnos en el mundo del código abierto, una de las muchas actividades que están ocurriendo es la preparación del código para ser de código abierto. Hay algunas cosas obvias que deben hacerse. Por ejemplo, nuestro código fuente incluye una mezcla de código que hemos escrito y código que hemos licenciado de otros. Tendremos que separar este último y de código abierto solo las piezas de código apropiadas.

Otra actividad de preparación es "depurar" el código de información patentada, menciones de clientes particulares, desarrolladores, tecnologías, etc. Esto es un poco menos obvio, pero considere el siguiente ejemplo:

/\*
 \* HACK - insert a time delay here because the stupid Intertrode
 \* Technologies framebuffer driver will hang the system if we
 \* don't. Those guys over there must really be idiots.
 \*/

Si bien todo lo anterior puede ser cierto, probablemente tengamos una relación de algún tipo con Intertrode Tech y tener comentarios como este en el código podría dañar nuestro negocio de alguna manera y, por lo tanto, debería eliminarse. Podría decirse que no debería haber estado allí en primer lugar, pero ahora es el momento de sacarlo.

Otra parte de la actividad de "depuración" es eliminar la blasfemia y otras palabras "indeseables" ...

Tenga en cuenta que todos los cambios anteriores tuvieron que realizarse en el código que se ha considerado perfectamente correcto como código cerrado, lo que lo convierte en un esfuerzo adicional puro, por así decirlo.

mosquito
fuente
2
Bueno, esto se aplica a las grandes empresas con base de código existente, mucho menos para el código que está escrito para ser Open Source desde cero.
Konrad Rudolph
1
@KonradRudolph OP mencionó que tengo que trabajar con ... código que no es de código abierto (o es propietario, o no es público), lo que significa que no ha estado allí desde cero
mosquito
¿No sucedió lo mismo con DOOM 3? Los retrasos tema de las patentes Doom 3 Fuente Código de liberación
user16764
11

Seguridad.

Por ejemplo, supongamos que crea un marco web y usted mismo lo usa.

Como proyecto sin fines de lucro, no ha tenido tiempo para dedicar a inspeccionar cada fragmento de código en busca de vulnerabilidad a un ataque u otro:

  • CSRF
  • XSS
  • inyección SQL
  • Fijación de la sesión
  • Uso de bibliotecas de terceros con errores o incluso idiomas

Ahora, habiendo abierto el proyecto, permite que los ojos amigables contribuyan, pero también permite que los ojos maliciosos tengan una visión completa de su trabajo y, si encuentran un servidor que ejecuta su código, ha eliminado su capacidad de ocultar su imperfecciones en la oscuridad.

Por supuesto, esto puede no aplicarse al tipo de software en el que está trabajando; y como siempre, la oscuridad no es excusa para la pereza en la seguridad.

Sin embargo, al igual que descubrí en los dos niveles por los que pasé en el juego de capturar la bandera de Stripe , saber que el código es una de las formas más fáciles de encontrar vulnerabilidades (y a veces puede ser la única forma).

Nicole
fuente
77
Este debate ha estado ocurriendo durante siglos, y mi impresión fue que el código abierto es mejor para la seguridad, pero solo si el proyecto es bastante popular (al menos entre los desarrolladores). Es extraño que no haya un buen desglose de los argumentos en ninguna parte de la red (que puedo encontrar, de todos modos).
naught101
1
En combinación con nada, el comentario de 101 tiene mucho sentido. Si a menos personas les importa su fuente y la están utilizando en la producción, es muy probable que alguien "malvado" la inspeccione y la use en su contra (eventualmente)
schlingel
1
¿Seguridad a través de la oscuridad?
Danubian Sailor
3
@lechlukasz ¿Leíste toda la publicación?
Nicole
1
@Oleksi Gracias, pero lo sé. Dije que "la oscuridad no es excusa para la pereza en la seguridad". Esta pregunta no se trata de abrir frente a cerrado, se trata de abrir un sistema previamente cerrado. Estoy completamente de acuerdo con el enlace que publicaste, pero los desarrolladores no son perfectos y cuando abres un sistema de código abierto, existe la posibilidad de que los primeros ojos en encontrar un error lo exploten en lugar de repararlo por ti.
Nicole
10

Una buena razón para no abrir el código fuente es que parte de su código puede estar protegido por derechos de autor. ¿Con qué frecuencia no busca en la web una solución rápida a un problema y simplemente toma el fragmento de código que encuentra?

Bueno, esos pueden tener derechos de autor y no sé si al autor le gustaría encontrar su código bajo una licencia diferente.

Pieter B
fuente
1
+1 para derechos de autor. Solo quería agregar patentes también. Es posible que descubra que su proyecto de código abierto está infringiendo algunas de las miles y miles de patentes de software habitadas por el "cuerpo". ¿Transmitiendo video? Patentado ¿Anuncios de pago por clic? Patentado Solo algunos ejemplos. Sin embargo, es probable que a los "cuerpos" no les importe, a menos que seas un competidor.
Amadeus Hein
1
Jeje. Eso no es realmente un argumento contra el código abierto, sino contra la piratería. Pero tienes razón, apuesto a que este es un problema en muchos códigos privados grandes.
naught101
1
@ naught101 De acuerdo. El código abierto solo expone el problema. El propietario cerrado en este caso es una cuestión de no ser atrapado;)
Andres F.
¿Entonces está diciendo que una razón para mantener la fuente cerrada es permitirle ocultar violaciones casuales de derechos de autor? ¿No crees que es una razón poco ética para usar?
Mark Booth
1
No ético ... tal vez, una muy buena razón para no abrir el código fuente, ciertamente.
Pieter B
6

Debe tener cuidado con la forma en que elige su licencia para evitar posibles problemas de responsabilidad.

Un abogado puede ser una mejor persona para hablar sobre esto, pero la idea general es ¿qué sucede si alguien usa (o usa mal) la aplicación y causa algún daño? ¿Eres responsable? Obviamente, esto dependerá del tipo de software que esté escribiendo, pero siempre debe tener cuidado con lo que dice su licencia sobre su responsabilidad. Esto puede ser algo difícil de entender, por lo que puede ser más fácil simplemente no liberar el código fuente.

Oleksi
fuente
1
Sí, ese es un buen punto, y la mayoría de las licencias de sistema operativo generalmente tienen texto que cubre el culo en alguna parte. Supongo que estaba asumiendo una licencia de tipo "sin responsabilidad aceptada".
naught101
4

Advertencia: no soy un abogado .

Bueno, si es una organización sin fines de lucro y su propiedad intelectual está fuertemente ligada al código del software, entonces algunos pueden desear protegerlo para que no se reutilice comercialmente, o incluso se explote de forma abusiva para crear copias de su software.

Algunas otras razones, que probablemente están profundamente arraigadas en la primera, en realidad, son que, en su caso, gran parte de la investigación de alto nivel se realiza con fondos privados y, por lo general, los inversores quieren ver el ROI. Y hasta ahora, no todos los actores de la industria del software (o los recién llegados) han sido persuadidos por completo de la viabilidad del modelo de código abierto (muy probablemente por falta de conocimiento y comprensión de las licencias, o por el simple temor de que las licencias no prevengan la malicia usos y copias).

Además, estas compañías no quieren ser demandadas por aquellos que intentaron obtener ganancias a sus espaldas, y las licencias también se consideran una salvaguardia en este sentido, por una buena razón o no.

Puede que no lo parezca, pero quizás las organizaciones sin fines de lucro SON rentables para sus fundadores o inversores. Los beneficios simplemente no son directos. Por lo tanto, tienen un gran interés en que los PFN se fortalezcan y no sean derrotados por los competidores (a pesar de que a menudo tampoco pensarías en "competidores" en el mercado sin fines de lucro), y quieren preservar su IP, incluso si es a costa de no obtener más globos oculares gratuitos para revisar su código para encontrar problemas y mejorarlo desde el principio.

Tenga en cuenta también que las leyes de copyright difieren de un país a otro. Muchos países europeos consideran que las leyes de derechos de autor de EE. UU. Y el sistema de patentes de EE. UU. Están bastante estupefactos, por ejemplo, por lo que hay un trasfondo cultural y un peso que es difícil de eliminar.

Solo mis 2 centavos sobre el tema.

(He trabajado mucho con universidades, y recientemente en bioinformática y atención médica ... Es una pregunta recurrente para mí y mis colegas :))

haylem
fuente
Hrm ... estaba considerando el código y la IP juntos en mi pregunta. Tal vez debería haberlo dejado más claro. Me gustaría pensar de retorno de la inversión y la marca consideraciones como el afán de lucro ... (Me doy cuenta de que "la ciencia" era un poco vago, y que los lotes de la ciencia es rentable - mi campo (ciencias del sistema terrestre definitivamente no es sin embargo).
naught101
Aclaro la pregunta. Perdón por la molestia.
naught101
Consideraría que su campo es rentable. Puede que no tenga un mercado amplio, pero eso no significa que no sea rentable. De hecho, consideraría que implica bastante dinero. ¿Por qué sientes lo contrario?
haylem
Estoy en modelación climática. Nadie paga por los modelos climáticos. Nadie paga por usar modelos climáticos. No se pueden obtener ganancias con el uso del software. A las personas se les paga para investigar utilizando esos modelos (y esto a menudo incluye escribir los modelos), y el tiempo de computación a veces se paga, pero ambos significan que compartir el código haría las cosas más baratas (más tiempo para investigar en lugar de escribir el código). , menos tiempo perdido en las instalaciones de HPC). Realmente no veo cómo se relaciona el software con ninguna rentabilidad.
naught101
1
@psr: Creo que ese no es el punto de 101: hay resultados rentables en los resultados del uso del modelo, pero no necesariamente mucho dinero en la venta de software que implementa el modelo. También me sorprende, pero podría muy bien serlo.
haylem
1

Hay al menos dos tipos diferentes de código abierto.

Si su actitud es "aquí hay algo útil, ya terminé" (y eso resulta ser exacto), entonces hay pocas desventajas.

Por otro lado, si su actitud es "Estoy realmente emocionado y quiero que algunos usuarios reales ayuden a impulsar el desarrollo futuro", entonces piense con mucho cuidado. Tendrá que pasar tiempo apoyando a los usuarios, muchos de los cuales no tienen idea. Tendrá que considerar solicitudes conflictivas de características y mejoras. Le resultará cada vez más difícil realizar cambios para preservar la compatibilidad con versiones anteriores.

ddyer
fuente
3
Realmente no veo cómo liberar código obliga a las personas para proporcionar apoyo? Y en la ciencia, al menos, la mayoría de los usuarios están muy puesta al tanto, al menos sobre el proceso, si no es el propio código.
naught101
1
@ naught101: no obliga a nadie, pero si alguien utiliza su código, podrá obtener correos electrónicos, preguntas, sugerencias ..., que se llevará un cierto esfuerzo de mango, a menos que usted elige simplemente ignorarlos. Fuera de la ciencia, muchos usuarios no están muy puesta al tanto por lo que puede encontrarse ayudar a la gente con problemas elementales de puesta a punto, etc., simplemente porque le pasó a liberar algo de código. Yo he experimentado que, al menos. Incluso las renuncias del estilo BSD "proporciona tal cual", etc. No - y no deberían - impedir que la gente que pide ayuda.
Joonas Pulakka
1
Votado porque esta respuesta no es realmente menos aplicable que muchas otras. @JoonasPulakka: por supuesto, esto no debería impedir que la gente pida ayuda. Pero debería dejar de esperar una respuesta. Además, si usted tiene el software real en público, es de suponer que tiene la misma responsabilidad de los usuarios , independientemente de si su código es público (dependiendo del EULA, tal vez). Tal vez usted tiene que esperar más consultas de los desarrolladores si se suelta el código, pero sería bueno pensar que la mayoría de ellos tienen un poco de una pista, y puede devolver un consejo de un parche o dos ..
naught101