Schrift
[thread]8345[/thread]

Erklärung zu wantarray (Seite 3)

Leser: 1


<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
Gast Gast
 2006-09-20 14:23
#70052 #70052
@Relais
Quote
Genau, deshalb wird es auch so häufig ganz intuitiv verwendet.

Die Leute sollten, auch bei Perl, weniger "intuitiv verwenden"
sondern die mitgelieferte Dokumentation lesen. Ist ganz einfach
und schmerzlos.

Quote
Nee, es DWIMt einfach nicht, das ist schlecht, und das als Folge von schlechtem Design.

Schönes Totschlagargument. Es tut nicht, was Relais meint, also
ist es schlecht designed. Find ich ganz im Gegenteil. Schlecht
benannt, aber das war's auch schon.

Quote
Schau mal die genannten Module an. Wenn wantaray bereits toll wäre, dann gäbe es die nicht.

Genau. Weil Alternativen ja immer heissen, dass die erste
Variante ein Fehlschlag war. Wenn Leute andere oder genauere
Anforderungen haben, oder sogar tatsaechlich mit dem neuen
einfach besser zurechtkommen, ist das immer noch kein
objektiver Hinweis auf Müll. Da hilft dir auch kein "Nee nee, ich
hab da schon recht."

@tinita
Quote
aber es war ja auch nicht sinn und zweck des
buches, dem leser zu sagen, was er zu tun oder zu lassen oder zu denken hat, sondern es wurden bei jeder empfehlung die gründe aufgezeigt, so dass zumindest ich beim programmieren häufiger darüber nachdenke, *warum* eine schreibweise vielleicht besser sein könnte als die andere. so habe ich einige gewohnheiten geändert, ganz ohne 'zwang'.


Schon. Allerdings tun das Leute. Was ich eben genau damit
ansprechen wollte, weil mir "Damien hat's gesagt!" als Argument
entgegengehalten hat. Und wenn Larry höchstpersönlich
wantarray verteufeln würde, für meine Zwecke war es immer
sehr nützlich.

Quote
pech. 'void' an sich ist nicht perl-spezifisch. wenn man ordentlich mit einem buch oder guten tutorial prorammieren lernt, sollte man das kennen.


Wie "Pech"? Die kennen den void Kontext nicht, die brauchen
den void Kontext nicht, wantarray differiert für sie zwischen
Scalar und Listkontext. Passt perfekt. Pech haben die eigentlich
nicht.

Quote
mehrere verschachtelte funktionsaufrufe, die alle wantarray benutzen, können sehr verwirrend sein, da der kontext hier über mehrere stufen weitergegeben wird. deswegen bin ich da relativ sparsam in der benutzung.


Und Schuld ist das Werkzeug, nicht der Designer? Bin ich hier
immer noch in der Perl-Community?
renee
 2006-09-20 14:47
#70053 #70053
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Guest,20.09.2006, 12:23]@Relais
Quote
Genau, deshalb wird es auch so häufig ganz intuitiv verwendet.

Die Leute sollten, auch bei Perl, weniger "intuitiv verwenden"
sondern die mitgelieferte Dokumentation lesen. Ist ganz einfach
und schmerzlos.

[/quote]
Jein. Normalerweise sollte etwas schon recht "intuitiv" sein, sonst macht es die Benutzung übermäßig schwer. Bei kleinen Dingen wie wantarray mag es noch übersichtlich sein, aber bei einem großen Modul oder so, kann es schon fatal sein, wenn es nicht zu einem gewissen Grad intuitiv ist.
Quote
Quote
Nee, es DWIMt einfach nicht, das ist schlecht, und das als Folge von schlechtem Design.

Schönes Totschlagargument. Es tut nicht, was Relais meint, also
ist es schlecht designed. Find ich ganz im Gegenteil. Schlecht
benannt, aber das war's auch schon.

Quote
Schau mal die genannten Module an. Wenn wantaray bereits toll wäre, dann gäbe es die nicht.

