Was ist der Unterschied zwischen Apps, Programmen, Browser-Erweiterungen, Plugins und Web-Apps?

Seit wir im Corona Home-Office arbeiten, geistern diese Begriffe durch alle Kanäle. Was ist was? Und worin unterscheiden sich diese überhaupt?

Editors Note: Dieses ist die erste Version dieses Beitrags, er wird noch ergänzt.

Vorab: Egal welche Software-Produkte Sie nutzen, installieren wollen oder welche Webseiten Sie aufrufen:

Akzeptieren Sie nur vertrauenswürdige Quellen!

1. Programme (Anwendungsprogramme)

Fangen wir in der guten alten Zeit an, den Neunzigern. Damals gab es Windows bereits als Betriebssystem und man hat verschiedene Programme, zum Beispiel Word, auf dem Rechner installiert. Sie waren durch die Dateiendung .EXE als ausführbare Programme erkennbar. Für die Installation wurde oft ein Administrator-Account benötigt, um Systemeinstellungen anzupassen.

So installierte Programme können über administrative Rechte verfügen, das heißt sie greifen tief in das Betriebssystem ein. Eine Beschränkung einzelner Rechte war damals nicht machbar und ist auch heutzutage nur eingeschränkt möglich. Das ist ein entscheidender Unterschied zu Smartphone-Apps, bei denen einzelne Berechtigungen vergeben werden können.

Bereits damals gab es auch „kleine“ Programme, die man lediglich auf die Festplatte kopieren und einfach per Doppelklick starten konnte, da sie ohne Anpassung des Windows-Systems lauffähig waren, beispielsweise ein MP3-Player.

Und daran hat sich bis heute nichts geändert: Für einen Viren-Scanner benötigen Sie administrative Rechte, während Sie manche Programme als Standardbenutzer installieren können.

Jedes installierte Programm kann tiefgreifende Rechte haben, die die des aktuellen Benutzers umfassen, z.B. Zugriff auf  Dateien.

Neuerdings werden Programme für Windows und MacOS auch als Desktop-Apps bezeichnet.

2. Mobile Apps

Mobile Apps bezeichnen Programme, die auf Smartphones und Tablets installiert werden können – in der Regel über sogenannte App-Stores.

Diese Apps sind ebenso wie „normale“ Programme für ein spezifisches Betriebsystem umgesetzt, z.B. Android oder iOS. Sie werden deshalb als native Apps bezeichnet. Sofern eine App für mehrere Betriebssysteme angeboten wird, ist sie immer unterschiedlich umgesetzt, da die Betriebsysteme  verschieden sind.

Seit einiger Zeit werden auch Programme für Computer als Apps bezeichnet, in MacOS und Windows stehen Apps über App-Stores zur Installation bereit.

Eine klare Trennung zwischen den oben beschriebenen Programmen und Apps existiert also de facto nicht (mehr).

Jedoch sehen wir den wesentlichen Unterschied zwischen Programmen und den aus App-Stores installierbaren Apps in der Vergabe granularer Berechtigungen, beispielsweise Zugriff auf Kontakte, Medien, das Mikrofon oder die Kamera. Die technische Kontrolle der Berechtigungen wird hierbei durch das Betriebssystem garantiert, so dass keine Zugriff erfolgen sollte, wenn die Berechtigung nicht erteilt wurde.

Wichtig ist es alle Sicherheits- und sonstigen System-Updates baldmöglich einzuspielen – leider waren und sind die Systeme lückenhaft und immer wieder angreifbar. Auch die Nutzung von Betriebssystemen, die keine Updates mehr erhalten ist problematisch, z.B. frühere Android-Versionen auf älteren Smartphones (älter heißt oft >2 Jahre).

Für Besserwisser: App ist die Abkürzung von Application, was auf Deutsch Anwendung bedeutet und im IT-Umfeld für Anwendungsprogramm steht.

3. Web-Apps (Web-Anwendungen)

Als Web-App bezeichnet man Webseiten, die funktional sehr reichhaltig sind und in der Anmutung einer nativen App nachempfunden sind.

Statt eine App oder ein Programm auf Ihrem Gerät zu starten, rufen Sie die entsprechende Webseite auf. Die Webseite selbst ist mit den Standard-Technologien HTML, CSS und JavaScript implementiert. Oft werden komplexe JavaScript-Bibliotheken genutzt, um Interaktionen zu ermöglichen und performant zu sein.

Ein Unterschied zu nativen Apps besteht darin, dass kein Programm / keine App installiert werden muss. Eine Web-App wird direkt im Browser ausgeführt und Sie können einzelne Berechtigungen über den Browser vergeben, z.B. Zugriff auf Mikrofon und Kamera.

Neuerdings wird von progressive Web-Apps gesprochen, die sich kaum von nativen Apps unterscheiden (sollen). Diese funktionieren nicht immer in allen aktuellen Browsern gleichermaßen gut, da diese Programme trotz internationaler Gremien, Spezifikationen und vereinbarten Standard-Anforderungen Hersteller-spezifisch sind.

