Mehr als Windows & Apple: 60% der Entwickler nutzen GNU/Linux

Als Video ansehen
Bereitgestellt über YouTube

Mehr als Windows & Apple: 60% der Entwickler nutzen GNU/Linux

Im gesamten Desktop-Bereich erreicht GNU/Linux im Mai 2024 3,4%.1 Doch unter Entwicklern sieht es ganz anders aus: Dort nutzen mittlerweile mehr als 60% ein auf Linux basiertes Betriebssystem. Es wird sogar mehr für GNU/Linux entwickelt, als für Windows. Warum ist die Verbreitung dort über 17x höher, als unter allen PC-Nutzern?

Wie kommt man zu einem Betriebssystem?

Je nach Umständen sind die Wege hier sicher stark unterschiedlich. Einsteiger kaufen sich oft einen fertigen Computer oder Laptop mit vorinstalliertem Betriebssystem. Durch Microsofts Quasi-Monopolstellung wird so jemand nahezu immer bei Microsoft Windows landen. Anders sieht es dagegen schon bei erfahreneren Nutzern aus, die sich bewusst entscheiden. Dazu regt der Konzern durch diverse Gängelungen und Einschränkungen immer wieder an – der Zwang zum Cloudkonto in Windows 11 sowie dessen Verschärfungen ist nur eines von vielen aktuellen Beispielen. Einige die können wechseln daher von Windows zum freien GNU/Linux.

Beruflich entscheidet man sich im besten Falle für einen Arbeitgeber, der das gewünschte Betriebssystem einsetzt. Manchmal ist das kaum möglich, insbesondere außerhalb der IT. Dort ist der Einsatz verschiedener Betriebssysteme seltener.

GNU/Linux ist bei Entwicklern verbreiteter als Microsoft Windows

Stackoverflow ist als größte englischsprachige Community für Entwickler bekannt. Seit einigen Jahren führen sie jährliche Umfragen unter ihren Mitgliedern durch, die ein Stimmungsbild liefern. 2022 nahmen beispielsweise über 71.000 Entwickler rund um den Globus Teil.2 In einem Abschnitt werden sie zur eingesetzten Technologie befragt: Welches Betriebssystem setzen sie primär ein? Differenziert wird jeweils zwischen privater und beruflicher Nutzung. Windows liegt in beiden Szenarien vorne, doch GNU/Linux ist mit 40% nahe auf dem zweiten Platz. Sogar vor Apples MacOS.

Das ist kein kurzlebiger Trend. Im Folgejahr 2023 gaben noch mehr Entwickler an, eine Linux-Distribution zu nutzen.3 Die Ergebnisse sind hier nicht mehr direkt miteinander vergleichbar, da 2023 die bekanntesten Distributionen einzeln aufgelistet wurden. Summiert man die Werte von Ubuntu (27,28%), Debian (8,39%), Sonstige (8,16%), Arch (8,06%), Red Hat (2,14%), Fedora (4,37%) und ChromeOS (1,88%) ziehen diese zusammen mit 60,28% sogar an den 59,72% von Windows vorbei.

Die Summe aller Antworten überschreitet 100%, da wahrscheinlich nicht alle Entwickler zu GNU/Linux wechseln konnten oder wollten. Beispielsweise benötigen sie für einzelne Software noch regelmäßig Windows oder sind durch Support-Anfragen von Kunden darauf angewiesen. Daher kann es durchaus vorkommen, dass zwei Plattformen hauptsächlich genutzt werden.

Bis 2020 hat Stackoverflow allgemeiner nach Plattformen gefragt, für die man im jeweiligen Jahr bereits entwickelt hat.4 Hier ging es also nicht nur im das primäre Betriebssystem. Wer beispielsweise auf dem Desktop mit Windows unterwegs ist und serverseitig Code für GNU/Linux-Server entwickelt, sollte dort „Linux“ angeben. Als Gesamte Plattform lag es damals bereits mit 55% auf dem ersten Platz, während Windows mit 53% folgte. Platz 3 belegt Docker, welches wiederum ebenfalls auf Linux-Technologie basiert.

Warum GNU/Linux?

Mächtige Werkzeuge von Entwicklern für Entwickler (und Administratoren)