Genau. Weil Alternativen ja immer heissen, dass die erste
Variante ein Fehlschlag war. Wenn Leute andere oder genauere
Anforderungen haben, oder sogar tatsaechlich mit dem neuen
einfach besser zurechtkommen, ist das immer noch kein
objektiver Hinweis auf Müll. Da hilft dir auch kein "Nee nee, ich
hab da schon recht."

Seh' ich ähnlich...
Quote
[...]

Quote
mehrere verschachtelte funktionsaufrufe, die alle wantarray benutzen, können sehr verwirrend sein, da der kontext hier über mehrere stufen weitergegeben wird. deswegen bin ich da relativ sparsam in der benutzung.


Und Schuld ist das Werkzeug, nicht der Designer? Bin ich hier
immer noch in der Perl-Community?

Da gebe ich pq absolut recht. Wenn man viele Funktionen schachtelt, wird es unübersichtlich was den Kontext angeht. Wenn Du es ausgiebig benutzt, dann ist das Deine Entscheidung, in der Du Vorteile siehst. Wenn pq wantarray sparsam einsetzt, dann ist das ihre Entscheidung, die eine gute Begründung hat - jedenfalls für sie.

Was hat das jetzt mit der Perl-Community zu tun?\n\n

<!--EDIT|renee|1158749275-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2006-09-20 14:52
#70054 #70054
@renee
Quote
Jein. Normalerweise sollte etwas schon recht "intuitiv" sein, sonst macht es die Benutzung übermäßig schwer. Bei kleinen Dingen wie wantarray mag es noch übersichtlich sein, aber bei einem großen Modul oder so, kann es schon fatal sein, wenn es nicht zu einem gewissen Grad intuitiv ist.

Das sagte ich ja auch nicht. Ich wollte nur klarstellen, dass
Intuitivität noch lange nicht die Dokumentation ersetzt. Bei
wantarray finde ich es eben überhaupt nicht schlimm, eben weil
es auch eher spärlich eingesetzt werden sollte.

Quote
Was hat das jetzt mit der Perl-Community zu tun?

Weil das Argument "$Kollege hat das verwendet, war total
verwirrt und hat absolut unsauberen Code damit geschrieben" in
der Perl Community ein bisschen merkwürdig rüberkommt. Wenn
das nämlich jemand über Perl sagt, ist es immer der
Programmierer gewesen, nie das Werkzeug. Warum ist dann hier
plötzlich dass Werkzeug schuld, weil jemand nicht damit
umgehen kann? :)
pq
 2006-09-20 15:34
#70055 #70055
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Guest,20.09.2006, 12:23]
Quote
mehrere verschachtelte funktionsaufrufe, die alle wantarray benutzen, können sehr verwirrend sein, da der kontext hier über mehrere stufen weitergegeben wird. deswegen bin ich da relativ sparsam in der benutzung.


Und Schuld ist das Werkzeug, nicht der Designer? Bin ich hier
immer noch in der Perl-Community?[/quote]
häh? verstehe ich jetzt nicht.
es war nur eine bemerkung, dass ich erst gerade die erfahrung selbst
gemacht habe.
und dass ich sage, wantarray ist dafür, was es letztendlich machen
*kann*, schlecht bezeichnet, heißt ja nicht, dass ich wantarray an sich
schlecht finde. ein bißchen kritik kann Perl doch vertragen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2006-09-20 15:35
#70056 #70056
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=vayu,19.09.2006, 15:19]so kann man quasi methoden "überladen" je nachdem was der aufrufende zurückhaben möchte.[/quote]
Nein. Beim Überladen von Funktionen in C++ wird zwischen der Signatur unterschieden, und zu dieser zählt der Rückgabewert nicht dazu. Hier kann mit wantarray etwas geleistet werden, dass man in C++ meines Wissenstandes nach wirklich in verschiedenen Funktionen / Methoden anbieten müsste.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pq
 2006-09-20 15:35
