Aufgaben vom 20.2.2003 (Woche 5)

Bearbeitungszeit: bis Mittwoch, 26. Februar 2003, 16:30 Uhr

1. Einarbeiten in die Konzepte objektorientierter Programmiersprachen

Die Programmiersprachen des Internets

Die Programmiersprachen, die bei der Internet-Programmierung verwendet werden, sind zahlreich, und es kommen ständig neue Entwicklungen dazu, die neue Aspekte abdecken. Als Teilnehmerinnen und Teilnehmer eines Kurses über Internet-Programmiersprachen sind Sie daher mit der Aufgabe konfrontiert, gleich mehrere Sprachen auf einmal zu lernen - obwohl Sie vielleicht noch gar keine Programmiererfahrung mitbringen. Erschwerend kommt hinzu, dass die Programmiersprachen des Internets - anders als etwa Pascal - nicht in erster Linie für didaktische Zwecke konzipiert wurden, sondern professionellen Ansprüchen genügen müssen und daher recht komplex sind.

Bei allen Unterschieden in der Anwendung sind aber viele Grundkonzepte der Programmierung in den meisten Sprachen sehr ähnlich verwirklicht. Dies trifft insbesondere auf die Sprachen Java, JavaScript, Perl und PHP zu, die ihre Wurzeln alle bei der Mutter aller modernen Programmiersprachen - nämlich C - haben. Es ist daher sinnvoller, beim Erlernen dieser Sprachen parallel vorwärts zu schreiten, und dabei neue Konzepte kennen zu lernen, als Sprache für Sprache immer wieder die gleichen Ideen an neuen Beispielen durchzukauen.

Wir werden uns in der nächsten Zeit vor allem mit den Sprachen JavaScript und PHP beschäftigen. Gelegentlich werde ich auch Java und Perl erwähnen, wir werden aber keine Java- oder Perl-Programm schreiben.

Eine kurze Vorstellung dieser vier Sprachen ist angebracht:
Java

ist eine Allzweck-Programmiersprache, die gegenüber anderen Allzweck-Programmiersprachen den Vorteil hat, eine plattformunabhängige grafische Oberfläche zu bieten. Programme mit Fenstern, Menus usw. müssen in Java nicht für jedes Betriebssystem umgeschrieben werden, sondern können unverändert von einem Betriebssystem auf ein anderes portiert werden. Das spart Entwicklungszeit und (für Softwarefirmen) Kosten. Java-Programme werden vom Compiler auch nicht in Maschinensprache übersetzt, sondern in einen auf allen Betriebssystemen gleichen so genannten Bytecode, der von einem Interpreter-Programm, der Virtual Machine, ausgeführt wird. Virtual Machine steht für ein Programm, das einen Rechner (die Machine) emuliert, der nirgends wirklich existiert (daher virtual).

Java ist zu einer Internet-Sprache geworden, als Netscape 1996 die Java Virtual Machine in seinen Browser aufnahm. Es gab zwar bereits vor Netscape den ersten Java-fähigen Browser namens HotJava, doch erst mit Netscape wurde die Technologie allgemein bekannt. Die Möglichkeiten, die daraus entstanden, Programme mit grafischer Oberfläche in einen Browser aufzunehmen, waren so weitreichend, dass es sich auch Microsoft nicht leisten konnte, das vom Konkurrenten Sun entwickelte Produkt in seinem Browser einfach zu ignorieren. Allerdings hat Microsoft mit VirtualJ++ eine auf Java basierende Allzweck-Programmiersprache herausgebracht, welche speziell auf die Kooperation mit Windows-Betriebssystemen ausgerichtet ist. Die Plattformunabhängigkeit geht dabei freilich verloren.

JavaScript

ist eine Sprache, die speziell darauf eingerichtet ist, mit den HTML- und CSS-Elementen einer Seite zu kooperieren und - als Programmiersprache - deren Eigenschaften zu beliebiger Zeit zu bestimmen oder dynamisch zu verändern. Wenn von Dynamic HTML oder kurz DHTML gesprochen wird, ist damit in der Regel JavaScript gemeint - obwohl es auch andere Sprachen wie z.B. JScript von Microsoft gibt, die Ähnliches ermöglichen.

