Aus dem Kurs: Grundlagen der Programmierung: Basiswissen

Was ist eine Laufzeitumgebung?

Aus dem Kurs: Grundlagen der Programmierung: Basiswissen

Was ist eine Laufzeitumgebung?

Im letzten Video haben wir über die Entwicklungszeit einer Software gesprochen. Die Phase, die meist darauf folgt, ist die sog. Laufzeit. Die Laufzeit eines Programms beschreibt den Zeitbereich, in dem eine Software ausgeführt wird. Dies kann während der Entwicklung in Form von manuellen oder automatisierten Tests geschehen, bezeichnet aber auch allgemeinsprachlich vor allem die Zeit, in der die Endnutzerinnen und Endnutzer das Programm in ihrem Alltag verwenden. Hierbei muss das Programm mit dem Betriebssystem oder anderen externen Systemen wie Datenbanken oder Webdiensten interagieren. Es nimmt Daten entgegen, verarbeitet sie und speichert sie oder gibt Anweisungen an die Hardware, auf der es läuft. Während der Laufzeit läuft das Programm in einer Laufzeitumgebung. Diese kann sehr unterschiedlich sein und wird nicht selten zunächst durch das verwendete Betriebssystem bestimmt. Das Betriebssystem übernimmt die Interaktion mit der Hardware und stellt Schnittstellen bereit, um bspw. Daten auf die Festplatte zu schreiben oder Fenster anzuzeigen. Damit ist es für das Programm egal, welche Grafikkarte verbaut ist oder ob ein Prozessor von Intel, AMD oder ARM verwendet wird. Wobei ganz korrekt ist diese Aussage nicht. Einige Hardwareunterschiede sind so groß, dass es auch unterschiedliche Betriebssysteme gibt. In diesem Fall muss eine Software theoretisch für spezielle Betriebssysteme gebaut sein. Ein gutes Beispiel hierfür sind Windows-Applikationen; sie können nicht einfach auf Smartphones ausgeführt werden und umgekehrt. Um dieses Problem zu umgehen, gibt es bei manchen Programmiersprachen die Möglichkeit, eine abstrakte Laufzeitumgebung zu nutzen. Dabei sind die Schnittstellen, die ein Programm verwendet, nicht die des Betriebssystems, sondern die der abstrakten Laufzeitumgebung. Diese kümmert sich dann darum, die Implementierung für das jeweilige Betriebssystem vorzunehmen. Dadurch müssen Sie Ihr Programm nur noch einmal kompilieren und können es theoretisch auf jedem beliebigen Betriebssystem und jeder beliebigen Hardware ausführen. Darüber hinaus übernehmen diese Umgebungen auch häufig die Verwaltung des Speichers. Manche bieten auch Sicherheitsfeatures, in dem sie nicht jeden Zugriff auf das umgebende Betriebssystem zulassen. Das gilt z.B. für Webseiten, deren Laufzeitumgebung der Browser ist und die nicht wahllos auf die Festplatte schreiben können. Aber auch Java und .NET bieten eigene Laufzeitumgebungen, was sehr zur Verbreitung dieser Sprachen beigetragen hat. Diese Laufzeitumgebungen sind mittlerweile so leistungsfähig, dass ihre Nutzung den leichten Leistungsverlust wettmacht, den man dadurch hat, dass man nicht direkt mit dem Betriebssystem oder der Hardware interagiert. In manchen Anwendungsfällen, z.B. bei der Bildverarbeitung oder bei Computerspielen, kann der Leistungsverlust dennoch zu hoch sein, weswegen man dort bewusst auf diese Zwischenschicht verzichtet und die Software dann auch nur direkt für die entsprechenden Plattformen umsetzt. Sie werden diese Unterschiede im Laufzeitverhalten in Ihren Projekten selbst feststellen. Ich empfehle Ihnen, die Erfahrungen, die Sie gemacht haben, festzuhalten, um bei zukünftigen Projekten daraus Nutzen zu ziehen.

Inhalt