Cuando trabajaba como freelance, encontré muchos casos en los que los clientes protegían sus ideas y el código fuente de sus proyectos (como aplicaciones web) tanto como sea posible, sin importar cuán importantes, poco interesantes y poco originales fueran los proyectos y los conceptos detrás de .
Ya publiqué una pregunta sobre cómo mantener en secreto las ideas y recibí muchas respuestas excelentes. Ahora, mi preocupación es más sobre el secreto del código fuente.
De acuerdo con mis observaciones de:
- Las bases de código en las que tuve que trabajar durante mi carrera,
- Mi propia voluntad de mantener en secreto parte de mi propio código fuente y:
- Algunos artículos como, por ejemplo, Respuesta abierta a Simon Stuart por parte del popular contribuyente de Programmers.SE Mason Wheeler ,
Concluyo que el código fuente se mantiene en secreto principalmente por esas razones:
Debido a que el autor se avergüenza del código de tan mala calidad, o la compañía teme perder reputación si alguien ve una base de código tan mala, o que dada la baja calidad de la base de código, no traerá nada útil a nadie para abrir el código fuente: incluso si alguien estuviera interesado, difícilmente podría ejecutar la solución (o, a menudo, incluso compilar).
Debido a que partes del código son robadas (principalmente de proyectos de código abierto cubiertos por una licencia que restringe su uso en una situación dada),
Porque el código se basa en la seguridad por la oscuridad y al autor no le importa el principio de Kerckhoffs .
Debido a que el producto es tan frágil que mostrar el código causaría demasiado daño: si una aplicación de código cerrado con todas esas fugas de seguridad resistiera a un hacker novato, la misma aplicación de código abierto tendría muchas menos posibilidades, porque incluso el hacker principiante tendría solo hay que estudiar el código para descubrir todos los agujeros.
Si no está claro de qué estoy hablando, aquí hay un ejemplo:
if (credentials.password === 'masterPassword12345') { isLoggedIn = true currentUser = credentials.userName } else { authenticate(credentials) }
Porque el autor sobreestimó el código fuente (y sus propias habilidades y experiencia). Ejemplo: creer que un algoritmo casero relacionado con la criptografía (que nunca fue revisado por nadie) es mejor que uno conocido.
Porque el autor cree que la idea detrás del código es genial y que sería robada.
Debido al síndrome "No es lo suficientemente perfecto". En otras palabras, el desarrollador está dispuesto a lanzar el código fuente al público cuando el código es "lo suficientemente bueno", pero día tras día, todavía hay cosas que mejorar, por lo que el código nunca se lanzará.
Todas esas razones dan una imagen bastante negativa de las personas que están en contra de publicar el código fuente.
¿Existen casos válidos para no divulgar al público el código de alta calidad que sigue el principio de Kerckhoffs?