¿Estrategias para aprender y escribir código cuando no puedo ser "contaminado" con código fuente abierto? [cerrado]

StackOverflow https://stackoverflow.com/questions/421975

  •  05-07-2019
  •  | 
  •  

Pregunta

Trabajo en una compañía donde la regla básicamente es (como lo entiendo) que no puede usar ningún código a menos que (a) escriba el código usted mismo o (b) exista alguna cláusula de indemnización explícita que proteja el uso de cualquier otro código (como código fuente abierto). Estoy encontrando esto haciendo mi codificación difícil.

Por ejemplo, las muestras de codificación en los libros se usan en gran medida " as-is " ;. Las muestras de código de Microsoft SDK se usan " tal como están " ;. Las publicaciones de blog sobre codificación se usan " tal como están " ;. Hay varios sitios por ahí con ejemplos de código (incluido el SO) que se utilizan bajo su propio riesgo. No hay garantías implícitas o indemnización contra demandas de propiedad intelectual, bla, bla, etc.

Básicamente, estoy limitado a usar Asp.Net y .Net Framework y nada más, ya evitar que mis ojos capten accidentalmente algo que no he creado (ok ... esa puede ser mi interpretación anal de la regla ;-).

Encuentro esto difícil porque una gran parte de aprender a codificar creo que es leer otro código. Leer blogs que tienen código, leer libros que tienen código, ver ejemplos de codificación, usar código de SDK, etc. Además, creo que es seguro usar código que las personas han demostrado ser una buena solución o patrón para algo y libremente. poner para otros a utilizar. No pienso pensar que puedo codificar todo yo mismo. Definitivamente tengo que pararme en los hombros codificados de otros para alcanzar ciertas alturas.

Podría ser que yo tampoco entiendo muy bien las licencias. Desde la perspectiva de la compañía (supongo) no quieren correr ningún riesgo de ser demandados por infracción de IP.

Mi pensamiento es que tienes que sopesar los riesgos. Tomar un fragmento de código de un libro es de bajo riesgo. La incorporación de código de una biblioteca de código abierto podría ser de alto riesgo. Digo que tome decisiones en función del riesgo que esté dispuesto a tomar.

¿Alguien ha tenido experiencia trabajando en una situación como esta o similar a esta? ¿Es esto algo raro o común en algunos sectores? ¿Hay otros en la misma posición que yo?

¡Cualquier apreciación u orientación sería apreciada! Gracias!

Editar: Gracias por las respuestas! Para aclarar algunas cosas: no estoy abogando por robar código. Estoy hablando de un código que tiene algún tipo de licencia pública que le permite ser utilizado en su forma legal definida. La clave es que no hay indemnification en las licencias públicas al usar el código. Eso significa que lo usa bajo su propio riesgo legal (y otro riesgo). Si alguien demanda un proyecto de código abierto en el que usó el código, también podría estar involucrado en la demanda porque está usando el código a pesar de que tenía una licencia pública.

En 2005, Microsoft estaba utilizando la indemnización para competir contra los proveedores de código abierto al prometer a sus socios que Microsoft los protegería contra las demandas de propiedad intelectual. http: / /www.microsoft.com/presspass/press/2005/jun05/06-22PartnerIndemnificationPR.mspx

