[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Python oder Perl



On 04.Aug 2005 - 19:10:53, Eduard Bloch wrote:
> Andreas Pakulat schrieb am Mittwoch, den 03. August 2005:
> > > Aber was mich bei der Python-Version immer noch abschreckt: man sieht
> > > nicht direkt, nach welchem Prinzip es die Spaces und Zeilenumbrüche
> > > verteilt. Hat man überhaupt Kontrolle drüber?  Oder macht die Sprache
> > > das nach Lust und Laune und für Leute mich gibt es dann
> > > Printe-So-Wie-Es-Da-Steht-Funktionen, die man erst noch kennenlernen
> > > muss?
> > 
> > Was genau meinst du? Hier siehts so aus:
> ...
> > mcop-andreas file
> > 
> > Wobei genau 1 Leerzeichen zwischen dem Dateinamen und "file" bzw. "dir"
> > steht (hab grad keine dirs in /tmp). Und das liegt an dem "," hinter dem
> > "print filename". Siehts bei dir anders aus?
> 
> Doch, und genau das erschreckt mich.

Ernsthaft? Du meinst ein 

print "test2","test3"
liefert bei dir mal "test2 test3" und mal "test2     test3"??

Kann ich nicht glauben, sicher das keine Leerzeichen in den Dateinamen
sind?

> Da werden einfach zu viele
> semantische Sachen auf der Syntax-Ebene einkodiert. Wocher soll ein
> Nicht-Python-Dauer-Coder nach einem halben Jahr noch wissen, was , da zu
> suchen hat und warum? Da ist mir "$_ ist Bla\n" viel lieber.

Nun, das Komma gehoert zur Signatur der print-Funktion und kann in jeder
Referenz nachgeschlagen werden. Es ist damit aehnlich wie mit dem
C-printf, nur das man keinen Format-String braucht. print nimmt als
Argumente eine Menge von Ausdruecken entgegen, durch Kommata getrennt
(wie bei jeder Funktion) und haengt diese zusammen. Netterweise macht es
dabei ein Leerzeichen zwischen den Ausdruecken, was ich bei anderen
print-Statements (in anderen Sprachen) immer wieder schmerzlich
vermisse. Wenn das Komma am Ende steht, sorgt es einfach dafuer, dass
das kein Newline ausgegeben wird.

> > Weil man sie _schnell_ auch als Nicht-Perl-Experte verstehen kann. Ebend
> > weil es Variablennamen und Funktionen benutzt und nicht Konstrukte die
> > dies implizit tun (inkl. ?_ oder </tmp/*>).
> 
> Wie gesagt, das ist einfach Geschmackssache. Auf der Shell arbeitest du
> auch nicht mit "for x in `ls | grep -v .c$ ` ; do stat "...format" $x ; done".
> 
> (... oder doch?!)

Kommt drauf an, in Skripten eher nicht, aber wenn ich mal fix was mit
vielen Daetien machen will (zum Beispiel umbenennen oder durch nen
mp3-Kodierer jagen) schon.

> > Klar, Klammern sind ja auch so leicht zu lesen, insbesondere welche
> > jetzt offen oder geschlossen sind. Ja man hat Syntaxhighlighting, aber
> > auch das erfordert mehr Aufwand als wenn man jeden Befehl auf ner
> > eigenen Zeile hat. Ausserdem arbeite ich wenig mit der Maus, da sind so
> > lange Zeilen immer ein ziemliches Uebel ;-) 
> 
> Es gibt da nette Sprung-Funktionen in jedem vernünftigen Editor (z.B. %
> im vim auf der oeffnende Klammer). Wie geht so etwas denn bei der
> Schlangensprache?

<Pfeil-Nach-Unten>
bzw. diesselben Sprungfunktionen fuer die durchaus vorhandenen Klammern.
In Python ist ebend jede (nicht mit " \" abschliessende) Zeile ein
Kommando.

Ich finde insbesondere die strenge Einrueckungssyntax sehr gut lesbar
und man muss sich nicht darueber streiten ob die oeffnende Klammer nun
auf einer eigenen Zeile steht oder hinter dem if/class/..-Statement...

Andreas

-- 
Avert misunderstanding by calm, poise, and balance.



Reply to: