Dynamische Typisierung

Ich persönlich mag ja Skriptsprachen. Wenn es irgendwie geht greife ich gerne zu Python, wenn es sein muss skripte ich aber auch in Perl oder PHP. Sprachen mit P halt. :-)

Ein Problem das ‚richtige Programmierer‘ immer wieder mit Skriptsprachen haben ist, dass die in der Regel dynamisch typisiert sind. Man muss halt nicht explizit sagen was in einer Variable stehen darf, man benutzt sie einfach.

Gerade bin ich auf ein erschreckendes Beispiel gestoßen das zeigt dass dynamische Variablen tatsächlich böse schlecht implementiert sein können. Ich war noch nie ein Freund von Javascript, aber…

rschaten% js
js> 5+2
7
js> 5-2
3
js> "5"+2
"52"
js> "5"-2
3

Schaurig, oder? 8-O

Glücklicherweise machen andere Sprachen das besser:

rschaten% python
Python 3.3.2 (default, Sep 6 2013, 09:30:10)
[GCC 4.8.1 20130725 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 5+2
7
>>> 5-2
3
>>> "5"+2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> "5"-2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'

Dass die Fehlermeldung sich hier zwischen + und – unterscheidet liegt daran dass der Operator + in Python auch für die Konkatenierung von Strings verwendet wird. Mein Vertrauen in Python besteht weiterhin… :-)

4 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

;-) :-) :-D :-| :-/ :-( :-P more »