Als ich als Freiberufler arbeitete, stieß ich auf viele Fälle, in denen Kunden ihre Ideen und den Quellcode ihrer Projekte (wie Webanwendungen) so gut wie möglich schützten, egal wie unwichtig, uninteressant und unoriginal die Projekte und Konzepte dahinter waren .
Ich habe bereits eine Frage zur Geheimhaltung der Ideen gestellt und viele gute Antworten erhalten. Jetzt geht es mir mehr um die Geheimhaltung des Quellcodes.
Nach meinen Beobachtungen von:
- Die Codebasen, an denen ich während meiner Karriere arbeiten musste,
- Meine eigene Bereitschaft, einen Teil meines eigenen Quellcodes geheim zu halten, und:
- Einige Artikel wie zum Beispiel " Offene Antwort auf Simon Stuart" des beliebten Programmers.SE-Mitarbeiters Mason Wheeler ,
Ich komme zu dem Schluss, dass der Quellcode hauptsächlich aus folgenden Gründen geheim gehalten wird:
Weil sich der Autor für den Code von solch schlechter Qualität schämt oder das Unternehmen befürchtet, den Ruf zu verlieren, wenn jemand eine so schlechte Codebasis sieht, oder weil die Codebasis aufgrund der geringen Qualität von Nutzen ist, wird es niemandem etwas Nützliches bringen, ihn als Open Source zu veröffentlichen: Selbst wenn jemand interessiert wäre, wäre er kaum in der Lage, die Lösung auszuführen (oder oft sogar zu kompilieren).
Da Teile des Codes gestohlen werden (hauptsächlich aus Open-Source-Projekten, für die eine Lizenz gilt, die die Verwendung in einer bestimmten Situation einschränkt),
Weil der Code auf Sicherheit durch Dunkelheit beruht und der Autor sich nicht um Kerckhoffs Prinzip kümmert .
Weil das Produkt so zerbrechlich ist, dass das Anzeigen des Codes zu viel Schaden anrichten würde: Wenn eine Closed-Source-App mit all diesen Sicherheitslücken einem Neuling-Hacker standhalten würde, hätte dieselbe Open-Source-App weitaus geringere Chancen, da selbst der Anfänger-Hacker dies tun würde Sie müssen nur den Code studieren, um alle Löcher zu entdecken.
Wenn nicht klar ist, wovon ich spreche, hier ein Beispiel:
if (credentials.password === 'masterPassword12345') { isLoggedIn = true currentUser = credentials.userName } else { authenticate(credentials) }
Weil der Autor den Quellcode (und seine eigenen Fähigkeiten und Fachkenntnisse) überschätzt hat. Beispiel: Zu glauben, dass ein hausgemachter kryptografischer Algorithmus (der von niemandem überprüft wurde) besser ist als jeder bekannte.
Weil der Autor glaubt, dass die Idee hinter dem Code großartig ist und gestohlen würde.
Wegen des "Es ist nicht perfekt genug" -Syndroms. Mit anderen Worten, der Entwickler ist bereit, den Quellcode für die Öffentlichkeit freizugeben, wenn der Code "gut genug" ist, aber Tag für Tag gibt es noch Verbesserungsmöglichkeiten, sodass der Code niemals veröffentlicht wird.
All diese Gründe vermitteln ein eher negatives Bild von Personen, die gegen die Veröffentlichung des Quellcodes sind.
Gibt es gültige Fälle, in denen der hochwertige Code, der dem Kerckhoffs-Prinzip folgt, nicht veröffentlicht wird?