11

Shakespeare für Geeks

William Shakespeare, für alle! Und für den Rest, der Actionscript versteht.

[via]

11 Kommentare

  1. 01

    “ So long as men can breathe or eyes can see,
    So long lives this, and this gives life to thee.“

    Beim letzten for-Schleifchen waere ein while-Konstrukt programmiertechnisch zwar bloeder, dem Gedicht aber besser angedien.

    *inDeckunggeh..

  2. 02

    Hier etwas extrem Uraltes aus einer Zeit, in der es noch Schambehaarung gab, Merkel noch Kohl hieß und dieses „Internet“ noch für harte ASCII-Männer und nichts für WWW-Weicheier war: Tales for the Leet: Romeo and Juliet.

  3. 03

    @ntropie sehr sehr 13373r shice. pwned !!1

  4. 04

    Das Alte ist noch immer gut. ;O)

  5. 05
    Zoltan

    frag‘ mich ja was passiert wenn man das Gedicht mit SPL compiled

  6. 06

    Na das ist endlich mal en Gedicht, das so geschrieben ist, dass ichs versteh :)

  7. 07

    Und wer schreibt jetzt die Gedichtsanalyse?

    Der Autor wagt es, komplett auf die Definition von Klassen zu verzichten und weisst alle Eigenschaften und Methoden zur Laufzeit zu. Damit will der Autor auf die Vergänglichkeit des Objekts hinweisen.

    Besonders interessant erscheint mit Zeile 60ff:

        for (var i in o1) {
          if (typeof (o1[i]) == „function“) {
            o1isBetter = o1[i]() > o2[i]() ? true : false;
          } else {
            o1isBetter = o1[i] > o2[i] ? true : false;
          }

    Dem Autor ist es offensichtlich egal, um welche konkreten Eigenschaften es sich handelt, er nummeriert sie einfach durch. Dabei kommt es ihm offensichtlich nicht auf die kleinen Details an – je größer, desto besser – wenn beide Werte identisch sind, wird zu gunsten von o2 (in diesem Fall „thee“) entschieden. Diese massive Vereinfachung von an sich nicht vergleichbaren Objekten versucht der Autor durch eine sehr ausführliche, geradezu aufgeblasene Sprache zu verschleiern, wie an Zeile 64 „o1isBetter = o1[i] > o2[i] ? true : false;“ exemplarisch dargestellt:
    Obwohl es sich bei der Rückgabe von o1[i] > o2[i] zwangsläufig um einen boolschen Wert handelt, wertet der Autor dieses Ergebnis noch einmal explizit aus – um wieder einen boolschen Wert „? true : false“ zurückzugeben – es war ihm offensichtlich ein Bedürfnis noch einmal explizit auf das Wahre und das Falsche hinzuweisen.

    Besonders Interessant ist der Einsatz des „man“ Objekts. Dieses Objekt (ebenfalls zur Laufzeit definiert) verfügt lediglich über einige wenige Eigenschaften „canBreathe“, „hasEyes“. Sowie – und dies ist besonders ungewöhnlich – über eine compare Methode, die normalerweise direkt im zu vergleichenden Objekt implementiert wird. Dadurch wird dem an sich recht nebensächlichen Objekt eine zentrale Bedeutung gegeben – ohne das Objekt „man“ sind die Objekte „summer“ und „thee“ nicht vergleichbar.

    Aufgrund dieser Analyse lässt sich nur ein Schluss ziehen: der Autor (und ich) hatten zu viel Zeit.

    Und bis nächste Woche übersetzt ihr das alle in Ruby!

  8. 08
  9. 09

    endlich mal shakespeare wie ich ihn auch verstehen kann!

  10. 10

    Max: wirklich Applaus!

    Wer portiert’s auf AS 1.0? Oder fügt wenigstens noch ein paar Prototypes ein? So geht das ja gar nicht ;))

  11. 11
    remei

    passt da nicht eher dylan? oder gibts irgendein perl-mod à la latein:

    nsertum stringo unum tum duo excerpemento da.
    # Entspricht: substr($string,1,2) = $insert;
    clavis hashus nominamentum da.
    # Entspricht: @keys = keys %hash;

    remei