Programmierung
Inhaltsverzeichnis |
Seit ich vor 4 Jahren damit angefangen habe "Hallo Welt" im Browser ausgeben zu lassen, ist bei mir das Programmier-Fieber wieder entbrannt. Da mir Plain HTML einfach zu wenig war ;-) bin ich schnell auf PHP gestossen. Damit lassen sich Webseiten wunderbar dynamisch halten. Im folgenden Wiki soll es v.a. um PHP gehen, aber auch andere "Sprachen" wie HTML, JS, CSS und Java werden vorkommen.
Die Faszination für Computer begann bei mir sehr früh. Ich war etwa 7 Jahre alt als mein Vater sich eine AT-Kiste kaufte (640KB RAM, 12MB HD, 4Mhz Takt und EGA-Grafik!!). Kostete mit Mitarbeiterrabatt mehr als heute eine Hammer-Hardcore-Gaming-Höllen-Maschine, war so gross wie drei Computer und wog gegen 40Kg.
Zu DOS-Zeiten kriegte man bestimmte Programme nur zum Laufen, wenn man mit config.sys und autoexec.bat umgehen konnte. V.a. Spiele waren solche Kandidaten. Das Problem war, dass man bei der Entwicklung der ersten PC Systeme gedacht hat, dass niemals ein Programm mehr als 640KB Speicher benötigen würde. Das heisst, dass sich damals das Betriebssystem (meist MS-Dos) und die Anwendungen 640KB teilen mussten!
Als dann die ersten Programme aufkamen, die zusammen mit dem Betriebssystem mehr als diese Menge an Speicher brauchten, wurde der Speicher aufgeteilt in einen unteren und einen oberen Bereich. Der untere Bereich war genau die 640KB gross, der Rest des Speichers war im oberen Bereich. Die meisten Spiele scherten sich einen Dreck darum wieviel Speicher gesamthaft vorhanden war, sondern forderten immer einen minimalen Anteil vom unteren Bereich als Voraussetzung zum Laufen an. Ich kann mich an mein damaliges Lieblingsspiel erinnern, das unter 620KB freien Speicher im unteren Bereich einfach nicht gelaufen ist. Dann kamen die beiden obengenannten Dateien zum Zuge, wo man mit Hilfe von Systembefehlen bestimmte Teile (z.B. gewisse Treiber) in den oberen Bereich zwingen konnte. Man konnte aber nicht einfach alles nach oben schieben, da bestimmte Teile des Betriebssystems unteren Speicher voraussetzten. Mein "Rekord" mit der letzten DOS Version, die ich verwendete (IBM DOS 6.0) lag bei 633KB freiem unteren Speicher. Das heisst, dass ich das ganze OS bis auf 7KB in den oberen Speicherbereich schreiben konnte.
Damals gab es noch Basic und Logo und die wunderbaren Batchfiles auf der MS-Dose.
SUB CalcCombinations
SHARED selections, matches, firstentry, A(), totcombinations
LOCAL x, y, z, count, countcombinations
firstentry=0
DO
IF firstentry = 0 THEN
x = 0: y = matches: firstentry = 1:
ERASE A: countcombinations = 0:
ELSE
FOR y = 1 TO matches
x = A(matches+1-y)
IF x<>selections+1-y THEN EXIT FOR
NEXT y
END IF
FOR z = 1 TO y
A(matches+z-y) = x + z
NEXT z
INCR countcombinations
FOR count=1 TO matches: PRINT A(count);: NEXT count
PRINT
LOOP UNTIL countcombinations=totcombinations
END SUB
FORWARD 100 ; draws a square with sides 100 units long
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
Dann kam schon bald OS/2 und Windows 3.1 auf den Markt. OS/2 war im Gegensatz zu Windows 3.1 ein echtes Betriebssystem mit dem ersten brauchbaren Desktop, den ich gesehen habe. Windows 3.1 war eigentlich zur die grafische Oberfläche für das untenliegende DOS! Ab dann war es bei mir lange still mit Konsolen BS und die Fensterzeit begann. Über Win95, Win98SE kam ich zu XP und finde es ganz ehrlich das beste Windows ever (zumindest mit allen Service Packs). Bei Linux bin ich ein Ubuntu-Fan v.a. wegen der guten Hardwareerkennung. Zur Konsole kam ich wieder zurück, als ich mir eine Netzwerkfestplatte mit einem Embedded Linux gekauft habe. Da mir die Möglichkeiten der Webkonfiguration dieses Teils einfach nicht ausreichten fand ich heraus, dass sich dieses Linux durch ein paar Eingriffe "öffnen" liess (Bootstrap lässt grüssen). Damit ist es möglich Pakete von diversen Open Source Anwendungen zu installieren (Samba, vsftpd, OpenSSH, Apache, PHP etc ppt). Die Krönung des ganzen ist, dass es mit dieser Platte möglich ist ein Debian in einem "Käfig" laufen zu lassen und damit hat man Zugriff auf apt und alle Pakete für Debian. Ach, ich liebe Open Source...
Seitdem ist PHP immer mehr zu meiner Lieblingssprache geworden. PHP ist für eine Parser Sprache ziemlich schnell. Doch dies ist genau der Pferdefuss: Es ist eine geparste Sprache d.h. der Quellcode des PHP Scripts wird beim Aufruf durch den Browser (Client) auf dem Server erst durch einen Interpreter geschickt. Dieser Interpreter führt alle Anweisungen im Quellcode aus, schickt Befehle und Anweisungen an die Hardware und erzeugt dann die Ausgabe, die via HTTP Server (Apache, IIS ...) an den Client schickt. "Echte" Programmiersprachen (z.B. C++, Java ...) kommen ohne diese Zwischenstation aus.
Bei C, C++ und C# wird aus dem Quellcode des Programmieres durch einen Compiler direkt Maschinencode erzeugt. Darunter versteht man die Form des Codes (Befehle), die der Prozessor eines Computers direkt interpretieren kann. Der entscheidende Nachteil einer solchen Compiler-Lösung ist, dass der Maschinencode, der kompilierte Quellcode also, nicht auf andere Plattformen portabel ist. Für jede andere Plattform (z.B. Unix, Linux, Windows oder Mac OS) wird ein entsprechender Compiler benötigt. Auch läuft der gleiche Maschinencode nicht auf einem x86- und PowerPC-Prozessor ohne Neukompilierung mit einem entsprechenden Compiler.
Bei Java wurde ein anderer Weg gegangen. Es wurde sehr viel Gewicht auf eine einfache Portierbarkeit des Quellcodes gelegt. Auch über Plattformgrenzen hinweg. Diese Bedingung konnte nur mit einem "Interpreter" erreicht werden. Alle ernsthaften Java Cracks werden mich für diese Aussage steinigen, aber für mich ist das Java Runtime Enviroment (JRE) ein Interpreter. Da eine direktes Ausführen von Quellcode in einem Interpreter nicht mit Performance vereinbar ist, wurde bei Java ein Mittelweg gegangen: Der Quellcode des Programmierers wird zuerst durch den Javacompiler (im JDK enthalten) in Bytecode übersetzt. Erst dieser Bytecode kommt dann im Interpreter (JRE) zur Ausführung. Wenn man so will ist der Bytecode bei Java änlich wie der Maschinencode von C & Co. Die Interpreter - die Schnittstelle zur Hardware also - für die verschiedenen Plattformen stellt hier der Hersteller Sun selbst zur Verfügung. Sowohl Interpreter (JRE) als auch Compiler (JDK) sind für nahezu alle Plattformen vorhanden. Somit kann der gleiche Bytecode auf unterschiedlichsten Plattformen und Prozessor-Architekturen laufen, ohne dass irgendwelche Änderungen oder Neukompilationen stattfinden müssten.
Nun aber zurück zu PHP. "PHP ist einfach" sagen viele. Und es stimmt auch. Mit dem folgenden hat wohl so mancher angefangen ;-)
<?php echo 'Hallo Welt'; ?>
Weiter zu meinen Tipps für den Umgang mit PHP
Hier findest du meine Codeschnippels welche sich im Laufe der Zeit angesammelt haben
Alle PHP Codes
Alle JS Codes
Meine PHP-Tipps
Alles zu PHP
Anpassungen bei MediaWiki?
phpbb anpassen
PHP Referenz
Peter zum Thema HTML
Peter zum Thema CSS
Peter zum Thema Javascript
Peters Tutorials
SelfHTML
W3-Konsortium
Css4You.de
Es werden 3 von insgesamt 3 Unterkategorien in dieser Kategorie angezeigt:
Diese Kategorie enthält folgende Seite: