The fate of reduce() in Python 3000

The fate of reduce() in Python 3000 - tja, dann wird es wohl wirklich Zeit für mich die Sprache zu wechseln. Denn wer so blöd ist sich von Lisp-Wurzeln zu lösen wird nichts weiter schaffen als die mächtigeren Möglichkeiten mit primitiven Mitteln nachzubauen. Ruby sieht auch sehr brauchbar aus und so langsam gewöhne ich mich an die Syntax ...

Anonyme Funktionen (lambda in Python, Blöcke in Ruby oder Smalltalk) sind weitaus mehr als nur obskure Lisp-Überbleibsel. Ich hab viele Programmstücke die genau davon leben das ich Codeblöcke anonym durchreichen kann - letzten Endes dient das dazu seine eigenen Programmstrukturen zu schreiben. In Smalltalk und ähnlichen Sprachen (und in gewissem Sinne auch in Ruby) kann man darüber eine Sprache selber erweitern und entwickeln - was gerade einer der Stärken von Lisp und seinen Freunden ist (und deshalb ja auch in Smalltalk und seinen Freunden sich wiederfindet - die Smalltalk-Entwickler hatten eine Menge Lisp-Know-How).

Sprachen die sich an der Stelle selber kastrieren und meinen das Iteratoren und List-Comprehension (im Prinzip nichts weiter als verkürzt geschriebene Schleifen) wirklich ein brauchbarer Ersatz dafür sind sich eigene Kontrollstrukturen und eigene Sprachmittel programmieren zu können sind für mich mitlerweile völlig uninteressant geworden. Ich mag keine Sprachdesigner die meinen schlauer als der spätere Programmierer zu sein und denen ein Sprachkorsett aufzwingen wollen.

tags: Programmierung, Python, Ruby

afa March 11, 2005, 1:41 p.m.

"the exception being toy programs". Haha.
Ich kann Sie verstehen.


hugo March 11, 2005, 3:21 p.m.

Ich bin immer wieder erschreckt mit wieviel Unwissen einige der führenden Sprachdesigner aufwarten können. Ich erinnere mich noch mit Grausen an die Diskussionen rund um Continuations - wo Guido van Rossum den Sinn und die Möglichkeiten nicht einsehen wollte. Nicht die generelle Ablehnung des Features an sich - da gibts durchaus einige Punkte die man da anbringen könnten (z.B. den Konflikt zwischen Continuations und Exceptions), sondern die Tatsache der Continuations als Sprachmittel. Guido van Rossum hat da an einigen Stellen schlicht bewiesen das er keinen blassen Schimmer hat was Continuations sind - was anbetracht der Tatsache das Guido ja an einer Uni arbeitet und Scheme selber mit seinen first-class-continuations auch schon seit vielen Jahren existiert und gerade an Unis Scheme zum Standardhandwerkszeug gehört recht erstaunlich ist ...

Larry Wall und John Ousterhout haben wenigstens beide die Ausrede das sie eigentlich gar keine Programmiersprachendesigner sind. Guido kann diese Ausrede nicht anbringen ...

Das ist es auch was mich an Ruby immer wieder begeistert: die Ofenheit mit der Konzepte anderer Sprachen aufgenommen werden. Der Aspekt der Sprache als Werkzeug wird dort viel höher bewertet als der Aspekt der Sprache als Ideologie. Kenne ich ansonsten eigentlich nur aus dem Smalltalk-Bereich und von den Common Lispern.

afa March 11, 2005, 5:34 p.m.

"not having the choice streamlines the thought process". yow!

(defun make-adder (a)
#'(lambda (x)
(+ x a)))

(defun make-adder-gr (a)
(defun my-add (x)
(+ x a))
#'my-add)

(setf a (make-adder-gr 10))
(funcall a 2)
12

Wieso soll sowas ein "aha erlebnis" sein? bei callbacks in UI-Komponenten fände ich das wirklich wenig erheiternd.