Die Ära nativer Applikationen

Das Computerzeitalter kann auf eine Ära nativer Applikationen zurückblicken. Eine native Applikation, das ist Software, die für ein ganz bestimmtes Betriebssystem oder eine ganz bestimmte Hardware erstellt wurde. Als Computer-Nutzer kennen wir das ja: um eine solche Software auf unseren Smartphones oder Laptop-Computern nutzen zu können, muss diese von uns (wenn auch nicht immer) zunächst installiert werden. Anders verhält es sich mit Webanwendungen: diese werden plattform- und systemübergreifend bereitgestellt und können über die bereits installierten Browser ausgeführt werden.

Mit den wachsenden Möglichkeiten, die JavaScript als dominierende Programmiersprache im Browser mit sich bringt, und der immer größeren Verfügbarkeit und Bandbreite des Internets wird seit einiger Zeit immer mehr Software im Internet verfügbar, die bisher als native Anwendung umgesetzt wurde. Dies gilt für Office-Applikationen wie auch für Software zur Video- und Audio-Bearbeitung. Die technologischen Mittel dafür werden von modernen Browsern und ihren JavaScript-Engines bereitgestellt.

Spiele-Engines für Browser

Ein Beispiel für die Leistungsfähigkeit moderner Browser und der Programmiersprache JavaScript zeigte sich in der Vergangenheit beim Spielehersteller Epic. Das Unternehmen hatte es sich zum Ziel gesetzt, die in C und C++ geschriebene Spiele-Engine, genannt Unreal Engine, in einem Browser ausführen zu können [1]. Dazu wurde die Codebasis der Software in JavaScript übersetzt und konnte inklusive eines Demospiels so erfolgreich im Web ausgeführt werden [2].

Neue Programmiersprachen für den Browser

Einen neuen Lösungsansatz für die aktuellen Herausforderungen stellt WebAssembly dar. Mit WebAssembly ist es möglich, neben JavaScript auch andere Sprachen im Browser auszuführen. Dies eröffnet neue Möglichkeiten für Online-Anwendungen. Etablierte Programmiersprachen wie C, C++ und Rust stehen mit einer großen Auswahl an Ressourcen und Bibliotheken zur Verfügung.

Der Studierende Christian Jehle hat sich in seiner Projektarbeit die Grundlagen von WebAssembly näher angesehen und die Nutzung der dafür benötigten Tools wie Compiler beschrieben. Er verfasste eine Reihe kleiner Beispielprogramme, und erläutert in seiner Ausarbeitung auch die gängigsten Programmierkonzepte.

Da es sich bei WebAssembly noch um eine relativ junge Spezifikation handelt, ist der Einstieg nicht ohne technische Hürden machbar. Hier bietet die Projektarbeit einen guten ersten Einblick.

[1] Mozilla and Epic Preview Unreal Engine 4 Running in Firefox, 2021. https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-
running-in-firefox/

[2] Emscripten. About emscripten, 2021.
https://emscripten.org/docs/introducing_emscripten/about_emscripten.html?highlight=
unreal%20engine