Vor- und Nachteile der Software-Entwicklung mit Linux
Anbieter zum Thema
GNU/Linux-Derivate bieten als unixoide Betriebssysteme hervorragende Voraussetzungen, um als Coding-Plattform für die Softwareentwicklung zu dienen. Wir zeigen, welche Vor- und Nachteile das freie Betriebssystem für Software-Entwickler hat.

Wer an Softwareentwicklung denkt, denkt automatisch auch an GNU/Linux (im Folgenden kurz: Linux). Das liegt auch daran, dass das freie Betriebssystem seit der Veröffentlichung des ersten Linux-Kernels am 17. September 1991 enorme Erfolge verbuchen kann.
Linux ist nicht nur als Betriebssystem in zahllosen Distributionen verfügbar, sondern hat sich auch nach und nach in der Welt der Kleingeräte etabliert. Linux läuft buchstäblich überall und steuert Webserver, Arbeits- und Heim-PCs, Haushaltsgeräte, Smart-Home-Komponenten und sogar autonome Automobile.
Kurzum: Linux ist die wohl wichtigste Komponente für die vernetzte Welt der Zukunft. Da liegt es nur nahe, Linux auch als Basissystem für die Software-Entwicklung einzusetzen – oder?
Softwareentwicklung mit Linux: Grundsätzlich problemlos
Technisch gesehen ist Linux natürlich hervorragend für die Softwareentwicklung geeignet. Einerseits, weil das System eine große Bandbreite von Programmiersprachen, Editoren und Integrierten Entwicklerumgebungen (IDEs) unterstützt. Zudem gibt es durch weit verbreitete Linux-Distributionen wie Ubuntu, Linux Mint, Debian und SUSE eine quasi-Standardisierung.
Nicht zuletzt eignet sich Linux auch bestens als Objekt der Softwareentwicklung: In aller Regel ist die verfügbare Software quelloffen, wodurch es leicht ist, auf bestehenden Lösungen aufzusetzen und eigene kreative Projekte zu verfolgen. Kurzum: Eigentlich bräuchte der Entwickler nichts außer Linux, egal, ob er nun Software herstellt oder Web-Systeme baut.
Linux hat einen großen Haken
Leider ist es damit aber nicht getan: Linux hat leider einen extrem großen Haken – und das ist die Fragmentierung des Systems. Auch wenn es weit verbreitete, große Distributionen gibt, ist Linux trotzdem nicht gleich Linux. „Das“ Linux gibt es nämlich nicht: Die modulare Struktur und die schier unendlichen Möglichkeiten, Linux zusammenzustellen, verhindern effektiv eine Standardisierung.
Das geht so weit, dass sich große Software-Unternehmen nach wie vor scheuen, kommerzielle oder gar proprietäre Lösungen für Linux bereitzustellen. Zu groß die Wahrscheinlichkeit, dass eine Lösung hier und dort nicht korrekt arbeitet, zu hoch der Support-Aufwand. Und so schneidet sich Linux als Entwicklersystem ins eigene Fleisch
Die enorme Flexibilität ist somit ein großer Vorteil und gleichzeitig der größte Nachteil: Es fehlt an Einheitlichkeit – und das stört den Betrieb vor allem, wenn kollaborativ mit Freelancern gearbeitet werden muss, die möglicherweise ihre eigenen Vorstellungen von Linux-Entwicklung pflegen.
Viele Programmiersprachen und noch mehr tote Enden
Auf der Habenseite unterstützt Linux natürlich die gängigen Programmiersprachen C, C++, Java, Ruby und viele weitere. Sogar Apple Swift wird unterstützt. Die klassische Java-IDE ist ebenso für Linux verfügbar wie die Android-SDK. Und mit Qt Creator liegt eine kostenlose, vollumfängliche IDE für C++-Projekte vor.
Der Editor Geany ist für zahlreiche Sprachen geeignet. Auch Compiler gibt es wie Sand am Meer: Standardmäßig sind in den meisten Distributionen entsprechende Tools vorhanden, schon weil Linux-Software häufig noch kompiliert werden muss. Die reine Code-Erstellung samt Kompilierung stellt Entwickler unter Linux also nur selten vor Probleme, hier ist das System hochflexibel. Zumal alle genannten Tools kostenlos erhältlich sind.
Entwickeln nur für Linux und Android
Grundsätzlich gilt unter Linux genau wie unter Windows oder macOS, dass es sinnvoll ist, für die verwendete Plattform zu entwickeln. Unter Linux schließt das auch Android mit ein, das ja selbst ein Betriebssystem mit Linux-Kernel ist.
Die Entwicklung für Windows und vor allem macOS ist unter Linux hingegen schwierig: Für das Testing und betriebssystemspezifische Funktionen wird das System selbst benötigt. Dieses Problem ist jedoch durch Virtualisierung leicht zu umgehen, allerdings ist hierfür eine vollständige virtuelle Windows-Maschine mit einem Tool wie VirtualBox notwendig; zur Softwareentwicklung unter Windows muss diese auch in weiten Teilen verwendet werden.
Der Vorteil dieser Lösung ist sicherlich, dass Entwicklersysteme von der Leistungsfähigkeit und Flexibilität von Linux profitiert. Allerdings spricht in einem solchen Szenario außer gehobenem Idealismus wenig dafür, nicht gleich auf einen Windows-PC zu setzen: Der kann Linux nämlich dank des Windows-Subsystems für Linux direkt ausführen, was Linux mit Windows aufgrund dessen proprietären Designs nicht kann.
Und macOS? Hier besteht leider das gleiche Problem. Allerdings sind Apple-Betriebssystem und Linux technisch gesehen unixoide Betriebssysteme und daher verwandt; die Anpassung einer ursprünglich für Linux programmierten Software ist später unter macOS nicht ganz so komplex wie die Portierung zu Windows.
Ideal für die Webentwicklung
Ganz anders sieht es übrigens bei der Webentwicklung aus: Hier ist Linux sehr gut aufgestellt, auch weil ein Großteil der Internet-Infrastruktur ebenfalls unter Linux arbeitet. LAMP-Webserver sind auf dem System schnell eingerichtet und können effizient gespiegelt werden. Und dank leistungsstarker Shells wird Administration von Remote-Systemen zum Kinderspiel.
Das schließt natürlich explizit Technologien wie HTML, PHP und Java ein: Die Menge an verfügbaren Editoren und IDEs ist enorm, wenn es darum geht, das Web mit Software zu betanken. Dadurch ist Linux Windows und MacOS in Sachen Webentwicklung zwar nicht unbedingt voraus, aber doch völlig ebenbürtig.
Fazit: Für Web- und Linux-Entwicklung uneingeschränkt zu empfehlen
Insgesamt ist Linux zwar nicht, wie oft behauptet, das ideale Entwicklersystem: Die Möglichkeit, macOS- und Windows-Code sowie für iOS zu entwickeln, sind ohne Hilfe wie virtuelle Maschinen extrem eingeschränkt oder völlig ausgeschlossen. Was bleibt, sind Android, Web-Anwendungen und natürlich Linux-Systeme selbst.
Hier kann Linux aber aufgrund der Menge der verfügbaren Tools seine Stärke ausspielt, auch wenn proprietäre Lösungen weitestgehend fehlen. Wer mit Linux entwickelt, muss aber aufgrund dieser Tatsache damit rechnen, dass zusätzlicher Aufwand für die Beseitigung der Fragmentierung vonnöten ist. Dafür sparen Softwareentwickler, und das ist ein nicht zu verachtendes Argument, gegenüber Windows und macOS Lizenz- und Hardwarekosten.
:quality(80)/p7i.vogel.de/wcms/29/f9/29f9347dd40a07c14eb8895c07f8e6a4/90131220.jpeg)
Cross-Development mit Ubuntu Core
:quality(80)/p7i.vogel.de/wcms/ee/3e/ee3e6bd1548c02ee07ac5edd7725d5af/77955554.jpeg)
Remote Debugging von Embedded-Linux-Systemen mit GDB
:quality(80)/images.vogel.de/vogelonline/bdb/1267800/1267879/original.jpg)
Echtzeit mit Linux
Dieser Beitrag erschien zuerst auf unserem Partnerportal Dev-Insider.de.
(ID:46717975)