Читать книгу Praxishandbuch Open Source - Christian Galetzka - Страница 38

a) Entwicklungsumgebungen und Build-Tools

Оглавление

89

Bei dem Begriff „Entwicklungsumgebung“ handelt es sich um einen Oberbegriff für unterschiedliche Arten von Hilfsmitteln zur Erzeugung und Bearbeitung von Code. So fallen unter diesen Begriff beispielsweise IT-Plattformen bzw. Systemumgebungen, auf denen Software entwickelt wird, oder Sammlungen von Computerprogrammen zur Software-Entwicklung, z.B. die sogenannten integrierten Entwicklungsumgebungen oder Software Development Kits. Der Begriff „Build-Umgebung“ bezieht sich dagegen nicht auf die Erstellung von Code, sondern den darauf folgenden Schritt, nämlich das Erzeugen von Executables. Build-Tools sind also die Programme, die beim Kompilieren eingesetzt werden.

90

Bei der Systemumgebung handelt es sich einfach um eine Plattform, mit der ein informationstechnisches System betrieben wird. Ein solches System hat dabei häufig einen dreistufigen Aufbau, der aus einer Entwicklungsumgebung besteht, auf der der Entwickler neue Software entwickelt, einer Testumgebung, auf der die neu erstellte Software getestet werden kann, und einer Produktivumgebung, auf der die Software letztendlich betrieben und zu Geschäftszwecken genutzt wird. Die Entwicklungsumgebung der Systemumgebung beschreibt dabei kein eigentliches Entwicklungswerkzeug, sondern lediglich den Ort, an dem neue Software entwickelt wird.5

91

Eine integrierte Entwicklungsumgebung oder auch IDE (kurz für Integrated Development Environment), stellt eine Sammlung verschiedener aufeinander abgestimmter Computerprogramme dar, die der Entwicklung von Software dienen. Solche IDEs gibt es für nahezu alle Programmiersprachen und Plattformen, wobei eine IDE in der Regel jeweils nur eine Programmiersprache unterstützt. Statt eine IDE zu verwenden, kann ein Entwickler sich die zur Software-Entwicklung benötigten Einzelwerkzeuge wie Texteditor, Compiler, Linker, etc. (mehr dazu siehe Rn. 97ff.) auch einzeln besorgen und zusammenstellen. Der Vorteil der IDE besteht jedoch darin, dass die einzelnen Werkzeuge bereits gut aufeinander abgestimmt sind und Software-Entwicklung in der Regel ohne Medienbrüche stattfinden kann.6 Beispiele für solche IDEs sind u.a. Eclipse oder die NetBeans IDE.

92

Neben den IDEs gibt es auch noch die Software Development Kits (kurz: SDKs). Diese stellen ebenfalls eine Sammlung von verschiedenen Werkzeugen und Hilfsmitteln zur Erstellung von Software dar und beziehen sich meist auf ein konkretes Produkt, wie z.B. Android, oder eine Programmiersprache und stellen dafür dann neben den Entwicklungstools auch entsprechende Schnittstellen und Dokumentationen, diverse Bibliotheken und manchmal auch Testprojekte zur Verfügung. Viele SDKs beinhalten bereits eine entsprechende IDE, mit der die anderen vom SDK bereitgestellten Komponenten genutzt werden können. Jedoch ist es auch möglich, die durch ein SDK bereitgestellten Funktionen in einer selbstgewählten IDE zu nutzen.7 Beispiele für SDKs wären das Android SDK oder das Java Development Kit (JDK).

93

Weitere wichtige Werkzeuge sind die Build-Tools. Hierbei handelt es sich ebenfalls wieder um Computerprogramme. Diese dienen aber nicht der grundsätzlichen Erstellung von Code, sondern vielmehr dazu, den bereits geschriebenen Source Code in ausführbaren Code umzuwandeln. Zwar sind auch IDEs mit ihren integrierten Compilern in der Lage dazu, aus dem dort geschriebenen Source Code ein ausführbares Programm zu erzeugen. Allerdings muss dies hier händisch durch den Entwickler angestoßen werden. Die Build-Tools bieten die Möglichkeit, den Build-Prozess – also die Kompilierung des Source Code in ein ausführbares Programm (siehe ausführlich Rn. 97ff.) – zu automatisieren und so z.B. zu ermöglichen, den Build immer zu einem festgelegten Zeitpunkt mit dem bis dahin neu hinzugefügten Code automatisch durchzuführen.8 Bekannte Build-Tools sind z.B. Maven, Gradle oder Ant.

94

Gelegentlich stößt man auch auf den Begriff Toolchain. Auch diese bezeichnet eine systematische Sammlung von verschiedenen Werkzeugen zur Erstellung und Bearbeitung von Code und beschreibt damit im Grunde etwas Ähnliches wie die bereits oben erwähnten Entwicklungsumgebungen. Der Begriff der Toolchain stammt daher, dass die unterschiedlichen Werkzeuge nacheinander in Form einer Kette eingesetzt werden. Hier sind regelmäßig ebenfalls Texteditoren zur Erstellung des Code sowie Compiler und Linker zur Umwandlung in ein ausführbares Programm enthalten.9 Ein bekanntes Beispiel für eine Toolchain ist die GNU Toolchain, die alle vom GNU Projekt entwickelten Programmierwerkzeuge enthält.

95

Ein ebenfalls wesentlicher Teil bei der Erstellung und Verwaltung von Code sind die sog. Paketverwaltungen oder Package Manager. Diese stellen ebenfalls eine Sammlung von Werkzeugen dar, die diesmal aber nicht zur Erstellung, sondern lediglich zur Verwaltung von Code dienen. Die Hauptfunktionen der Package Manager sind die Installation, Aktualisierung und Deinstallation von Software. Wichtigster Bestandteil ist die Paketdatenbank, die alle Informationen über installierte bzw. zur Verfügung stehende Software-Pakete beinhaltet. Grundsätzlich stammt diese Art der Software-Verwaltung aus dem Umfeld von Betriebssystemen und ermöglicht die einfache Verwaltung der auf und mit dem Betriebssystem betriebenen Software.10

96

Der Begriff des Package Manager wird aber auch für Plattformen verwendet, auf denen Entwickler Software-Pakete zur Lösung diverser Problemstellungen finden und die zudem die Möglichkeit bieten, die entsprechenden Pakete zu verwalten oder diese direkt in eigene Software oder eigene Software-Paketen zu integrieren. Ein Beispiel für eine solche Plattform ist der Node Package Manager oder kurz npm. npm ist ein Package Manager für node.js, die Laufzeitumgebung von JavaScript. Er bietet eine große Datenbank an bereits fertigen Paketen, die Möglichkeit, diese Pakete zu bearbeiten und an eigene Bedürfnisse anzupassen sowie die Pakete zu verwalten und mit anderen zu teilen.11 Auch wenn die Package Manager eher als Werkzeuge zur Verwaltung gedacht sind, kann damit, durch Einbeziehung diverser bereitgestellter Pakete in die eigene Software, natürlich auch Software bearbeitet werden.

Praxishandbuch Open Source

Подняться наверх