[Cologne-pm] Sachen, die die Welt nicht braucht, brauchen Deine Hilfe

Michael Lamertz mike at lamertz.net
Sat Apr 12 12:06:19 CDT 2003


Hmm, sieht so aus, als ob die Person die zuerst um Flames bittet im
Nachhinein doch ein recht duennes Nervenkostuem traegt.  Schade.

On Sat, Apr 12, 2003 at 12:06:00PM +0200, Christian Schneider wrote:
> On Freitag, April 11, 2003, at 11:43  Uhr, Michael Lamertz wrote:
> >
> >        next unless /line has a legal format/
> >        $matches++ if /pattern to count/;
> >        print ">>$_<<\n" foreach split;
> 
> geschenkt. Wie Dir sicher auffällt, sind diese Beispiele aber recht 
> simpel gestrickt und bilden keine anderen Konstrukte nach.

Aha, jetzt heisst es also auf einmal "Geschenkt".  Aber:

On Fri, Apr 11, 2003 at 11:07:37PM +0200, Christian Schneider wrote:
> Aber ein schönes Beispiel, warum das nachgestellte if böse ist (ja, ja
> flamet ruhig).

Da fehlt dann wohl das modifier-if *g*

    "Aber ein schoenes Beispiel, warum das nachgestellte if boese ist,
    WENN DER AUSDRUCK ZU KOMPLEX WIRD"

Welcher Teil ist jetzt der wichtige?

> Du hast ein 
> Statement pro Modifier und sonst nichts. Bei welchem Punkt fängst Du 
> an, die Sachen vorzustellen.
> 
> $matches++, print $_ if /pattern to count and print/;
> next, warn "Illegal line" unless /line has legal format/;

Wir hatten in Aristoteles' Beispiel keine willkuerliche
Aneinanderreihung von Befehlen.  Die Modifier-Variante sollte aufgrund
der Textuellen Ausrichtung ebenfalls direkt hervorheben was passiert.

    ---------- snip ----------
    $c++;
    $b++, $c = 0 if not defined $c[$c];
    $a++, $b = 0 if not defined $b[$b];
    ---------- snip ----------

Der haengende Modifier ist hier vollkommen berechtigt eingesetzt, da er
den Spezialfall *optisch* hervorhebt.

> Diese Billig-Postmodifier sind völlig in Ordnung, ich finde nur, daß 
> man dieses Konstrukt nicht für komplexere Sachen nutzen sollte.

Das hat auch keiner behauptet.  Deshalb waren die Beispiele ja auch
einfach gewaehlt.

> Bei genauerem Nachdenken, störte mich an dem Code wohl am meisten, daß
> er eine Schleife nachbaut, ohne dies mit den angebrachten
> Schlüsselwörten deutlich zu machen. In Cems Originalkode war eindeutig
> klar, was passiert, in Aristoteles Version nicht.

Ueber die Emulation einer dreifach verschachtelten Schleife haben wir
hier aber nicht gesprochen - sooo toll fand ich das selber nicht.  Es
ging einzig und alleine um Deine Aussagen
    
    a.  das nachgestellte if (modifier-if) ist boese
    b.  ja, ja, flamed ruhig.

Zu a. hab' ich Stellung bezogen indem ich b. gefolgt bin, und zwar mit
einer Prise Humor:

    ---------- snip ----------
    On Freitag, April 11, 2003, at 11:43  Uhr, Michael Lamertz wrote:
    > Kannst Du haben, und natuerlich direkt mit der groben Kelle >:->
    ---------- snip ----------

Wenn Du damit im Nachhinein nicht leben kannst und ja eigentlich alles
ganz anders gemeint war, dann solltest Du das zum Anlass nehmen,
zukuenftig Deine Mails vor dem Versenden erneut zu lesen.

Fuer Email gilt:  "We only know you by what you write."

Was Du schreibst ist was wir wahrnehmen.  Wenn es zwischen dem was Du
schreibst und dem was Du *meinst* eine Diskrepanz gibt, dann ist das
einzig und allein Dein Problem.  Btw:  Smilies helfen hier ein Wenig.  ;-)