Früher galt GNU/Linux aus Sicht einiger Anwender als kompliziert und das hat einen wahren Hintergrund: Es ist von Entwicklern für Entwickler gemacht worden – nicht von Unternehmen mit dem Ziel, sie für maximalen Profit zu verkaufen. Deren Anforderungen sind andere, als die eines durchschnittlichen Anwenders. Konsolenprogramme beispielsweise sind für Entwickler kein Hindernis, sondern werden öfter sogar bevorzugt. Man kann sie viel flexibler und stabiler automatisieren, als Mausklicks in grafischer Software zu simulieren. Das Ausführen eines Befehls ist zudem handlicher: Man kann ihn in Blogs, Foren, Dokus etc. kopieren und erhält exakt die gewünschte Funktion – statt Klickpfade durch Menüs, die ggf. beim nächsten Designwechsel umbenannt werden.

Mittlerweile hat GNU/Linux hier längst aufgeholt und es gibt Distributionen speziell für Ein- und Umsteiger. Dennoch ist es nach wie vor ein mächtiges Betriebssystem für Entwickler, auch durch die GNU Standardwerkzeuge.

Ein paar Beispiele:

  • Eine Datei herunterladen? Mit curl/wget sehr leicht
  • JSON parsen, um etwa die aktuellste Version einer Software automatisch von GitHub herunterzuladen? Kein Problem dank jq, dessen Ausgabe sich an curl/wget weiterleiten lässt
  • Du suchst etwas im Inhalt einer (oder mehrerer Dateien)? Erledigt grep abc datei.txt im Nu
  • Suchen und Ersetzen in einer Datei? Dank sed kein Problem
  • Soll in einer Datei zeilenweise nach etwas gesucht werden (ggf. zum ersetzen)? Oder möchtest du einen Teil aus der Ausgabe eines anderen Programms extrahieren? Dann lässt awk keine Wünsche offen

Die Liste könnte man noch weiter führen. Ein letztes Beispiel: Mit tail zeigt man sich die letzten Zeilen einer Textdatei (z.B. Logs) an oder sieht mit dem Parameter -f in Echtzeit, was andere Programme hinein schreiben. Sowohl für Entwickler, als auch Admins stehen viele Werkzeuge zur Verfügung.

Auf Servern gibt GNU/Linux den Ton an

Oft haben Programme mindestens eine Komponente, die auf einem Server läuft. Dort haben GNU/Linux sowie dessen Vorbild Unix: Der erste Webserver (CERN httpd) Schätzungen gehen von etwa 96% der 1 Million am häufigsten besuchten Webseiten aus, die GNU/Linux verwenden.5 Unter allen Webseiten nutzen immerhin 70% ein auf Unix basiertes Betriebssystem.6 Anders ausgedrückt – das heutige Internet würde ohne den Pinguin in dieser Form gar nicht existieren. Selbst in allen Unternehmen dominieren Betriebssysteme auf Basis von Linux den Server-Markt mit rund 63%.7 Selbst Microsoft als härtester Konkurrent nutzt es längst: Über 60% der Azure Server laufen unter GNU/Linux.8

Schon deswegen macht es Sinn, auf dem gleichen System zu entwickeln, worauf die Anwendung später laufen soll. Unter Windows oder MacOS treten möglicherweise Probleme auf, die unter GNU/Linux nicht bestehen und anders herum. Zumal viele Funktionalitäten von Webservern erst später zu Windows portiert wurden – manche werden dort überhaupt nicht unterstützt.

Moderne Server bestehen aus Linux-Technologie

Welche bedeutenden Innovationen gab es in den letzten 10 Jahren softwareseitig bei Servern? Bedeutend sind hier vor allem zwei:

Container
Docker, Podman & co. sind aus dem Alltag vieler Entwickler und Admins nicht mehr wegzudenken. Dahinter steckt Technologie aus dem Linux-Kernel – daher gibt es bis heute kein natives Docker für Windows: Dem Kernel fehlt diese Funktionalität. Programme wie Docker Desktop oder Podman Desktop funktionieren nur über eine Virtuelle Maschine mit Linux im Hintergrund. Auch bei der Orchestrierung für größere Umgebungen kommt mit Kubernetes eine für GNU/Linux entwickelte Technologie zum Einsatz. Schließlich stammt das Projekt maßgeblich von Google. Der Konzern setzt seit Jahrzehnten auf GNU/Linux, mittlerweile nutzen über 100.000 Mitarbeiter das freie Betriebssystem. Windows ist bei allem rund um Container bestenfalls zweite Wahl. Lange Zeit wurde es gar nicht unterstützt, mittlerweile nur eingeschränkt.