JavaScript ist eine Client-seitige Script-Sprache, d.h. sie wird auf dem Rechner ausgeführt, auf dem auch der Browser läft, und sie wird nicht kompiliert, sondern von einem Interpreter (der im Browser integriert ist) ausgeführt. Aus Sicherheitsgründen kann JavaScript viele Dinge nicht tun (z.B. auf die Harddisk des Rechners zugreifen, auf dem es ausgeführt wird); und es besitzt im Gegensatz zu Java auch keine eigenen grafischen Befehle. Durch das Laden von Grafiken und die Manipulation von <div>...</div>-Bereichen einer Webseite lassen sich aber sogar einfache Animationen erzeugen.

PHP

ist eine Server-seitige Scriptsprache. Wenn ein Server von einem Client eine Anfrage nach einem Dokument bekommt, welches PHP-Code enthält, interpretiert der Server diesen Code und leitet dessen Ausgabe an den Client weiter. Gegenüber einer Client-seitigen Script-Sprache wie JavaScript hat PHP daher den Vorteil, dass es auf Anfragen hin Daten, die auf dem Server gespeichert sind, massgeschneidert an den Client weitergeben kann, während ein JavaScript-Programm erst auf den Anwender reagieren kann, wenn es schon geladen wurde (es kann keine Daten vom Server mitbringen). Andererseits kann ein PHP-Programm nicht auf Eingaben des Benutzers reagieren, ohne dass diese zuerst an den Server geschickt werden (der als Reaktion eine neue Webseite an den Client neu schicken muss). Interaktive PHP-Programme wären also ausgesprochen schwerfällig.

Das Überzeugende an PHP ist die Direktheit und Natürlichkeit, mit der sich PHP in HTML-Code, den Webserver und in eine Unzahl von gängigen Datenbankprogrammen integriert. Obwohl sich PHP im Gegensatz zu JavaScript auch als Allzweck-Programmiersprache eignen würde, spürt man ständig, dass diese Sprache wirklich genau im Hinblick auf das Internet hin entwickelt wurde.
Perl

ist eine Allzweck-Script-Sprache, die vor allem wegen ihrer besonderen Eignung zur Verarbeitung von Textmaterial und zur Ausgabe von Tabellen für die Programmierung von Server-seitigen Skripten für Internet-Anwendungen sehr beliebt war (und auch noch ist). Das Bestechende an Perl liegt darin, wie sehr die Sprache Aufgaben vereinfacht, die in anderen Sprachen nur in stundenlanger Arbeit zu lösen wären. Allerdings braucht es auch viel Erfahrung, um die Stärken von Perl voll ausspielen zu können. Als Sprache für Einsteiger ist Perl daher nicht unbedingt geeignet.

Ihre Aufgabe

Arbeiten Sie sich anhand des Dokuments Variablen, Zuweisungen, Funktionen, Objekte und Klassen in die Grundlagen der objektorientierten Programmierung ein. Bringen Sie die beiden Beispielprogramme (Bodymass-Index) und die Flächenberechnungen in JavaScript und in PHP zum laufen. Stellen Sie auf die .html- und die .php-Datei einen .phps-Link her (wie in Woche 1), so dass man die Quelltexte ebenfalls auf dem Browser ansehen kann.

2. Selbst definierte Objekte

Denken Sie sich anhand der Beispiele von Aufgabe 1 eine eigene Klasse aus, die irgend eine ganz einfache Methode zur Berechnung von irgend etwas ganz banalem anbietet. Ein Beispiel, das sie aber nicht übernehmen sollen (Sie sollen selbst etwas erfinden!) könnte die Berechnung des Durchschnitts von 3 Zahlen sein. (Nein, auch der Durchschnitt von 4 Zahlen ist keine gute Idee;-) Entwickeln Sie so viel Fantasie, dass Ihre Klasse sicher anders ist als die der anderen Teilnehmerinnen und Teilnehmer.

Stellen wiederum auch die Quellcodes als .phps-Links zur Verfügung!

Valid XHTML 1.1! Valid CSS!