Just another Perl hacker
Just another Perl hacker (abgekürzt JAPH) steht für ein in der Programmiersprache Perl geschriebenes kurzes Computerprogramm, das lediglich den Text „Just another Perl hacker“ ausgibt, seine Funktionsweise im Quelltext dabei aber möglichst wirkungsvoll verschleiert. Ein solches Programm dient experimentellen Zwecken sowie der Unterhaltung der Programmierer und hat darüberhinaus keinerlei praktischen Nutzen, obgleich die Analyse der Funktionsweise eines JAPHs für Perl-Programmierer außerordentlich lehrreich sein kann.
Methodik der Verschleierung
Zum Zweck der Verschleierung (engl. Obfuscation) wird der Programmcode zumeist – unter Ausnutzung auch der abwegigsten syntaktischen Möglichkeiten der Programmiersprache Perl – derart kryptisch formuliert, dass man ihm seine Funktion (die Ausgabe von „Just another Perl hacker“) selbst auf den zweiten Blick kaum ansieht. Nicht selten wird dem Quelltext darüberhinaus durch kreatives Layout ein originelles und für Programmcode völlig untypisches Erscheinungsbild verliehen. Beides dient der Verschleierung der eigentlichen Funktion und/oder der Funktionsweise des Programmes, oder gar der Tatsache, dass es sich bei dem vorliegenden Text überhaupt um ein Computerprogramm handelt.
Historie
Die „Programmierdisziplin“ JAPH wurde vermutlich Anfang der 1990er Jahre durch Randal L. Schwartz begründet, der bei Postings in die Newsgroup „comp.lang.perl“ (Vorgänger der heutigen Newsgroup „comp.lang.perl.misc“) immer ein JAPH in seine Signature integrierte. (Signatures können auch andere kurze Programme enthalten, wie diese Sammlung zeigt.) Auch heute noch werden JAPHs entweder im Rahmen von Programmierwettbewerben (z.B. dem Obfuscated Perl Contest) entwickelt, oder just for fun – als kreative Fingerübung der Perl-Programmierer.
Siehe auch
- 2001: Odyssee im Weltraum / Hommagen / Computerprogramme – ein JAPH als „tribute to one of the greatest films of all time“
- Obfuscated Perl Contest
- Obfuscator – Hilfsmittel zur Verschleierung von Programmen
Weblinks
- Cultured Perl: The Elegance of JAPH (englisch)
- Eine Sammlung von 224 JAPHs (englisch)
Die Beispiele 2, 3, 4 und 7 stammen aus dieser Sammlung. Mit Ausnahme des Beispiels 7, dessen Herkunft – wie die der Beispiele 5 und 6 – ungeklärt ist, werden dort auch die Autoren genannt. - Abigail's brillante interaktive Webseite über JAPHs (englisch)
- Ausführlich erklärter JAPH – Mark Jason Dominus' Beitrag zum 5. Obfuscated Perl Contest aus dem Jahr 2000 (englisch)