[Dresden-pm] Dresden Perl Mongers Treffen April 2008

Aristoteles Pagaltzis pagaltzis at gmx.de
Do Apr 3 11:00:04 PDT 2008


* Josef Spillner <2005 at kuarepoti-dju.net> [2008-04-03 14:00]:
> Am Donnerstag 03 April 2008 13:17:37 schrieb Aristoteles Pagaltzis:
>> Perl war populär *bevor* es Unicode gab. Ruby nicht.
>
> Perl 4 -> Unicode -> Perl5.

Ja, und? Perl 4-Programme laufen ohne Änderung unter Perl 5, und
das war seinerzeit ein wichtiges Kriterium. Ausserdem war Unicode
zum Erscheinen von Perl 5 zwar schon existent, aber noch relativ
grün und noch lange nicht so allgegenwärtig und unvermeidbar wie
heute.

>> > Python 3.0 kommt zumindest im September raus (siehe PEP
>> > 3131).
>>
>> Py3k ist neu und nicht rückwärtskompatibel. Das findest du als
>> Beispiel relevant?
>
> Ja, natürlich. Python 2.x ist bezüglich Unicode buggy. Den
> Fehler hat man erkannt und ohne Kompromisse behoben, auch wenn
> es viele ewiggestrige Widersacher gab, und mit 2to3.py läuft
> die Konvertierung auch recht schnurrig durch und man ist die
> Altlasten los. Ich betreue momentan etwa 20-30 kSLOC Pythoncode
> und bin mit so ziemlich allen Änderungen zufrieden.

Ja, und Perl 6 bricht Kompatibilität mit Perl 5 und kann daher
diese Probleme ebenso kompromisslos beheben – was es auch tut.

> Schau dir im Gegensatz dazu LaTeX an: Die wursteln bis heute
> mit latex-ucs und diversen Kompatibilitätsproblemen herum, und
> dabei ist Textsatz in verschiedenen Sprachen gleichzeitig ein
> größeres Problem mit einer längeren Geschichte.

Ja, weil sie die Unmengen von LaTeX-Quellen die im Laufe der Zeit
geschrieben wurden weiterhin übersetzen können müssen.

So wie Perl 5 die Unmengen vorhandenen Perl 5-Codes weiterhin
schlucken können muss.

(LaTeX ist in dieser Hinsicht ganz besonders problematisch, weil
es im Prinzip nur Binärstrings kennt, die von jedem Package mehr
oder weniger beliebig selbst geparst werden können. (Das stimmt
so nicht ganz, aber grob umschrieben und unterm Strich kommt das
heraus.) Wie man aus einem derartigen Designloch jemals wieder
herausklettert, kann ich mir ehrlich gesagt nicht vorstellen.)

>> In String-Literalen kannst du beliebigen Binärmüll schreiben;
>> perl frisst dort ausnahmslos alles. In Bezeichnern hingegen
>> tut es das nicht.
>
> Es ist und bleibt ein Bug in Perl, wenn es das nicht per
> default tut.

Tatsächlich wurde auf p5p erst vor kurzem wieder darüber
diskuttiert – im Zuge eines Threads über die Tatsache, dass
das `encoding`-Pragma seinem Design nach wilde, völlig abstruse
Dinge tut und daher eigentlich abgeschafft gehört. Es könnte
sein, dass eine Lösung für Quellcode in UTF-8 ohne Deklaration
auch in Perl 5 schon möglich ist. Aber einfach ist das nicht,
unter anderem, weil keiner messen kann, wieviel Code durch eine
bestimmte Änderung denn nun wirklich zu Bruch ginge. Wenn du
einen wirklich soliden Vorschlag hast, der die existierenden
Beschränkungen erfüllt, sind die Porters sicherlich ganz Ohr.

Gruß,
-- 
Aristoteles Pagaltzis // <http://plasmasturm.org/>