Por lo tanto, incluso si el riesgo de ser demandado por infracción de IP puede ser extremadamente bajo, es una probabilidad distinta de cero. Por lo tanto, no puedo usar nada de eso. Incluso si tiene una licencia pública de algún tipo. :-(

¿Fue útil?

Solución

Por " indemnización " ;, asumo que significan una garantía de que el código está libre de derechos de autor o de patentes o tal vez de un secreto secreto que no conocen al principio, o de que alguien está dispuesto a compensarlo si algo así cambia arriba. Nunca he estado en una empresa que esté preocupada por esto, ni he oído hablar de ninguna antes.

No está claro lo que realmente quieres aquí, aparte de la simpatía (y tengo simpatía por las personas atrapadas en la insensatez corporativa). Parece que la política es bastante rígida, si le preocupa el código de muestra en los libros. Esta es una mala política y lo obstaculizará, pero no sé qué puede hacer al respecto. A diferencia de la publicación del blog de Joel sobre cómo hacer las cosas como un gruñido, parece que no puedes comenzar a hacer las cosas de manera inteligente sin estar en clara violación de la política corporativa.

Sin saber su situación, mi sugerencia sería buscar otro trabajo. Éste definitivamente sofocará su crecimiento profesional, y es poco probable que una compañía con esa política sea razonable al respecto.

(Sería bueno si pudiera asegurarles que no había peligro, pero eso no es cierto. La gente ha mentido acerca de los derechos de autor, aunque los proyectos de código abierto tienden a no hacerlo, y solo un tonto afirmaría definitivamente que una gran parte del código no infringió ninguna patente en los EE. UU., incluso si se escribió un año antes de que se otorgaran las patentes de software, eso sería simplemente un buen motivo para una pelea judicial, en lugar de evitar una pelea judicial. El software GPL es realmente mejor que el software BSD , ya que requiere alguna licencia de patente en sentido descendente, pero no puede tratar con patentes de terceros. Por supuesto, si están preocupados por ser demandados, escribir software interno no es una solución. Eso puede infringir las patentes.)

Otros consejos

El " riesgo de ser demandado por infracción de IP " No es realmente la manera correcta de pensar en ello. Esto no es un " riesgo " cosa.

O bien

  • Tienes una licencia y puedes usar la fuente. No hay riesgo Usted tiene la licencia. No puede haber una demanda.

O

  • No tienes una licencia y estás en violación. Efectivamente, usted será demandado. Aquí tampoco hay riesgo. Estás violando los derechos de autor de alguien (o peor).

Las empresas son contrarias al código abierto por una variedad de razones extrañas. El riesgo de demanda no es uno de ellos.

Cosas que he escuchado.

  • ¿Qué pasa si tiene un virus?

  • ¿Qué pasa si no funciona como se anuncia?

  • ¿Qué pasa si " se bloquea " ¿alguna cosa? ¿A quién demandamos?

Ninguno de estos es " riesgo " artículos. Son "diligencia debida" artículos. Y, en su mayoría, son fáciles de abordar: elija productos con suficientes usuarios para que otra persona revise el código antes que usted; QA el código abierto como si lo escribiera una de sus personas. Excepto una.

Esto nos lleva a la verdadera razón. [Sugerencia: no es " riesgo de demanda " ;.]

No hay nadie a quien demandar cuando no realizó la diligencia debida en el código abierto.

La mayoría de las tiendas no tienen una administración de configuración o políticas de control de calidad realmente sólidas (el tipo que se presentaría ante los tribunales como las mejores prácticas). Hasta que no tengan estas cosas en su lugar, no se atreven a pensar en introducir código abierto para el que realmente necesite un control de calidad y una gestión de configuración sólidos.

Creo que lo que realmente le preocupa a su compañía es si está copiando directamente grandes segmentos de código para los que puede haber problemas de licencia, lo que representa un problema legal para la empresa si se descubre que lo están utilizando. Sin embargo, puede leer blogs u otros códigos sin licencia y descubrir una solución que funcione para el problema particular en el que está trabajando. En ese caso, sería mejor que reescribiera el código (es decir, mire la solución y reprodúzcalo) en lugar de simplemente copiar el código y hacer modificaciones en él. En mi empresa, eso es lo que generalmente recomiendan para usar código no propietario.

Además, para pequeñas cantidades de código (por ejemplo, una implementación estándar de un caché) donde todos implementan esto de la misma manera, es poco probable que su compañía tenga miedo de usar un código externo, siempre y cuando esté seguro de pruébalo con cuidado.

¿Podrías cambiar el nombre de las variables y cómo se enterarían? ¿Verifican cada línea de código? Las universidades te lo dicen todo el tiempo, no copiar código sin hacer referencia. ¿Por qué no intenta codificar algo y usar partes del código que encuentra en Internet?

En general, usará más de comunidades como desbordamiento de pila o blogs que de proyectos de código abierto.

Finalmente, dado que el código no tiene garantías, es bajo su propio riesgo ... bueno, es el mismo caso si usted inventó el código por usted mismo: es bajo su propio riesgo.

Espero que ayude ... y buena suerte.

  

Podría ser que yo tampoco entiendo muy bien las licencias. Desde la perspectiva de la compañía (supongo) no quieren correr ningún riesgo de ser demandados por infracción de IP.

     

Mi pensamiento es que tienes que sopesar los riesgos. Tomar un fragmento de código de un libro es de bajo riesgo. La incorporación de código de una biblioteca de código abierto podría ser de alto riesgo. Digo que tome decisiones en función del riesgo que esté dispuesto a tomar.

No estoy seguro si entendí correctamente. Si está diciendo que la infracción de licencia está bien cuando no lo atrapan, tendré que estar en desacuerdo con usted.

Puedes aprender leyendo el código sin infringir las leyes ni ser despedido. Simplemente no copie el código a la base de código de su compañía si la licencia no lo permite.

Si no está al tanto de la " sala limpia " concepto, entonces siempre hay ese enfoque. Haga que un amigo mire un código de código abierto y pídale que le diga cómo cree que funciona. Haz un diagrama y luego codifícalo tú mismo.

Si funcionó para IBM, ¿verdad?

Tenga en cuenta que no todas las fuentes abiertas son GPL. Su empresa puede copiar todo el código con licencia BSD que desee. El código con licencia BSD se ha convertido en OS X (probablemente es mi mayor subestimación de hoy) y, en menor medida, en Windows NT.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top