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

Christian Schneider cschneid at spinfo.uni-koeln.de
Sat Apr 12 05:06:00 CDT 2003


On Freitag, April 11, 2003, at 11:43  Uhr, Michael Lamertz wrote:
>
>
> Modifier sind eine schoene sache:
>
>     while (<>) {
>         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. 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/;

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


>
> 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.

>     In der natuerlichen Sprache gibt es die ja auch, es sei denn, Du
>     schreibst mit der Zunge im Mundwinkel.
>
> Das ^^^^^ War gerade ein Beispiel fuer einen Modifier.
>

ach was.

> 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 ist wichtig, daß an dieser Stelle das Programm beendet werden 
kann. Ein Ausstieg über die sagt aber per se, daß ein Spezialfall 
vorliegt. $b++ ist ein völlig normales Statement, in Aristoteles 
Beispiel war die Einschränkung daher das wichtige und sollte vorne 
stehen, vor allem, wenn mehrere Aktionen auszuführen sind, deren 
Aktoren nicht alle, etwas mit der Bedingung zu tun haben.

>
> 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. .

> Jan-Patrick's Ex-Kollege wuerde Dich dafuer auch provokativ als 
> arrogant
> bezeichnen   >:->

Arroganz ist mir völlig fremd.

>
> 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.

> Wenn Du Code siehst bei dem Du sagst "Was fuer'n Bloedsinn!", dann
> schau nochmal genauer hin, denn moeglicherweise hatte derjenige einen
> Grund - library bug, seiteneffekt, altlast - der sich Dir noch nicht
> erschlossen hat.
>

s.o., wenn ich bei allem, was ich lese und für Blödsinn halte, Mails 
schreiben würde, hätte ich viel zu tun.


Christian




More information about the Cologne-pm mailing list