[Dresden-pm] Frage zur Implementation von einer Schnittstelle

Steffen Schwigon ss5 at renormalist.net
Di Nov 1 08:55:17 PDT 2011


"Steffen Winkler" <steffen.winkler at gmx.net> writes:
>> ... eine typenlose Programmiersprache ist.
>
> Das ist so nicht ganz richtig. Es werden nur die Datentypen, die es
> selbstverständlich gibt, nicht sofort statisch mit den Variablen
> verbunden, wie das in C oder Java ist.
>
> Perl hat Variablentypen $scalar, @array, %hash, ...

Das sind keine richtigen Datentypen, das sind Datenstrukturen.

Der Ärger mit Smartmatch z.B. resultiert aus diesem Unterschied
zu Perl6 zum Beispiel.


> und Datentypen numeric, string, ...

Das geht schon in die Richtung.

Aber auch die sind alle in einem Sack und casten/upgraden sich
kontextabhängig gegenseitig, so dass man nicht wirklich getypt
programmieren kann.


> Und den Kontext scalar, list, string, numeric, boolean ... gibt es
> natürlich auch noch.

Hmmmm, naja, Kontext ist ein orthogonales Konzept.


> Klar wird das, wenn man Variablen mit Devel::Peek anschaut. Das sollte
> man unbedingt!!! mal tun. Dann sieht man das sehr gut. Wenn man OO
> kennt und denkt, Variablen sind Spezialobjekte, dann trifft man die
> Realität eher.

Variablen sind Spezialobjekte. :-)


> Wenn man typlos denkt, schreibt man schnell schlechten Code. Die
> Vorteile von Perl erscheinen dann wie Nachteile.

Es erlaubt dynamischeren Code. Das sind 2 Welten.
Das ist ein Vorteil hier und ein Nachteil dort. 

Fakt ist, dass Perl 5 nativ keine getypte Sprache ist.

Wenn Perl getypt wäre, könnte ich einer Funktion f() sagen, sie liefert
Typ Int und damit in einem Ausdruck

  $x = f();

den Typ von $x (Int) zur Compilezeit bestimmen und Eingabetypen zu
anderen Funktionen prüfen, wo $x reingeht.

Mit Moose kannn man zumindest zur Laufzeit Typ-*Checks* hinbekommen,
aber auch keine Compiletime-Typ-Inferenz, AFAIK.

Syntaktisch gibt's Typdeklarationen, werden aber nicht benutzt, siehe
Reini Urban's Experimente:

  http://blogs.perl.org/users/rurban/2011/02/use-types.html


Kind regards,
Steffen 
-- 
Steffen Schwigon <ss5 at renormalist.net>
Dresden Perl Mongers <http://dresden-pm.org/>


Mehr Informationen über die Mailingliste Dresden-pm