Vorweg ...

In der EDV-Branche ist es allgemein üblich, daß man seine IT-Skills auflistet. Das heißt, man listet auf, was man so kann, übertreibt ein wenig und verschweigt seine Schwächen. Hinzu kommt noch daß kaum ein Personal-Chef oder ein anderer Nicht-Techniker wirklich versteht, was überhaupt in solch einer Auflistung steht.

Gern würde ich auf diese Tradition verzichten und möglichst nur die Referenzen für sich sprechen lassen. Aber dann ruft mich wieder jemand an und ich muss irgendwelche Word-Dokumente herummailen, die dann eh nur darauf warten, verlegt oder gelöscht werden ...

Ganz offensichtlich sind es manche Traditionen nicht wert, daß man sie bricht. Also hier sind sie, meine Skills. Ich habe versucht, die Liste mal etwas anders zu gestalten, als sonst. Die eigentlichen Skills sind fett gekennzeichnet.

Protokolle

Das Internet ist ursprünglich aus einem militärischen Forschungsprojekt entstanden. Die Idee hinter diesem Projekt war es, eine Methode zu finden, wie man Computer miteinander vernetzen kann, so daß das Netzwerk auch dann noch funktioniert, wenn wichtige Rechner z.B. durch eine Atombombe oder ähnliche Katastrophen ausfallen. Mit dem Transport-Protokoll TCP war die Antwort gefunden. Weil TCP auf ein weiteres Protokoll aufbaut, welches IP genannt wird, nannte man dieses Protokoll auch TCP/IP (Tisipi-Aipi). Als das Forschungs-Netz nicht mehr benötigt wurde, überließ man es ein paar Studenten, und die machten daraus das Internet.

Heute kann man nicht nur durchs World Wide Web surfen, man kann auch Emails verschicken, chatten, MP3's oder Torrent-Files herunterladen und vieles mehr. All diese Dienste verwenden weitere Protokolle über die man als Internet-Profi ebenfalls Bescheid wissen sollte. Die wichtigsten sind: HTTP (Internet- Seiten), FTP (File-Transfer), SMTP, POP3, IMAP, NNTP (Email), IRC (Chaten) und natürlich DNS (Übersetzung IP- Adresse/Domäne).

Folgende Protokolle werden eher seltener verwendet. Aber als Internet Profi sollte man auch sie kennen: ICMP, Finger, das gute alte Telnet und natürlich SSH. Sollte sich jemand dazu entschließen, in meine Fußtstapfen zu treten, kann ich nur empfehlen, für die aufgelisteten Protokolle übungshalber Socket-Anwendungen zu schreiben. Natürlich gibt es eine Menge anderer Protokolle, aber mit denen hat man eher selten zu tun.

Datenbanken

Mein Spezialgebiet ist natürlich die Datenbankan- bindung. Eine Datenbank ist lapidar ausgedrückt ein Programm, welches in der Lage ist, Informationen strukturiert abzuspeichern, so das der Rechner sie später besonders schnell wiederfindet. Heutige Datenbanken können die gespeicherten Informationen auch in Verbindung zueinander bringen. Wenn das der Fall ist, spricht man von einer relationalen Datenbank. Oder man kann einzelne Datensätze in Form von Objekten verwalten, das nennt man dann objektrelational und so weiter. Letzteres hat sich bisher allerdings noch nicht wirklich durchgesetzt. Weil es im Internet primär darum geht, Informationen darzustellen, sind Datenbanken für das Internet besonders wichtig.

Um besser auf die Informationen zugreifen zu können, welche in einer Datenbank gespeichert ist, hat sich die Firma IBM in den 70er Jahren eine eigene Deklarationssprache nur für Datenbanken einfallen lassen. Diese Sprache hat sich weitgehend durchgesetzt und ist heute unter dem Namen SQL bekannt. Wenn man wie ich viel mit Datenbanken arbeitet, ist es unumgänglich, daß man SQL beherrscht. - Insider werden an dieser Stelle müde lächeln, aber für die Erstellung von guten SQL-Statements auch heute noch viel Erfahrung notwendig, da reicht ein Query-Generator, wie man ihn beispielsweise bei Access findet, natürlich nicht. So kann allein mit der Wahl der richtigen Indexierung oder SQL-Methode die Performance erheblich verbessert werden. Und sowas freut den Kunden natürlich.

Grundsätzlich ist die Wahl der Datenbank von der Art der Problemstellung abhängig. Für das Internet ist in 98 von 100 Fällen eine MySQL-Datenbank völlig ausreichend. Diese Datenbank ist im Internet in den letzten Jahren zum quasi-Standard avanciert, was sicherlich daran liegt, das diese Datenbank erstaunlich leistungsstark ist. So gibt es heute kaum noch ein Hosting-Unternehmen, welches nicht MySQL als Datenbank anbietet. Deswegen besteht für das Internet heutzutage auch kaum noch eine Nachfrage für kommerziellen Datenbanken, wie z.B. Oracle wofür ich einst zum DB-Admin ausgebildet wurde, oder den SQL-Server von Microsoft, den ich sehr gerne mag. Diese Programme sind eher was für große oder sehr komplexe Anwendungen. Ich selbst arbeite naturgemäß am liebsten mit MySQL. Inzwischen vermisse ich noch nicht mal die Stored Procedures, obwohl es Gerüchte gibt, dass auch die irgendwann einmal in MySQL implementiert werden sollen.

