Javascript

Animations-Beispiel mit Javascript (Details)
Jedes gängige Browser-Programm kann Javascript-Programme am eigenen Arbeits-PC ausführen.


Javascript-Technik



Der Schutz des geistigen Eigentums ist daher mit Javascript nicht möglich. Dieser Aspekt wird jedoch oft überschätzt: Die meisten Programme enthalten keine Geheimnisse.

Oft wird auch bemängelt, dass man den Quelltext am eigenen PC ändern kann. Damit kann man sich allerdings nur selbst schaden, ebenso wie durch die Manipulation beliebiger anderer erhaltener Daten.


Dieser Vorteil wirkt sich umso stärker aus, je öfter ein Programm (z.B. auf interaktive Anforderung) wiederholt wird.

Wenn es möglich ist, eine Aufgabe vom Server (Java, Perl, PHP, ...-Programme) zum Client (Javascript) zu verlagern, dann kann man damit die Leistung des Gesamt-Systems (Server + alle Clients) meist erheblich steigern.



Diese strengen Regeln werden heute zunehmend aufgeweicht:  Insbesondere auf Mobil-Geräten wird eine enge Zusammenarbeit von Hardware (Sensoren, GPS, Camera, Mikrofon, ...) und Software gewünscht. Dazu wurden eigene → API-Methoden entwickelt und mittlerweile intensiv genutzt.
Die Nutzung dieser Funktionen ist zwar an die Zustimmung der AnwenderInnen gebunden, diese wird jedoch meist unkritisch oder - aus Bequemnlichkeit - generall an alle Apps erteilt.
Der Zugriff auf private Daten erfordert (technisch) nicht einmal eine Erlaubnis, wenn man diese auf einem Cloud-Server speichert.
Javascript ist in dieser Hinsicht genauso sicher oder unsicher wie jede andere App, der man Zugriff auf die Hardware erlaubt.


Viele AnwenderInnen befürchten Spionage durch Cookies. Das trifft kaum zu und ist auch nicht an Javascript gebunden.

Zur Spionage sind heute andere, sehr effiziente Möglichkeiten verfügbar, die man als User nur dann unterbinden kann, wenn man weder PC noch Smartphone oder das Internet nutzt. Außerdem werden Autos, Stromzähler, Heizungen und Haushalts-Geräte bald zwangsweise mit 'Intelligenz' ausgerüstet, die man als AnwenderIn weder kontrollieren noch abschalten kann.



Javascript-Programme arbeiten außerordentlich schnell: Wenn ein Programm nur wenig Quelltext enthält, jedoch viele Anweisungen ausführt (Schleifen), dann erreicht man fast die gleiche Geschwindigkeit wie mit der Programmiersprache C/C++, jedoch mit weit geringerem Aufwand.



Eine HTML-Webseite bietet mit → HyperLinks und → Formularen alle notwendigen Elemente zur interaktiven Eingabe und Steuerung.
Zur Ausgabe kann Javascript mit → DOM-Methoden auf die gesamte Webseite zugreifen und z.B. Elemente ändern, neu erzeugen, löschen oder ihre Formatierung ändern.



Typische Aufgaben von javascript-Programmen:
  • Interaktive Steuerung von Layout, Text, Grafik, Video...
  • Berücksichtigung des aktuellen geografischen Standorts. Die → geoLocation-Methoden sind für SmartPhones besonders wertvoll.
  • Animation - Nur Javascript bietet die notwendige Geschwindigkeit zur Animation auf Webseiten (wenn man von einfachen animierten Icons absieht).
  • Erzeugung von programmierter Grafik - Erfolgt derzeit noch meist am Server, bietet jedoch mit → SVG und → Canvas besonders großes Potential zur Steigerung der Leistung.
  • Live-Anforderung von Server-Daten mit → AJAX. Die Arbeit des Servers wird auf seine Kern-Kompetenz reduziert und damit wesentlich beschleunigt. Die Präsentation des Inhalts (Text, Tabellen, Grafik, ...) erfolgt am Client-PC mit Javascript.

Entwicklungs-Umgebung


Javascript Funktionen werden nicht alleinstehend verwendet, sondern als Hilfs-Programme für verschiedene Dokumente - Meist für → HTML-Webseiten, jedoch auch für jedes andere XML-Dokument, z.B. für → SVG Objekt-Grafik.
Daher braucht man die passende Entwicklungs-Umgebung für den jeweiligen Dokument-Typ, meist für HTML (Details).

Zusätzlich braucht man eine möglichst rasche und unkomplizierte Methode zum Debuggen der unvermeidlichen Programmier-Fehler.
Dazu bieten alle gängigen Browser eine Option zur Anzeige der (Fehler)-Konsole, z.B. Firefox:
Menü ☰ / EntwicklerInnen-Werkzeuge / Web-Konsole
oder Google-Chrome:
Menü ☰ / Weitere Tools / EntwicklerTools / Console
oder MS-Edge:
Menü ☰ / F12-Entwicklungstools / Konsole

Eine Möglichkeit zum raschen (!) und einfachen Debuggen ist unumgänglich - Andernfalls verliert man unverhältnismäßig viel Zeit mit der Suche nach Fehlern.

Ausbildung


Man kann rasch Erfolge erzielen. Bei kluger Wahl der Aufgaben ist es möglich, ein Beispiel innerhalb einer halben Stunde zu programmieren. Eine Minimal-Webseite bietet das gesamte User-Interface, daher kann man die verfügbare Zeit zur Programmierung der eigentlichen Aufgabe verwenden.

Der Aufwand zur Herstellung eines ansprechenden User-Interface ist gering. Schon wenig fortgeschrittene StudentInnen können ihre Produkte mit Layout, Farbe und Grafik herzeigbar gestalten. Das erhöht die Motivation besser als beispielsweise die wochenlange Ansicht von Konsolen-Programmen...

Die mit Javascript erworbenen Grund-Kenntnisse lassen sich mit geringen Änderungen auf alle modernen Programmiersprachen übertragen. Damit kann man viel Ausbildungs-Zeit sparen.
Erst bei fortgeschrittener Programmierung (z.B. von Objekten oder Klassen) unterscheiden sich andere Programmiersprachen wesentlich von javascript.