> >Ich sehe nicht was daran boese ist, ausser der Tatsache, dass es das in
> >VisualBasic nicht gibt.
> 
> wenn Du das sagst, wird das wohl so sein.

Nope, ist auch nur eine Vermutung :)

> >Das Konstrukt
> >
> >    die "Everything is broken: $!\n"
> >        unless open LOG, ">$logfile";
> >
> >sticht durch das vorne stehende Signalwort 'die' direkt in's Auge und
> >laesst jmd. bei der Code-Durchsicht aufmerken.  "Oh, das ist wichtig.".
> >
> 
> das ist so ziemlich genau der Punkt, was ist wichtig und was nicht. 

Hier der Code von Aristoteles in einer etwas veraenderten Form:

    Ein Haus
    Ein Haus mit Garage und Garten
    Ein Haus mit Garage und Garten

Das vorne stehende Linup und die hinten ausweichende Aenderung heben in
dem Fall den hinteren Teil bzw. die Zeilen mit dem Anhang hervor.  Die
Form hat vielleicht nicht dem genuegt was Du gewohnt bist, aber das
macht sie noch lange nicht verkehrt.

> >Dich hat nicht der modifier gebissen, sonder die Tatsache, dass Du
> >Deinem Vorurteil "$a++, $b++, $c++?!?  Ist doch alles dasselbe" so sehr
> >getraut hast, dass Du einfach nicht auf den Code - welcher ja nun
> >*direkt* daneben deutlich hervorstand - geschaut hast.
> 
> ich habe auf den Code geschaut, ich habe ihn nur nicht verstanden; es 
> ist schön für Dich, wenn Dir das nie passiert. Mich hat nicht der 
> Modifier gebissen, sondern der Schleifencharakter desselben, s.o. .

Mir passiert das auch.  Zwischendurch... ganz selten... vor ein paar
Jahren 'mal ;-P

Ernsthaft.  Nochmal:  Deine Erwartungshaltung hat Dich gebissen.  Du
hast geglaubt auf ein Idiom zu blicken, aber dem war nicht so.  Du hast
gepostet, dass das Statement quatsch ist und hast Dir die Hintertuer

    "Oder verpasse ich die Magie?"

offen gelassen, anstatt, wenn's Dich schon stutzen laesst, den Code
einfach 'mal auszuprobieren.  Und sag' jetzt nicht, dass Du dazu keine
Zeit hattest, denn Du hattest ja auch Zeit auf die Mail zu antworten.

> >Jan-Patrick's Ex-Kollege wuerde Dich dafuer auch provokativ als 
> >arrogant
> >bezeichnen   >:->
> 
> Arroganz ist mir völlig fremd.

Ich glaube da fehlt ein ;-)

> >Mein Lieblingssatz aus Peter Van Der-Linden's "Deep C Secrets" ist
> >
> >    "Don't consider your predecessors idiots"
> >
> 
> deswegen habe ich nachgefragt, ob mir was entgeht.

Nope, Du hast dir das - uebrigens per modifier

    Tut nicht
        or warn "but I may be wrong"

als Hintertuer offen gelassen nachdem Du postuliert hast, dass das nicht
funktioniert.  Das ist ein Unterschied.


Fazit:

* You asked for it, you got it.

* Ich denke ich habe ueber meine evil-smilies klar gemacht, wie mein Ton
  zu verstehen ist

* Ich habe mit klaren Fakten und Code belegt was ich meinte

Wenn Dir daran was nicht passt, dann ist das nicht mein Problem.


Mike

-- 
	    Well, then let's give that Java-Wussie a beating... (me)

Michael Lamertz                        |     +49 2234 204947 / +49 171 6900 310
Sandstr. 122                           |                       mike at lamertz.net
50226 Frechen                          |                 http://www.lamertz.net
Germany                                |               http://www.perl-ronin.de 



More information about the Cologne-pm mailing list