Screendesign

Wer HTML, CSS und ein wenig Javascript beherrscht, ist noch lange kein Programmierer. Tatsächlich macht die Umsetzung der Designvorlagen in HTML nur einen Buchteil meiner täglichen Arbeit aus. Dieser Vorgang wird allgemein Screendesign oder Publishing genannt. Gepublisht wird selbstverständlich nicht mit handelsüblichen Wysiwyg-Editor, wie Dreamweaver, Golive oder gar Frontpage, Netobject Fusion und ähnlichen Tools, sondern ausschließlich von Hand mit einem Texteditor, wie z.B. Ultraedit, wie es sich gehört. Denn nur auf diese Weise können die Vorlagen des Grafikers möglichst pixelgenau für alle gängigen Browser umgesetzt werden. Die Umsetzung einer Seite dauert auf diese Weise übrigends kaum länger. Ob ein Auftritt von Hand gepublisht wurde, oder nicht, ist natürlich ein Qualitätsmerkmal.

Früher wurden Internet-Seiten fast immer mit Hilfe von unsichtbaren Tabellen und transparenten Bildern in Form gebracht. Sowas nennt man heute Table- Design. Das hatte den Nachteil, daß die Text-Inhalte eng mit der Darstellung verbunden waren. Das bedeutet, wenn man die Darstellung ändern wollte, war eine Menge Handarbeit nötig. Aus diesem Grund ging man zum CSS-Design über, wo die Inhalte mit Hilfe von Stylesheets positioniert werden. Dummerweise werden viele CSS-Anweisungen von den unterschiedlichen Browsern immer noch unterschiedlich interpretiert. Das führt dazu, daß diese Techniken oft gemischt eingesetzt werden. Meiner Meinung nach ist es nicht so wichtig, welche Technik eingesetzt wird, solange alle großen Browser die Seiten schnell und korrent wiedergeben und der Source sauber gepublisht wurde. Als große Browser gelten alle Browser der letzten zwei Browser-Generationen, die einen Marktanteil von mehr als fünf Prozent haben.

Die meisten Internet-Auftritte sind heute mit HTML4 und CSS2 realisiert. Das Flash-Boykott von Apple hat dazu geführt, dass die Entwicklung von HTML5 und CSS4 beschleunigt wurde. Denn mit HTML5 können viele Effekte nachgebildet werden, die bisher nur mit Flash realisiert werden konnte. Das Problem ist nur, dass HTML5, wie auch CSS3 von den Browsern derzeit noch unterschiedlich interpretiert werden. Die Realisation einer Browserweiche kann aber ziemlich aufwendig sein, weshalb man gewöhnlich auf Javascript ausweicht. Die Arbeit mit Javascript oder crossbrowser Javascript (DHTML) war bisher aber ziemlich mühsam, weil man über die Eigenheiten der Browser sehr genau Bescheid wissen musste. Deshalb hat man Javascript-Bibliotheken entwickelt, welche die Arbeit erleichtern. Am bekanntesten sind derzeit sicherlich jQuery und MooTools. Ich persönlich arbeite am liebsten mit jQuery. jQuery ist wirklich cool!

Mit XHTML kann garantiert werden, daß der HTML-Quelltext wie ein XML-Dokument gelesen und bearbeitet werden kann. Das ist für Programmierer eine schöne Sache, macht aber nicht immer Sinn, zumal man ja nicht vergessen sollte, dass HTML eine sogenannte Hypertext-Sprache ist und keine Programmiersprache. Wenn die Seiten dann noch UTF8-kodiert werden, gibt's auch keine Probleme mit Sonderzeichen, aber dafür mit dem Programmierer. ;-)

Programmierung