Cloud
Das Buzzword schlechthin, bei dem es im Kern lediglich um Oursourcing von Systemen externe Dienstleister geht. 90% der Cloudserver laufen unter GNU/Linux, da es stabil, relativ sicher, skalierbar und flexibel anpassbar ist.9 Gängelungen wie bei Microsoft Windows wird man dort lange suchen. Vom Raspberry Pi über Webseiten mit Millionen Aufrufen pro Tag bis hin zum schnellsten Supercomputer der Welt kann alles abgedeckt werden. Standards wie cloud-init10 ermöglichen das fertige Konfigurieren eines Servers in einer Datei. Ansible, Terraform und andere Automatisierungswerkzeuge erzeugen ebenfalls komplett eingerichtete Server nach Bauplan in kurzer Zeit.

Freiheit und Flexibilität

Freie Software wie GNU/Linux bietet zahlreiche Vorteile: Die meisten Distributionen können kostenfrei genutzt werden. Man muss niemanden anstellen oder beauftragen, der sich mit komplexen Lizenzen herum schlägt. Zudem darf man das System frei verwenden, selbst Anpassungen sind möglich – perfekt für Entwickler. Bei proprietärer Software dagegen treiben Lizenzen die Kosten in die Höhe und der Code ist proprietär. Außerdem gibt es keine Alternative, wenn Microsoft beispielsweise Funktionen in Windows entfernt oder unerwünschte erzwingt. GNU/Linux respektiert die Freiheit der Nutzer. Man kann jederzeit das System anpassen oder gar zu einer anderen Distribution wechseln, falls einem die Richtung gar nicht zusagen sollte.

Aber es gibt unter Windows doch die PowerShell!

Tatsächlich hat Microsoft aufgerüstet und 2016 sogar PowerShell Code als quelloffene Shell herausgebracht. Funktionell ist sie durchaus brauchbar, allerdings im Vergleich zu den GNU/Linux-Werkzeugen doch deutlich sperriger. Folgendes Beispiel aus der obigen Liste demonstriert das: Wir möchten in einer Textdatei den Name „Hans“ durch „Peter“ ersetzen.

sed 's/Hans/Peter/g' datei.txt
(Get-Content .\test.txt).Replace('Hans', 'Peter') | Set-Content .\test.txt

Windows-Nutzer müssen hier mehr als doppelt so viel Tipparbeit leisten. Und das ist kein Einzelfall, daher ein zweites Beispiel: Es sollen alle Textdateien im aktuellen Verzeichnis nach der Zeichenkette „abc“ durchsucht werden. Die PS-Version ist mehr als 4x so lang!

grep abc *.txt
Get-ChildItem -Path \*.txt -Recurse |  Select-String -Pattern "abc"

Möchtet ihr euch das alles merken und bei Bedarf eintippen? Übrigens existiert Microsofts PowerShell erst seit 2006. Microsoft war damit (wieder einmal) sehr spät dran, viele der heutigen GNU-Standardwerkzeuge existierten dort bereits seit Jahren bis Jahrzehnten. Ein Beispiel ist grep: Es erschien 1973.11

Microsoft: Vom größten GNU/Linux Hasser zum Sympathisant

Lange Zeit hat Microsoft einen erbitterten Kampf gegen Linux und das gesamte FOSS-Ökosystem geführt: Man war der Meinung, es bedrohe die kommerziellen Umsätze. Vom damaligen CEO Steve Ballmer fiel in dem Zusammenhang sogar das Wort „Krebsgeschwür“. Mit einem neuen Chef musste selbst MS Jahre später einsehen, dass dies falsch war. Wie schon Red Hat und zig andere Unternehmen kann auch mit Linux Geld verdient werden.

Dazu zwei Beispiele: Seit 2015 läuft die Netzwerk-Infrastruktur der Azure-Cloud unter Linux.12 Weil jeder Switch seine eigene (in der Regel proprietäre) Software mitbringt – die sich mangels offenen Standards nicht in Azure integrieren ließ. Ironischerweise fällt dem Konzern hier die proprietäre Natur auf die Füße, welche sie selbst Jahrzehnte lang exzessiv gepflegt haben – im Kern bis heute.

