Einige Erklärungen zur JavaScript-Programmierung (Einige Erklärungen zur JavaScript-Programmierung), Lektion, Seite 722767
https://www.purl.org/stefan_ram/pub/erklaerungen_javascript (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
JavaScript-Kurs

Einige Erklärungen zur JavaScript -Programmierung

Grundbegriffe der Programmierung

Ausführungen von Programmen

Bei einigen Sprachen besteht die Bedeutung eines Textes, darin, daß etwas Bestimmtes getan  werden soll. Man spricht dann auch von einer operationalen Semantik  und könnte die Sprache dann auch als eine operationalen Sprache  bezeichnen.

Wenn das getan wird, was ein Programm verlangt, sagt man, das Programm werde ausgeführt.

Wenn ein Programm ausgeführt wird, so sagt man auch, daß das Programm laufe.

Die Zeit, zu der ein Programm ausgeführt wird, nennt man auch die Laufzeit  des Programms. Wenn man sagt, daß etwas zur Laufzeit  passiert, so meint man damit, daß es bei der Ausführung passiert.

Programmiersprache und Programm
\            /                     .-----------------------.
- Aktivitaet - <-----------------| Programm |
/ \ Ausfuehrung '-----------------------'

Implementationen

Ein System, das Programme nach den Regeln einer Programmiersprache ausführt, wird eine Implementation  (oder Implementierung ) dieser Programmiersprache genannt.

Eine JavaScript-Implementation  ist also etwas, das JavaScript -Programme ausführen kann.

Eine Implementation, die gerade ein Programm ausführt
.----------------------------------------.
| .----------------. .------------. | Inkarnation aus Implementation und Programms
| | Implementation |<---( Programm ) |
| '----------------' '------------' |
'----------------------------------------'
|
V
\ /
- Interaktion -
/ \
|
V
Ausgabe
Ein Beispiel
.----------------------------------------.
| .----------------. .------------. | Eine Inkarnation einer Operation ist eine
| | Plattenspieler |<---( Schallplatte ) | Verbindung der Operation mit Daten, die
| '----------------' '------------' | dann ausgefuehrt werden kann.
'----------------------------------------'
|
V
\ /
- Interaktion - Grundprinzipien:
/ \ 1.) Verbindung zu startfaehiger Maschine
| 2.) Start einer startfaehigen Maschine
V
Ergebnis
Ein Grundprinzip
.----------------------------------------.
| .----------------. .------------. | Eine Inkarnation einer Operation ist eine
| | Operation |<---( Daten ) | Verbindung der Operation mit Daten, die
| '----------------' '------------' | dann ausgefuehrt werden kann.
'----------------------------------------'
|
V
\ /
- Interaktion -
/ \
|
V
Ergebnis

Motivation ⃗²

JavaScript -Programme laufen „überall“, da für alle populären Betriebssysteme Web-Browser mit JavaScript  verfügbar sind.

Laut der folgenden Quelle ist JavaScript die beliebteste  und die meistgenutzte  Programmiersprache.

Zitat von 2017

www.heise.de/developer/meldung/Studie-Die-Mehrheit-der-deutschen-Entwickler-fuehlt-sich-unterbezahlt-3661355.html?seite=all

2017-03-22

"JavaScript ist [so]wohl bei den meistgenutzten als auch bei den beliebtesten Programmiersprachen vorne."
Zitat von 2019
www.heise.de/developer/meldung/Studie-Fast-alle-Entwickler-koennen-JavaScript-4295228.html?seite=all
"Der große Gewinner der Umfrage ist die Programmiersprache JavaScript, die im Jahr 2018 laut den Ergebnissen die Programmiersprache war, die die meisten Entwickler beherrschten. JavaScript stößt damit Java vom Thron und verdrängt sie auf Platz 2."
„JavaScript ist die am weitesten verbreitete Programmiersprache des Jahres 2018“
Zitat von 2020
www.heise.de/news/Studie-Entwickler-programmieren-in-der-Freizeit-weiter-4782219.html?seite=all
„Laut der vierten Ausgabe der jährlich neu aufgelegten Studie "State of the Developer Ecosystem " ist Java  weiterhin die beliebteste Programmiersprache unter Befragten. JavaScript  ist allerdings die beruflich meistverwendete Sprache (knapp vor Java  und Python ).“

