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

murphy
 2008-12-13 17:11
#117170 #117170
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
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.

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.

Um hier auch gleich auf eine andere Frage in diesem Thread zu antworten: Diese große Flexibilität und erweiterte Ausdrucksmöglichkeiten sind genau der Grund, warum ein Makrosystem für jede Sprache, ob nun kompiliert oder interpretiert, praktisch ist. Ich finde, es geht beim Design einer Programmiersprache nicht darum, möglichst viele coole Features einzubauen, sondern vielmehr darum, die Sprache so zu gestalten, dass sie eine ausreichende Abstraktionsebene aufweist, um auch nachträglich ohne großen Aufwand von jedem Programmierer individuell durch Features erweitert werden zu können, die sie oder er persönlich für cool hält, unabhängig davon, was der Sprachdesigner sich so vorgestellt hat.

Quote
eingebaute Grammatiken,


Das Makrosystem kann man als eingebauten Grammatikprozessor sehen. Diverse Lispimplementationen kommen darüber hinaus mit Bibliotheken zum generieren spezieller Parser daher. In Kombination ist das ziemlich mächtig.

Ich gebe allerdings gerne zu, dass mir die Syntax und Handhabung der Patterns bei Perl 6 recht gut gefällt.

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 ;-)

Quote
Unicode-Support auf Grapheme-Level?


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

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.

Und drittens wollte ich wirklich nicht im negativen Sinne lästern. Ich wäre wohl kaum auf einem Perlforum aktiv, wenn ich Perl total unmöglich fände. Ich bin immer hin- und hergerissen zwischen praktischen Features und Eleganz in verschiedenen Programmiersprachen. Eigentlich will ich beides haben, aber es erweist sich als schwierig, eine Sprache zu finden, die diese Kriterien optimal vereinigt. Deshalb verwende ich auch nicht immer ausschließlich eine einzige Sprache und ich bin etwas zurückhaltend was meine Begeisterung für neue Alternativen angeht ;-)


[1] falls jemand eine sehen will, empfehle ich persönlich PLT Scheme.
When C++ is your hammer, every problem looks like your thumb.

View full thread Schon jetzt an Perl 6 denken