#70057 #70057
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Guest,20.09.2006, 12:52]
Quote
Was hat das jetzt mit der Perl-Community zu tun?

Weil das Argument "$Kollege hat das verwendet, war total
verwirrt und hat absolut unsauberen Code damit geschrieben" in
der Perl Community ein bisschen merkwürdig rüberkommt.[/quote]
wer hat denn das gesagt? hab ich was verpasst?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Gast Gast
 2006-09-20 16:11
#70058 #70058
@tinita:
Quote
und dass ich sage, wantarray ist dafür, was es letztendlich machen *kann*, schlecht bezeichnet, heißt ja nicht, dass ich wantarray an sich schlecht finde. ein bißchen kritik kann Perl doch vertragen.


Gegen Kritik über den Namen habe ich ja nichts gesagt, ich finde
"Broken by Design" nur eben etwas weit hergeholt. "wantlist"
oder etwas ähnliches fände ich persönlich auch besser, aber bei
Perls kleinem Vokabular finde ich es eben nicht sonderlich wild.
Da wurde ich zB vom kontextsensitiven Verhalten von "return"
schon öfter gebissen.

Quote
wer hat denn das gesagt? hab ich was verpasst?


Es klang so. Wenn es nicht so gemeint war: Mea Culpa. Aber
inwiefern passt das Argument, dass deine Kollegen es
undurchdacht verwenden, zur aktuellen Problematik ob es
"Broken by Design" ist, oder nicht?
pq
 2006-09-20 16:24
#70059 #70059
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Guest,20.09.2006, 14:11]
Quote
wer hat denn das gesagt? hab ich was verpasst?


Es klang so. Wenn es nicht so gemeint war: Mea Culpa. Aber
inwiefern passt das Argument, dass deine Kollegen es
undurchdacht verwenden, zur aktuellen Problematik ob es
"Broken by Design" ist, oder nicht?[/quote]
es war wie gesagt nur eine anmerkung generell zu wantarray.
und es liegt auch nicht daran, dass meine kollegen es undurchdacht
verwenden. in dem fall habe *ich* eine funktionalität kaputtgemacht,
indem ich das wantarray der aufgerufenen funktion nicht richtig
durchschaut habe bzw. gar nicht daran gedacht habe, dass diese funktion
wantarray benutzt.
das einzige, was ich geändert habe, war:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
# vorher
sub A {
 return shift->B(@_, ...);
}

# nachher
sub A {
 my @array = shift->B(@_, ...);
 return wantarray ? @array : \@array;
}

dummerweise hat aber methode B in skalarem kontext nur ein
element zurückgeliefert; nun lieferte methode A aber immer eine
arrayref.

also, wantarray ist praktisch, aber man bedenkt manchmal nicht, wo
es einem einen strich durch die rechnung machen kann.\n\n

<!--EDIT|pq|1158755100-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Gast Gast
 2006-09-20 16:47
#70060 #70060
@tinita
Quote
es war wie gesagt nur eine anmerkung generell zu wantarray.

Gut, dann war's mein Fehler, sorry.

Quote
dummerweise hat aber methode B in skalarem kontext nur ein element zurückgeliefert; nun lieferte methode A aber immer eine arrayref.

also, wantarray ist praktisch, aber man bedenkt manchmal nicht, wo es einem einen strich durch die rechnung machen kann.


Für mich wäre das eigentlich eher ein Fall von fehlender

Dokumentation. Aber dafür braucht's ja nichtmal wantarray.
Nimm beispielsweise

Code: (dl )
sub foo { return (23, 24) }

Code: (dl )
sub bar { my @x = (23, 24); return @x }


Wenn jemand in einer Funktion plötzlich auf die Idee kommt, die
Werte als Array zurückzugeben, und nicht mehr als Liste, ist das
Ergebnis im skalaren Kontext ein ganz anderes.
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2006-09-19 17:04.