Laut der folgenden Quelle ist JavaScript  die einzige Programmiersprache  die von allen  populären Web-Anbieter eingesetzt wird.

URI-Fragment
en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites

Bei einer Popularitätsanalyse von Red Monk  steht JavaScript  auf Platz 1.

Die Bedeutung des Wortes „JavaScript “ ⃗³

JavaScript  ist ein Warenzeichen von Oracle, das von Mozilla  mit Erlaubnis von Oracle  verwendet wird, um die Skriptsprache von Mozilla Firefox  zu bezeichnen. Die Skriptsprachen anderer Hersteller durften von diesen im allgemeinen nicht „JavaScript “ genannt werden. Inzwischen ist genau das aber weitverbreitet, und die enge Bedeutung von JavaScript  als Warenzeichen verwässert.

Man kann heute pragmatisch sagen, daß mit dem Begriff JavaScript  heute die Sprachen gemeint sind, die sich selber so nennen, und die starke Ähnlichkeit mit der Skriptsprache von Mozilla Firefox  haben und weitgehend der aktuellen ECMAScript -Norm entsprechen.

Englische Aussprache
Mozilla Firefox moʊˈzɪlə ˈfaɪɚfɑks

ECMAScript  ⃗³

„Netscapes JavaScript  ist eine Übermenge der Standardskriptsprache ECMA-262  Ausgabe 3 (ECMAScript ), die sich von dem veröffentlichten Standard nur geringfügig unterscheidet.“ (“Netscape's JavaScript is a superset of the ECMA-262 Edition 3 (ECMAScript) standard scripting language, with only mild differences from the published standard.”) — http://developer.mozilla.org/en-US/docs/Web/JavaScript/About_JavaScript (2014-06)

Es erwies sich als unpraktisch den Kurs an „JavaScript “ auszurichten, da die Dokumentation von JavaScript  (im Sinne der Sprache von Firefox ) unzureichend ist, und die Bedeutung von „JavaScript “ im Umbruch begriffen ist und verwässert wird. Daher behandelt dieser Kurs nun ECMAScript an Hand der Firefox-Implementation namens JavaScript.

Man kann davon ausgehen, daß ECMAScript  das ist, was „umgangssprachlich“ mit „JavaScript “ gemeint ist. Deswegen erfüllt die Behandlung von ECMAScript  die Erwartungen einer Person, die „JavaScript “ erlernen will.

Die ECMA-Skript-Spezifikation als PDF-Datei
www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf

Erlernbarkeit ⃗³

JavaScript  ist einfacher zu erlernen als viele andere Sprachen wie Java  oder C++, doch sollte man nicht unterschätzen, daß das Programmieren letztendlich eine anspruchsvolle Tätigkeit ist – egal, wie einfach die dafür verwendete Sprache ist. Das Erlernen der Grundlagen des Programmierens bereitet immer Mühe und Schwierigkeiten, egal ob man eine einfache Sprache wie Python  oder JavaScript  oder eine schwierige Sprache wie C++  verwendet. Da Dozenten von C++ -Kursen in ihren Kursen C++  oft vereinfachen (etwa, indem sie nur die einfachen Teile behandeln), ist ein JavaScript -Kurs für Anfänger nicht unbedingt einfacher als ein C++ -Kurs. Jedoch ist es einfacher dann nach Ende des Kurses bestimmte Aufgaben mit JavaScript  zu erledigen als mit C++.

Begriffe ⃗³

„Web-App“

Eine „Web-App “ ist ein Programm, dessen Benutzeroberfläche mit HTML  gestaltet wurde. Sie verwendet einen Web-Browser  zur Anzeige dieser Benutzeroberfläche.

„Single-Page-Webanwendung“

Eine „Single-Page-Webanwendung “ ist eine Web-App, die aus einer einzigen HTML-Seite besteht.

AJAX 

AJAX  ist eine Technik, die es einer Webseite erlaubt, Informationen von einem Webserver abrufen zu können. Nach Ansicht einiger Experten hat das Aufkommen von AJAX in den nuller Jahren die Verbreitung von JavaScript  im professionellen Bereich stark gefördert. Der Begriff „AJAX“ wurde 2005 erstmals verwendet, die Technik ist aber schon älter.

AJAX ist ein Akronym für “Asynchronous JavaScript and XML”.

[ˈeidʒæks]

jQuery (2006/2007)

Eine Bibliothek, die Inkompatibilitäten verschiedener Browser überbrückt, ohne dabei deren Bestandteile zu verändern (wie wohl zuvor bei Prototype ).

Node.js 

Node.js  erlaubt es, JavaScript -Programme ohne Web-Browser laufen zu lassen. Damit können auch JavaScript -Programme für Web-Server geschrieben werden, so daß JavaScript -Programmierer ihre Kenntnisse jetzt nicht mehr nur im Web-Browser nutzen können und weniger verschiedene Programmiersprachen erlernen müssen, wenn sie auch Server-Software schreiben wollen.

npm

npm  ist ist der Paketmanager für Node.js.

SpiderMonkey

SpiderMonkey  ist die JavaScript-Implementation, die von Mozilla Firefox  verwendet wird.

jsshell

jsshell  erlaubt es JavaScript  mit unter der Konsole (ohne Browser) auszuführen. Es verwendet intern dazu SpiderMonkey.

Electron 

Electron  erlaubt es, Web-Apps als alleinstehende Programme, die ohne separaten Web-Browser laufen, zu verpacken.

Windows Scripting Host 

Dieser Teil von Windows  erlaubt es, Skripte für Windows  oder verschiedene Programme in einer speziellen Microsoft -Variante von JavaScript  zu schreiben.

React

ursprünglich von Facebook entwickelte JavaScript -Programmbibliothek, die 2019 populärer als Angular werden soll. (“virtual DOM” double buffering wie curses)

Unity 

erlaubt Spiele-Programmierung mit JavaScript.

Ionic 

“The bulk of an Ionic app will be written in HTML, Javascript, and Css. Eager developers might also dig down into the native layer with custom Cordova plugins or native code, but it's not necessary to get a great app. Ionic also uses AngularJS for a lot of the core functionality of the framework. ” (Stand 2018)

Xamarin

Xamarin supplies add-ins to Microsoft Visual Studio that allows developers to build Android, iOS, and Windows apps within the IDE using code completion and IntelliSense in C#.

Software für alleinstehende Web-Apps ⃗³

Adobe AIR

The Adobe AIR runtime enables developers to use HTML, JavaScript, Adobe Flash software, and ActionScript to build web applications

Flutter 

Flutter  erlaubt es, Web-Apps als alleinstehende Programme, die ohne separaten Web-Browser laufen, zu verpacken.

Apache Cordova (ehemals „PhoneGap“)

Apache Cordova  erlaubt es, Web-Apps als alleinstehende Programme, die ohne separaten Web-Browser laufen, zu verpacken.

Web-Quellen *

Die ECMA-Skript-Spezifikation als PDF-Datei
www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf
Quelle zu JavaScript 
http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
Informationen zur Verbreitung verschiedener Web-Browser
http://fc.webmasterpro.de/global/global-part.php
Verbundene Implementation
babeljs.io
Stilrichtlinien
https://github.com/airbnb/javascript
http://standardjs.com/rules.html
https://google.github.io/styleguide/jsguide.html
Stilprüfung
https://eslint.org/demo/

SpiderMonkey  *

Das erste Program, welches JavaScript  verarbeiten konnte, wurde SpiderMonkey  getauft und ist in den Browsern Netscape Navigator  und Mozilla Firefox  enthalten.

JavaScript -ähnliche Sprachen *

Die Skriptsprachen anderer Hersteller, wie etwa Microsofts JScript, sind aber oft JavaScript -ähnlich, so daß vieles in diesem Kurs Gelernte auch auf sie übertragen werden kann.

„Die Chakra -Implementation, welche im Internet Explorer  verwendet wird, ist eigentlich eine JScript -Implementation und keine JavaScript -Implementation“ (“The Chakra engine used in Internet Explorer is technically a JScript engine, rather than a JavaScript engine.”) — http://developer.mozilla.org/en-US/docs/Web/JavaScript/About_JavaScript (2014-06)

Es scheint derzeit aber von Oracle  geduldet zu werden, daß die Bezeichnung „JavaScript “ von Dritten relativ frei verwendet wird. So bezeichnet Microsoft  selber Chakra  als “JavaScript engine ”.

Browserweichen *

Dieser Kurs verzichtet bewußt auf die vergleichende Behandlung verschiedener näherungsweiser Implementationen von ECMAScript  („Browserweichen“), da solche Vergleiche schnell veralten und das Lernen erschweren. Würde man dieses behandeln, so würde man nämlich eigentlich mehrere verschiedene  Programmiersprachen gleichzeitig  behandeln. (Dies wäre ähnlich als würde man jemandem, der Italienisch lernen will, auch gleich noch „die ähnlichen Sprachen“ Französisch und Spanisch beibringen wollen. Es ist zwar tatsächlich nützlich, diese Sprachen ebenfalls noch zu kennen, aber das Lernen würde dadurch insgesamt schwieriger werden.)

Es kann jedoch passieren, daß ein Leser sich einmal mit diesen anderen näherungsweisen Implementation von ECMAScript  beschäftigen muß. Das wird dann aber dadurch erleichtert, daß er zunächst erst einmal eine  Sprache gut erlernt. Daher konzentriert sich dieser Kurs bewußt auf eine einzige  spezielle Programmiersprache: JavaScript in der neuesten Version, nicht: ältere Versionen von JavaScript, nicht: ECMAScript, nicht: JScript, nicht: CoffeeScript, nicht: Java, nicht: C++  u.s.w.

Programme und Skripte *

Trotz des Namens „ECMAScript “ ist ECMAScript  eine Programmiersprache, wie auch die folgenden Zitate aus der offiziellen Norm es besagen.

ECMAScript 2016, Introduction
ECMAScript has grown to be one of the world's most widely used general purpose programming languages. It is best known as the language embedded in web browsers but has also been widely adopted for server and embedded applications.
ECMAScript 2016, 4 Overview
ECMAScript is an object‑oriented programming language
ECMAScript 2016, 4 Overview
ECMAScript was originally designed to be used as a scripting language, but has become widely used as a general purpose programming language.

Entsprechend spricht man auch von „ECMAScript -Programmen“ (und nicht immer nur von „Skripten“), wie auch die folgenden Zitate aus der offiziellen Norm es zeigen.

ECMAScript 2016, 4 Overview
functions that can be called from an ECMAScript program.
ECMAScript 2016, 4.2.2 The Strict Variant of ECMAScript
A complete ECMAScript program may be composed of both strict mode and non‑strict mode ECMAScript source text units.

Ein Programm besteht nach dem letzten Zitat aus mehreren „Quelltexteinheiten“.

Daneben kann ECMAScript  auch  als Skriptsprache eingesetzt werden (also, um vorhandene Programme zu steuern), und es gibt in ECMAScript  tatsächlich auch  Skripte!

Empfehlenswerte Literatur ⃗

Es ist zunächst nicht nötig, sich zusätzlich zu diesem Kurs auch noch ein Buch zu kaufen. Ein Buch kann aber nach  dem Ende dieses Kurses dabei helfen, die erworbenen Kenntnisse auszubauen.

auf deutsch:

auf englisch:

Empfehlungen von Kursteilnehmern ⃗

Diese Empfehlungen stammen von Teilnehmern bisheriger Kurse.

2014-06

Zitate *

Aussprachehinweise
diktat dɪkˈtɑːt (h)

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722767 stefan_ram:722767 Einige Erklärungen zur JavaScript-Programmierung Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722767, slrprddef722767, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/erklaerungen_javascript