Die eigentliche Kunst des Internet-Programmierers ist es, das statische Protokoll HTTP dynamisch zu machen. Hierzu ist nicht jede Programmiersprache geeignet, weil sie ja auf einem Web-Server laufen muss. Das bedeutet die Programmiersprache steht zwischen dem Benutzer und den Daten auf dem Webserver. Deshalb spricht man in diesem Kontext auch nicht wirklich von einer Programmiersprache, sondern vielmehr von einer Middleware. In der Regel handelt es sich um Scriptsprachen (ausgenommen Java natürlich). Am bekanntesten sind heute sicherlich Perl, PHP, Java, Phyton und das gute alte ASP(.NET). In den letzten 10 Jahren hatte ich mit fast allen bekannteren Technologien zu tun, von denen viele inzwischen schon wieder ausgestorben sind. Angefangen hatte ich einst mit iHTML und Coldfusion war auch mal ein Thema. Besonders ans Herz gewachsen ist mir PHP, da ist derzeit Version 5 aktuell und PHP6 hat sich auch schon angekündigt. Mit PHP5 kann man endlich gescheit objektorientiert arbeiten, was allerdings die wenigsten Internet-Programmierer tun. Wenn Sie mir nicht glauben, schauen Sie sich einfach mal den Quelltext von den sogenannten Open Source-Systemen an. Viele, die sich objektorientiert nennen, sind in Wahrheit halb prozedural, wie z.B. Typo3, Joomla, Wordpress, Drupal, OS-Commerce, Prestashop und sogar Contao. Glauben Sie nicht alles, was man Ihnen so weismachen möchte.

Besondere Beachtung verdient in diesem Kontext das Thema XML. Viele Technologien wie z.B. Webservices, RSS/RDF, Ajax, SVG etc. wären ohne XML undenkbar. Wäre ich ein Künstler, würde ich die Datenbank mit der Ölmalerei vergleichen, während XML mit der Acryl-Malerei verglichen werden könnte, womit Bilder sehr viel schneller gemalt werden können. Ich arbeite sehr gern mit XML, weil man damit nicht an die starren Tabellenstrukturen von Datenbanken gebunden ist. Meist verwende ich eigene Wrapper-Klassen, die den Umgang mit XML besonders komfortabel machen. Nebenbei: Ich biete auch eine eigenes CMS an, welche anstelle einer Datenbank nur mit XML-Dateien arbeitet. Tests haben bewiesen, daß diese Variante letztlich genauso performant ist. Wer hätte das vor ein paar Jahren für möglich gehalten?

Einen eigenen Absatz verdient natürlich Flash. Bis vor kurzem gab es kaum noch Browser, welche das Plugin nicht installiert haben. Aber leider ist Flash derzeit am aussterben. Schuld daran hat die Firma Apple. Das Problem ist, dass die Produkte von Apple, wie z.B. iPhone, iPad oder das iPod inzwischen sehr hohe Marktanteile haben. Diese mobilen Endgeräte könnten von der Leistung her eigentlich problemlos Flash-Applikationen ausführen. Aber weil sich Apple als Konkurrent zu Adobe sieht, wird das seit einigen Jahren aktiv von Apple unterbunden. Und weil immer mehr Internet-Nutzer Apple-Geräte einsetzen, sind die Internet-Programmierer gezwungen, adäquat zu reagieren. Das bedeutet, Wenn man weiterhin Flash einsetzen möchte, ist man gezwungen, für die Apple Mobile Devices einen eigenen Internet-Auftritt zu realisieren, oder man verzichtet ganz einfach auf Flash-Applikationen. Aus Kostengründen entscheiden sich die meisten Betreiber von Internet-Seiten für die zweite Option. Als Alternative sieht Apple den Einsatz von HTML5 und CSS3 vor, die aber derzeit noch nicht wirklich ausgereift sind. Und so hat der Kapitalismus wieder einmal mehr eine tolle und faszinierende Technologie zerstört. Ja, es sind nicht die fittesten, die überleben, es sind die korruptesten.

Betriebssysteme

Eine Internet-Seite kann auf jedem Rechner aufgerufen werden, welcher ans Internet angeschlossen ist. Im Kontext des Internets macht es also keinen Sinn, sich auf ein bestimmtes Betriebssystem zu fokussieren. Im Gegenteil, es ist ja hinlänglich bekannt, zu welchen Problemen vernetzte homogene IT-Landschaften führen können (MS). So kann man sagen, daß nur eine möglichst bunte Umgebung auch eine gesunde Umgebung ist, genau, wie im richtigen Leben auch.

Auch wenn ich viel mit Linux-Rechner zu tun habe, bin ich primär auf Windows geeicht. Das hat weniger mit meiner freien Entscheidung zu tun, als vielmehr mit der Tatsache, daß die meisten meiner Kunden mit Windows arbeiten. Auf meiner Wunschliste steht schon länger eine reine Linux- Arbeitsstation, aber das hat bisher nicht so recht geklappt. Mit Macintosh konnte ich mich bisher noch nicht so recht anfreunden, was wohl eher finanzielle Gründe hat, denn soweit ich das beurteilen kann, haben sie in den letzten Jahren durchaus bewiesen, dass sie ihr Handwerk verstehen.

Was man sonst noch wissen sollte ...

Generell realisiere ich keine Offline-Applikationen mehr, es sei denn, sie stehen im Kontext es Internets, wie z.B. die Replikation einer Online-DB oder die Realisierung einer CRM-Schnittstelle und ähnliches. Sollte es sich jedoch um eine besonders interessante Problemstellung handeln, lasse ich mich allerdings gern umstimmen. ;)
 
06/2006 jw..