Quellcode
Kurz: Der von Menschen lesbare, in einer Programmiersprache geschriebene Text eines Programms.
Genauer: Wird von einem Compiler in Maschinencode übersetzt oder von einem Interpreter direkt ausgeführt. “Open Source” bedeutet, dass dieser Quellcode öffentlich einsehbar (und meist auch veränderbar) ist — im Gegensatz zu proprietärer Software, bei der nur die fertige, kompilierte Anwendung ausgeliefert wird.
Im Detail
Die Übersetzung von Quellcode in etwas, das ein Computer direkt ausführen kann, läuft auf zwei grundsätzlich unterschiedliche Arten: bei kompilierten Sprachen (C, Java via Bytecode, Go, Rust) übersetzt ein Compiler den kompletten Quellcode VOR der Ausführung in Maschinencode oder Zwischencode — Fehler werden schon beim Kompilieren erkannt, aber jede Änderung erfordert einen erneuten Kompilierschritt. Bei interpretierten Sprachen (Python, klassisches PHP) liest ein Interpreter den Quellcode Zeile für Zeile zur Laufzeit und führt ihn direkt aus, ohne separaten Kompilierschritt — schnellerer Entwicklungszyklus, aber manche Fehler zeigen sich erst zur Laufzeit, wenn die fehlerhafte Zeile tatsächlich erreicht wird.
Versionskontrollsysteme wie Git existieren speziell, um Quellcode-Änderungen über die Zeit nachvollziehbar zu machen — für Textdateien (wie Quellcode fast immer eine ist) besonders gut geeignet, weil sich Änderungen zeilenweise vergleichen lassen. Der Begriff “Quellcode” grenzt sich bewusst gegen kompilierten Code, Bytecode oder Binärdateien ab — alles, was NICHT mehr in der ursprünglichen, von Menschen geschriebenen und lesbaren Form vorliegt.
Quelloffen vs. proprietär
Die Unterscheidung zwischen offenem und geschlossenem Quellcode hat weitreichende praktische Konsequenzen: Bei Open-Source-Software kann jeder den Quellcode einsehen, Fehler finden, Sicherheitslücken prüfen und eigene Änderungen beitragen — bekannte Lizenzen wie MIT, Apache 2.0 oder GPL regeln dabei unterschiedlich streng, was mit Änderungen/Weiterverbreitung erlaubt ist (die GPL erzwingt z. B., dass abgeleitete Werke ebenfalls quelloffen bleiben müssen — “Copyleft” —, während MIT/Apache das nicht verlangen). Proprietäre Software gibt dagegen nur die fertig kompilierte Anwendung heraus, der Quellcode bleibt Geschäftsgeheimnis des Herstellers, was Unabhängigkeit von diesem Hersteller (z. B. bei dessen Insolvenz) erschwert, aber Geschäftsmodelle mit Lizenzverkauf ermöglicht.
Lesbarkeit als Qualitätsmerkmal
Guter Quellcode zeichnet sich nicht nur dadurch aus, dass er funktioniert, sondern dass er für andere Menschen (oder das eigene zukünftige Ich) nachvollziehbar bleibt — sprechende Variablennamen, sinnvolle Aufteilung in Funktionen, konsistente Formatierung. Da Quellcode in der Praxis deutlich häufiger gelesen als neu geschrieben wird (jede Fehlersuche, jede Erweiterung erfordert erst Verständnis des bestehenden Codes), gilt Lesbarkeit in der professionellen Softwareentwicklung oft als wichtiger als maximale Kürze oder clevere, aber schwer verständliche Lösungen.
Minifizierung und Obfuskierung
Interessant ist der umgekehrte Fall: Bei der Auslieferung von JavaScript an Webbrowser wird Quellcode meist “minifiziert” (Leerzeichen, Kommentare und lange Variablennamen entfernt, um die Dateigröße zu reduzieren) — der Code bleibt dabei technisch öffentlich einsehbar (jeder Browser lädt ihn herunter), wird aber durch die Minifizierung praktisch unlesbar. “Obfuskierung” geht noch weiter und verschleiert absichtlich die Programmlogik, um Reverse Engineering zu erschweren — beides ändert nichts an der rechtlichen Einstufung als Open Source oder proprietär, sondern betrifft nur die praktische Lesbarkeit des ausgelieferten Codes.
Siehe auch: Code, Pseudocode, Git