Thread Schon jetzt an Perl 6 denken (41 answers)
Opened by Gast at 2008-12-12 20:52

moritz
 2008-12-14 20:49
#117241 #117241
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
murphy+2008-12-13 16:11:01--
moritz+2008-12-13 10:52:23--
[...]
Wie kommst du auf die Idee, dass Perl 6 kein vernünftiges Makro-System habe?


Nun, Perl6 hat zwar ein Makrosystem, bei einer Sprache mit Operatoren und komplexer Syntax ist es aber fast unmöglich, das vollständig hygienisch und nicht-intrusiv zu gestalten. Ich denke zwar, dass das neue auf Patterns basierende Makrosystem von Perl 6 gegenüber Quellcodefiltern in Perl 5 eine riesige Verbesserung darstellt, es ist aber meiner Meinung nach von hygienischen Makrosystemen wie man sie vor allem in modernen Schemeimplementationen findet, noch weit entfernt.


In welcher Hinsicht ist es davon weit entfernt?
Ich weiss nicht, was man mehr als Macros mit lexikalischem Scope, definierter precedence und der Fähigkeit, einen Syntax-Tree zurückzugeben braucht, daher frage ich.

Quote
Quote
Und hat Lisp Junctions,


In der Regel nicht eingebaut. Mit CLOS und / oder Makros ist sowas aber in wenigen Zeilen Code implementierbar. Genauso einfach, wie man bei Bedarf zwischen eager und lazy evaluation wechseln kann oder ähnliches.


Ich hätte nicht gedacht, dass man junction autothreading bei Funktionsaufrufen in wenigen Zeichen in Scheme hinbekommt, aber da habe ich mich dann wohl geirrt. Point taken.

Quote
Quote
Kontextsensitivität und


Ich bin nicht sicher, was Du hier meinst. Wenn es Dir um Konstrukte wie den "intelligenten" Matchoperator geht, so bin ich mir noch nicht so ganz sicher, ob ich den nicht eher gefährlich unberechenbar finde, solange er keine echte KI eingebaut hat ;-)


Ich meine diverse Kontexte (List-Kontext, String-Kontext, Numerischer Kontext, lvalue-Kontext etc.), wie man sie zum Teil auch schon von Perl 5 kennt.

Quote
Quote
Unicode-Support auf Grapheme-Level?


Sowas haben doch heute die meisten Programmiersprachenimplementationen, im Zweifelsfall in irgendeiner Bibliothek.


Die im Zweifelsfall zu benutzende Bibliothek ist meistens nicht besonders benutzerfreundlich, und so viel Aufwand, dass die meisten Programmierer sie gar nicht erst benutzen.

Für Perl 5 z.B. kenne ich nur zwei Implementierungen, String::Multibyte (das grauenhaft zu benutzen ist), und Perl6::Str (von mir geschrieben, ziemlich begrenzt im Funktionsumfang).

Mit Java kenne ich mich nicht so gut aus, aber wenn dafür solche Bibliotheken gibt (vermutlich wurde ICU für Java portiert), dann hat

Quote
Quote
(Meistens wenn ich Leute über Perl 6 lästern sehe, habe ich den Eindruck, dass sie ziemlich schlecht informiert sind).


Erstens habe ich nicht behauptet, besonders gut über Perl 6 Bescheid zu wissen, sondern lediglich einen allgemeinen Eindruck geschildert, der sich nichtmal ausschließlich auf Perl 6 bezog, sondern mehr meine allgemeine Verwunderung über teilweise wenig Innovation im Programmiersprachensektor zum Ausdruck brachte. Außerdem hatte ich meine Bemerkung ja mit einem Augenzwinkern versehen um kenntlich zu machen, dass ich die Kritik nicht tierisch ernst meine, sondern absichtlich überspitzt formuliert habe.

Zweitens kann ich wohl guten Gewissens umgekehrt behaupten, dass die meisten Leute die über Lisp oder Scheme lästern wohl auch noch nie eine moderne Implementation dieser Sprachen zu Gesicht bekommen haben [1]. In vielen Fällen regt man sich sogar nur über die Syntax auf, die aber meiner Meinung nach mehr eine Gewöhnungsfrage ist und bisweilen ihre Vorteile hat.


Tut mir leid, ich wollte nicht so harsch klingen. Zweitens war das auch eher allgemein gemeint, die meisten Leute, die über Perl 6 lästern, sind wirklich grottenschlecht informiert.

View full thread Schon jetzt an Perl 6 denken