schubbiaschwilli hat geschrieben: ↑Fr Mär 19, 2021 11:51 amHey, ich erkenne ja Ironie, wenn ich sie sehe... Aber dazu mal die Frage: Aktuell mach' ich wieder viel mit Formeln, Monte-Carlo-Simulationen und sowas.
Was ist daran:
so viel besser und vor allem leserlich(er)? Ich sehe diese Schreibweise ja öfter, aber ich erkenne keine Vorteile.
Erstmal Danke für's Ironie erkennen.
Zum
zweiten habe ich aus der Erwähnung hier alles nur unnötig lang und kompliziert machenden mutate und transmutate entnommen, dass der OP in der Schule des Aufgeräumtversums ausgebildet wird. Dort sind Pipes besser. Das Bedarf ebensowenig einer Begründung wie die Ehelosigkeit katholischer Priester. Man kann nicht alles herleiten, manches muss man einfach als Grundannahme setzen. Mein Eindruck vom Lesen einiger weniger Blogs zum Thema ist, dass die bessere Lesbarkeit hier als Grundannahme gesetzt und nicht argumentiert wird. Die Welt der Computerprogammierung wird beherrscht von den Sprachen JavaScript, Java, Python C++, C - lauter Programmierer die alle nicht wissen, wie übersichtlich ihr Code wäre, würden sie ihn von links nach rechts statt von innen nach außen parsen. Schließlich beginnt die Startseite auf
www.tidyverse.org mit "The tidyverse is an opinionated collection of R packages..." und nicht mit "The tidyverse is an evidence based collection of R packages...". Also geh jetzt bitte ins Bad und wasch Dir für die Frage den Mund mit Seife aus!
Zum
dritten hat Sprache nicht nur eine pragmatische, sondern auch eine ästhetische Dimension. Dein Statement ist statisch. a = b + c + d ist eine Feststellung, dass das eine die Summe der anderen ist. Bei der Pipe strömt information dynamisch vom einen Prozess zum anderen, mit den richtigen Zeilenumbrüchen kaskadenartig einem Wasserfall nicht ungleich seinem Ziele zu. Ein lebendiges Strömen und Fließen vom Ursprung zum Ziel gegenüber einer trocken-statischen Zuschreibung. Ästhetisch ganz klarer Fall.
Zum
vierten ist R nunmal eine Multiparadigmensprache. Man kann in R mühelos imperativ programmieren. Man kann in R objektorientiert programmieren (mit einer größeren Auswahl an OO-Varianten als in den meisten anderen Mainstreamsprachen). Man kann in R sogar funktional programmieren (solange man keine tail-call-optimization braucht). Was in R so gar nicht vorgesehene ist ist Stack-orientiertheit. In Forth hat man seine Daten erstmal auf den Stack gelegt und dann eine Rechenoperation darauf angewandt. Ganz genauso kann man das mit der Pipe natürlich nicht nachmachen, aber ein wenig ist es doch schon so, als könnte man ein Argument auf den Stack legen und dann im nächsten Schritt darauf zugreifen und das Ergebnis gleich im Stack haben. Ok, das macht R nicht zu einer stackorientierten Sprache, aber die sind auch
selten.
Nun, ich höre hier mal auf, weil Du spätestens jetzt überzeugt bist.
Bernhard %>% LG