Die Windows-Builds von PHP unter windows.php.net wurden lange Zeit von Microsoft bereitgestellt. Seit sie PHP unter Azure auf GNU/Linux betreiben, haben sie das 2020 aufgegeben und sich aus der Weiterentwicklung von PHP unter Windows ab Version 8.0 zurück gezogen.13 Nur noch die 7er Zweige wurden bis an ihr Lebensende gepflegt.14 Die existierenden 8er Builds werden seit dem vom PHP-Team selbst erzeugt. Microsoft unterstützt diese in keinster Weise mehr.15

All das geschieht natürlich nicht, weil Microsoft plötzlich überzeugt vom Konzept freier oder quelloffener Software ist. Sonst wären Windows, Office & co. mindestens quelloffen. Der Konzern hat gemerkt, dass er mit einer Annäherung viel mehr Geld verdienen kann – statt im Kampf dagegen welches zu verlieren.

Und WSL?

Dazu gehört auch das Windows Subsystem for Linux, kurz WSL. Es startet eine virtuelle Maschine mit einigen der verbreitetsten Distribution wie beispielsweise Ubuntu oder Debian. Die VM wird jedoch vor dem Nutzer versteckt: Einige Sekunden nach Eingabe des wsl Befehls lässt sich das gewählte GNU/Linux direkt nutzen, wie eine native Konsole. Während WSL 1 wackelig und eingeschränkt war, ist der Nachfolger WSL 2 schon deutlich weniger schlimm. Zumindest, wenn man von gewissen Fallstricken absieht.

Letztendlich ist das allerdings ebenfalls GNU/Linux, das lediglich unter Windows virtualisiert ausgeführt wird. Bereits seit Jahrzehnten gibt es Projekte wie Cygwin, die darauf abzielen, gängige GNU/Linux und Unix Werkzeuge unter Windows zum laufen zu bekommen. Windows-Kommandozeilenprogramme werden dagegen eher seltener auf GNU/Linux portiert. Das hat Microsoft Jahrzehnte lang verschlafen, bis mit der PowerShell eine sperrige Antwort folgte (siehe oben). PowerShell Core ist zwar quelloffen und (meist) plattformunabhängig. Durchsetzen konnte sie sich nicht – GNU Bash ist nach wie vor die dominierende Shell.

Fazit

Für manche Anwendungsfälle ist GNU/Linux (noch) keine Alternative. Insbesondere, wer Software für Windows oder MacOS entwickelt, kommt nicht um das jeweilige Ziel-Betriebssystem vorbei. Die Mehrheit der Entwickler nutzt jedoch eine auf Linux basierte Distribution, sowohl beruflich als auch Privat. Neben den überzeugenden Vorteilen dominiert es die Server-Landschaft und ist daher oft die Plattform der Wahl. Oder kommt zumindest als Zweitsystem zum Einsatz.

Das mag überraschend wirken, wenn man sich den Marktanteil unter allen Desktop-Betriebssystemen in Deutschland anschaut: Hier erreicht GNU/Linux derzeit 4,3% und mit ChromeOS 6,04%. Das ist deutlich weniger, doch die Verbreitung steigt.

Quellen

  1. https://gs.statcounter.com/os-market-share/desktop/germany/ ↩︎
  2. https://survey.stackoverflow.co/2022#section-most-popular-technologies-operating-system ↩︎
  3. https://survey.stackoverflow.co/2023/#section-most-popular-technologies-operating-system ↩︎
  4. https://survey.stackoverflow.co/2020#technology-platforms-all-respondents5 ↩︎
  5. https://www.zdnet.com/home-and-office/networking/can-the-internet-exist-without-linux/ ↩︎
  6. https://www.blackdown.org/linux-facts-and-statistics/ ↩︎
  7. https://www.fortunebusinessinsights.com/de/markt-f-r-server-betriebssysteme-106601 ↩︎
  8. https://azure.microsoft.com/de-de/products/virtual-machines/linux ↩︎
  9. https://www.cbtnuggets.com/blog/certifications/open-source/why-linux-runs-90-percent-of-the-public-cloud-workload ↩︎
  10. https://cloud-init.io/ ↩︎
  11. https://archive.org/details/unixprogramminge0000kern/page/102/mode/2up ↩︎
  12. https://www.wired.com/2015/09/microsoft-using-linux-run-cloud/ ↩︎
  13. https://www.zdnet.de/88381444/microsoft-stellt-entwicklung-von-php-builds-fuer-windows-ein/ ↩︎
  14. https://externals.io/message/110907 ↩︎
  15. https://www.reddit.com/r/PHP/comments/ho9dgq/comment/fxgk1sc/ ↩︎

Leave a Reply