In der App-Entwicklung werden oft Tools eingesetzt, die es ermöglichen eine App mit den Standard-Technologien HTML, CSS und JavaScript als Web-App zu entwickeln, Anschließend wird die Web-App in native Apps für Android und iOS konvertiert (=exportiert). Dieser Ansatz wird als hybrid bezeichnet.

4. Browser-Erweiterungen und Plugins

Für die gängigen Internet-Browser Firefox, Edge, Chrome und Chromium sind eine Reihe von Erweiterungen „Addons“ verfügbar. Diese ergänzen den Browser um zusätzliche Funktionalitäten.

Eine Browser-Erweiterung greift in die Funktionsweise des jeweiligen Browsers ein, indem Sie die vom Hersteller zur Verfügung gestellte Schnittstelle nutzt. Bei der Installation einer Browser-Erweiterung erteilen Sie dieser weitgehende Rechte innerhalb des Browsers, beispielsweise kann sie dann auf Ihre Daten für eine oder alle Websites zugreifen, den Verlauf lesen, jede aufgerufene Webseite modifizieren und vieles mehr, z.B. Übersicht der Berechtigungen für Erweiterungen im Firefox. Installieren Sie deshalb nur Erweiterungen aus vertrauenswürdigen Quellen.

Im Unterschied zu einem Programm oder einer mobilen App kann eine Browser-Erweiterung keinen Zugriff auf das darunterliegende Betriebssystem erhalten, z.B. kann sie nicht auf Ihre Dateien auf dem Gerät zugreifen.

Während Browser-Erweiterungen in den Browser direkt eingreifen, dienen Plugins lediglich dazu, spezielle Inhalte darzustellen. Typische Plugins sind PDF-Viewer, H264 Video Decoder, Java, Flash oder Silverlight.

Plugins werden zwar über den Browser aufgerufen, müssen aber als zusätzliche Komponenten auf dem Betriebsystem installiert werden, was auch zu Sicherheitsproblemen führen kann. Beispielsweise ist das Flash-Plugin als problematisch bekannt.

Schlussbemerkung

Ich hoffe, dass Sie die Begriffe jetzt besser einordnen können. Wesentliche Sätze zum Schluss:

Merke:

Programme greifen oft tief ins Betriebssystem ein

Programme verfügen über weitgehende Berechtigungen, die kaum beschränkt werden können

native App: für ein spezifisches Betriebssystem umgesetztes Programm

(native) Apps haben granulare Berechtigungen, beispielsweise Zugriff auf Kontakte, Mikrofon oder Kamera

Web-Apps werden innerhalb des Browsers ausgeführt

Weitere Informationen bei Wikipedia:

Autor: don't panic

Über das Pseudonym: "Don't panic" ist auf das Cover des legendären elektronischen Reiseführers durch die Galaxis gedruckt, damit ein Anhalter keine Angst verspürt. - The British author Arthur C. Clarke said Douglas Adams' use of "don't panic" was perhaps the best advice that could be given to humanity. cf. Wikipedia

4 Gedanken zu „Was ist der Unterschied zwischen Apps, Programmen, Browser-Erweiterungen, Plugins und Web-Apps?“

  1. Da ich auch immer noch versuche die Begiffe in meinem Kopf richtig zu erfassen, ist es nicht auch so dass die Apps technisch gesehen eine gekapselte Einheit sind und so auch alle benötigten Programmbibliotheken beinhalten? Und dass sie jeweils in einer eigene Laufzeitumgebung laufen?

    1. Hallo Otacon,

      vielen Dank für Deinen Kommentar.

      Kapselung heißt nicht zwingend, dass die Apps/Programme alle Funktionen selbst mitbringen, wichtig ist eine klare Trennung von (anderen) Daten und Prozessen in einem Gerät, dieses wird gern als Sandboxing bezeichnet: wenn eine App in der Sandbox Schaden anrichtet, tut sie dieses weder für das ganze System noch für andere Apps/Programme.

      Das Konzept der Kapselung ist leider nicht durchgängig – es hängt stark von der Plattform (dem Betriebssystem) und der jeweiligen Funktion ab. Idealerweise würde jede App in einer Sandbox laufen und nicht direkt auf Daten und Prozesse zugreifen, die es nicht selbst erzeugt/verwaltet bzw. wofür es eine Freigabe erhalten hat. Das ist aber leider nicht so.

      Bei den mobilen Betriebssystemen Android und iOS ist das weitgehend umgesetzt, aber auch dort nicht für alle Zugriffe.

      Viele Funktionen werden betriebssystemseitig zur Verfügung gestellt, bspw. ist das beim Netzzugriff auf allen Plattformen der Fall. Der Zugriff erfolgt dann über betriebssystemseitig bereitgestellte Schnittstellen, den sogenannten APIs. Die Programmbibliotheken werden dann gemeinsam genutzt, sie werden „gelinkt“, d.h. im Code der Programme enthalten sind nur die Funktions-Aufrufe „Calls“.

      Andere Funktionen werden in den Programmen/Apps gebündelt, bspw. über SDKs im Code includiert. Diese sind dann gekapselt.
      Bei Windows können sogar systemseitige Treiber überschrieben werden, z.B. kann damit ein direkter Zugriff auf Komponenten wie Kamera und Mikrofon erfolgen.

Schreibe einen Kommentar zu don't panic Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert