Einleitung

Über diesen Blog

Erst nachdem ich den Namen “Algorithmenwerk” bestellt hatte fiel mir auf, daß man dieses Kunstwort auf zwei Weisen verstehen kann. Meine ursprüngliche Assoziation geht in Richtung “Algroithmenschmiede” und weniger in Richtung “Algorithmen-Buch”. Dahinter verbirgt sich meine Leidenschaft für die Konzepte “Herstellung” und “Mechanik”. Dieser Leidenschaft fröhne ich ebenfalls, aber nicht im Umgang mit Computern sondern im Bauen und Fliegen von ferngelenkten Hubschraubern.

Dieser Blog hat vor Allem mit Programmierung zu tun. Seit meinem 13.Lebensjahr (heute bin ich 40) bin ich von der Computerprogrammierung fasziniert. Ich habe so ziemlich alles durchgekaut,was die Welt der Programmierung so an Konzepten bereit hält. Zwei Jahre habe ich als Schüler Z80-Assembler programmiert, dann, weil es nichts anderes gab, Basic auf verschiedenen Heimcomputern verwendet. In der Oberstufe dann PASCAL gelernt - eine seht interessante Erfahrung, da hier offenbar vieles sehr sauber gelöst war. Während meines Studiums und bei meinem Job, mit dem ich dieses finanziert habe, habe ich mit C/C++ gearbeitet. Immer wieder hat es mich privat zu LISP hingezogen, sodaß ich einmal einen LISP-Interprester in Turbo-Pascal gebaut habe. Als das erste Objektorientierte Turbo-Pascal verfügbar war habe ich mich seht intensiv mit den Möglichlkeiten von OOP beschäftigt. So intensiv sogar, daß meine Begeisterung dafür schon wieder abgeebbt war, bevor die Welle erst richtig angefangen hat. Erst nach meinem Studium ist mir in der Programmiersprache Dylan das erste mal ein wirklich tragfähiges Konzept zur Objektorienterung, nämlich das Metaobject Protokoll begegnet. Schade, daß es sich bisher nicht durchgesetzt hat. Heute sehe ich das eindimensionale OOP (wie Java und Co es können) als eines von mehreren sicherlich sinnvollen Konzepten, nicht als das Einzige und schon lange nicht als das Allheilmittel. Da hat die Welt der Programmierung mehr zu bieten. Funktionale Programmierung ist zum Beispiel ein sehr elegantes Konzept, daß sich ganz gut mit OOP-Konzepten kombinieren läßt und obendrein den Quelltext knapp und klar halten kann.

Perl

Seit ein ein paar Jahren arbeite ich hauptsächlich mit Perl. Wer sich einmal sie Mühe gemacht hat, diese Sprache anständig zu lernen, wird nicht so leicht ein Werkzeug finden, das mit Perl mithalten kann. Das CPAN ist fantastisch und ohne Beispiel.

Mit Perl hatte ich anfangs meine Schwierigkeiten. Ich konnte nicht einsehen, was die Wunderliche Unterscheidung zwischen scalarem und Listenkontext sollte, wieso es einmal @x, dann aber wieder $x[1] heisst, usw. Mein Intersse für Perl war dann aber erwacht, als ich feststellte, daß Perl Closures kennt. Damit war der Damm gebrochen und meine Motivation, es in Perl bis zum Guru zu bringen flammte auf. Mehr noch, als ich feststellen konnte, daß man in Perl Currifizieren kann und sich damit die Welt der funktionalen Programmierung für den Perl-Programmier ausbreitet.

Nein, ich bin nicht ohne Kritik an Perl. Perl hat viele Schwächen; vor allem die Syntax von Perl ist für den Lernenden eine Zumutung. Die wahren Stärken von Perl liegen in seiner reichen und vollständigen Semantik und dem Softwarepool CPAN. Das erweist sich aber erst in der praktischen Programmierung und in keinem Lehrbuch.

In diesem Blog geht es vor allem um Linux, Perl und Algorithmen. Wer aufmerksam liest, wird finden, daß Perl hier nur das Transportmittel meiner Ideen und Interessen darstellt und nicht wirklich deren Inhalt ist. Einzelheiten über diese Programmiersprache lernt man besser aus einem vernünftigen Lehrbuch und durch ein praktisches Projekt.

Linux

Linux beschäftigt mich seit etwa 5 Jahren. Ich arbeite in meinem Beruf und privat ausschließlich mit Linux und versuche möglichst vollständig alle relevanten Konzepte auszureizen. Auch wenn mein Hauptinteresse die Softwareenentwicklung ist, verwende ich viel Zeit darauf,  alles, was mein Interesse weckt auszuprobieren um es später in Projekten aus dem Hut ziehen zu können. Eine vorgehensweise, die aufwändig ist, mir aber in Projektierungen schon sehr viel Arbeit abgenommen hat. Das Motto ist dann “bloss nichts bauen, was schon da ist”. Das setzt aber Wissen voraus….

Algorithmen

Mein eigentliches, ursprüngliches Interessensgebiet. Die Faszination für dieses Gebiet hat begonnen, als ich den Alpha-Beta-Algorithmus für Schach und andere Zwei-Personen-Nullsummenspiele kennengelernt habe. MIt diesem Algorithmus habe ich mich intensiv befasst und dabei ist viel Sourcecode entstanden. Mein derzeitiges Interesse an Algorithmen hat aber eher praktische Hintergründe. Es kommt eben in Projekten immer wieder vor, daß noch andere Arten der Verarbeitung erforderlich werden, als Datenbankzugriffe und HTML-Seiten erzeugung. Dann heisst es wieder einmal den Bleistift zu zücken, Google anzuwerfen, Literatur zu bestellen, ausprobieren, prüfen. Eine Arbeit, die mir immer sehr großen Spaß macht.

Mein liebstes Grundlagenwerk über Algorithmen ist übrigens Introduction to Algorithms. Ein interessantes aktuelles Werk, daß sich mit Algorithmen für das Internet befasst ist Collektive Intelligence.

Copyright © 2012 Das Algorithmenwerk* All rights reserved. Theme by Laptop Geek.