Javascript Javascript wurde 1995 in der Version 1.0 von der Firma Netscape für den Navigator 2.0 unter der Bezeichnung LiveScript entwickelt, um den HTML-Seiten mehr Interaktivität zu gewähren. Gleichzeitig entwickelte die Firma Sun die Programmiersprache Java, welche stark an C und objektorientiertes C++ angelehnt ist. Netscape paßte LiveScript in Zusammenarbeit mit der Firma Sun an Java an und benannte sein Produkt JavaScript. 1996 wurde im nachfolgenden Navigator 3.0 die Version 1.1 von JavaScript eingebunden. Der ungefähr zur selben Zeit erschienene Internet Explorer von Microsoft verstand ebenfalls JavaScript. Die Version 1.2 der Sprache wurde mit dem Communicator 4 veröffentlicht und wird auch vom IE ab Version 4 unterstützt. Die Version 1.3 von Javascript wird von den aktuellen Browsern ab der Version 5 (bzw. 4.6 Netscape) unterstützt. JavaScript ist trotz des Konkurrenzproduktes JScript der Firma Microsoft Standard im Internet. 2002 erschien die Version 1.5 von JavaScript. Diese Version implementiert erstmals das DOM Level 1 (Document Object Model 1.0), ein Schema für Programmiersprachen, welches beschreibt, wie auf die Elemente von HTML- und XML-basierten Dokumenten zugegriffen werden kann. Die aktuelle Version von JavaScript ist 1.7. Der Internet Explorer unterstützt DOM-gerechtes JavaScript ab der Version 5.x, Netscape seit Version 6.x, Mozilla seit 0.6. JavaScript und Java sind einander ähnlich. Beide sind plattformunabhängige, objektorientierte prozedurale Sprachen und werden vorwiegend für das INTERNET verwendet. Allerdings unterscheiden sich JAVA und JavaScript in vielen Punkten deutlich voneinander: JavaScript wird direkt in den HTML-Code geschrieben. Für Java benötigt man das Java Development Kit (JDK). Java wird compiliert, während JavaScript interpretiert wird. Javascript ist nur in einem Webbrowser lauffähig. JavaScript ist wesentlich einfacher konzipiert als Java (z.B.: Variablen werden pauschal definiert, unabhängig davon ob es sich beim Datentyp um eine Zahl, Zeichen oder Boolsche Variable handelt) Auf dieser Website wird nur auf clientseitiges Javascript eingegangen. Die JavaScript-Programme werden beim Darstellen eines HTML-Dokumentes beim Internet-User ausgeführt. Serverseitiges JavaScript, welches etwa der Auswertung von Benutzeranfragen dient oder Datenbankabfragen ermöglicht, wird hier nicht besprochen. Allgemeine Informationen zur Programmierung Damit ein Computer automatisch die Arbeitsschritte ausführt, um eine gestellte Aufgabe zu lösen, müssen diese zunächst einmal beschrieben werden. Ein Algorithmus ist eine eindeutige allgemeine Beschreibung eines endlichen Verfahrens zur Lösung einer Vielzahl von Problemen gleicher Art. Das Programmieren ist das Schreiben von schrittweisen Anweisungen (Algorithmus) in einer für einen Computer verständlichen Programmiersprache, die dem Computer mitteilen, was er zu tun hat . Die Menge von Anweisungen für den Computer nennt man den Quellcode eines Programms. Es gibt viele Programmiersprachen, die alle einem bestimmten Zweck dienen. 1. Generation Grundsätzlich versteht der Computer nur eine Sprache, den aus den Symbolen 0 und 1 bestehende Binärcode (0 = Strom aus, 1 = Strom ein). Diese Sprache wird als Maschinensprache bezeichnet (Ende der 40er Jahre). JavaScript 1 t.a.2006 Nachteil: Eingabefehler und Zeitfaktor 2. Generation Assemblersprachen: erleichtern das Programmieren durch Verwendung von kurzen und prägnanten Befehlen, die bestimmte Anweisungen (Mnemonics) der Maschinensprache repräsentieren (z.B.:mov, add, jmp). Da der Computer diese Anweisungen weder lesen noch umsetzen kann, sind spezielle Programme, die die Assemblersprache in Maschinensprache übersetzen notwendig. Diese Programme heißen Assembler. Vorteil: leichter zu lesen und zu schreiben als Maschinensprache Nachteile: langsam, schlechte Portierfähigkeit (Übertragung auf andere umfangreich, hardwareabhängig, sehr kompliziert und langweilig zu programmieren Computer), 3. Generation Prozedurale Programmiersprachen: sind heute am weitesten verbreitet und unabhängig vom Computersystem (Portierbarkeit). Die Bezeichnung "prozedural" weist auf den modularen Aufbau der Programme in Prozeduren und Funktionen hin. Der Befehlssatz dieser Sprachen ist der menschlichen Sprache und der Denkweise des Programmierers angenähert (z.B.: Write('Kosten='); Readln(euro);). Da der Computer diese Anweisungen weder lesen noch umsetzen kann, sind spezielle Programme, die diese Programmiersprachen in Maschinensprache übersetzen, notwendig. Diese Übersetzer (Interpreter oder Compiler) müssen an das jeweilige Computersystem angepasst werden. ZEIT SPRACHE BEDEUTUNG ZWECK 1957 FORTRAN formula translator mathematische Berechnungen 1960 COBOL common language Geschäftsdaten 1962 BASIC beginner's all purpose für Anfänger symbolic instruction code 1965 PL/I programming language I business-oriented für technischwissenschaftliche Anwendungen Pascal für Anfänger, strukturierter als BASIC 1973 C Betriebssysteme: Windows 95/98/NT/2000, LINUX, UNIX; greift auf alle Bereiche eines Computers zu Anfang der Neunziger C++ objektorientierte Fortentwicklung von C 1995 JAVA objektorientierte Fortentwicklung von C 1971 Vorteile: schnelleres Schreiben der Programme, leichter erlernbar, Schutz des PCs vor Beschädigungen (ausgenommen C),einfacher zu lesen, portierbar JavaScript 2 t.a.2006 Nachteile: komplexere, längere und langsamere Programme; man kann nicht auf alle Bereiche des Computers zugreifen 4. Generation a. Nichtprozedurale Programmiersprachen: es wird nicht mehr festgelegt, wie ein Problem gelöst wird, sondern was das Programm leisten soll. Nichtprozedurale Programmiersprachen werden z.B. für Datenbankprogramme und Tabellenkalkulationen verwendet (z.B.: SQL (Structured Query Language; dBASE, FileMaker, FoxPro, Access, etc..) b. Manche an sich prozedurale Programme erlauben durch das Anbieten von grafischen Benutzeroberflächen (Fenster, Bildlaufleisten, Werkzeugleisten, etc.) , die Konzentration des Programmieres zunächst auf das, was das Programm leisten soll, und erst sekundär auf die Realisierung des Quellcodes und die Frage, wie ein Problem gelöst wird, zu lenken: RAD-Sprachen (Rapid Application Development) basieren auf prozeduralen Sprachen (z.B.: Visual Basic (von BASIC abgeleitet), DELPHI (von Pascal abgeleitet), C++ Builder (von C++ abgeleitet)). Vorteile: schnelleres Schreiben der Programme; ansprechende und einfachere Gestaltung durch grafische Benutzeroberflächen Nachteile: Programme sind nicht unbedingt portierbar (z.B.: Visual Basic); größere und langsamere Programme 5. Generation Künstliche Intelligenz: Programme versuchen die menschliche Intelligenz (z.B.: Lernfähigkeit) durch entsprechende Computer nachzuvollziehen. Die natürliche Sprache des Menschen fließt in die Programmierung mit ein. Das Einsatzgebiet solcher Programme liegt in der Wissenschaft zur Beschreibung von Schlussfolgerungen aus Forschungsergebnissen und im Bereich der Spracherkennung. Beispiele für ein KI-Sprachen sind LISP (list processing language) und PROLOG (programming in logic) Interpreter übersetzen den Quellcode zeilenweise in Maschinensprache, der dann Befehl für Befehl vom Prozessor ausgeführt wird. Bei jedem Programmstart wird das Programm neu interpretiert. Solche Programme sind langsamer. BASIC, Q-BASIC, LOGO, JAVASCRIPT Compiler übersetzen den Quellcode vollständig in Maschinensprache bevor der Computer die Anweisungen ausführt. Durch das Compilieren wird eine eigenständige Programmdatei erstellt. Das Compilieren ermöglicht auch aine Optimierung der Programmgröße und -geschwindigkeit. PASCAL, C++, DELPHI , JAVA Die Programmierung von Javascript erfolgt als normaler Text im HTML-Code einer Seite. Dieser kann grundsätzlich mit jedem beliebigen Editor (Aufpassen mit FrontPage Express, Adobe GoLive: Verändern den Quellcode) eingefügt werden. Browser besitzen einen eingebauten JavaScript-Interpreter, der die JavaScriptBefehle beim Lesen ausführt. Vorgangsweise bei der Programmierung mit JavaScript: 1) Starte einen Editor! 2) Öffne deinen Browser ein zweites Mal ( Ein Browserfenster wird zum Betrachten der Tutorial-Site gebraucht)! 3) Schreibe das Script mit dem Editor und speichere es als HTM-file 4) Überprüfe es mit deinem Browser! JavaScript 3 t.a.2006