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… :-)

Pinball Dreams

Pinball Dreams

Die Reihe wird fortgesetzt: der Scripted Amiga Emulator tut genau was der Name vermuten lässt. Er emuliert einen Commodore Amiga. Und das im Browser, implementiert in JavaScript.
Technisch sind die Amigas in den 80ern zu Hause, trotzdem beeindruckt mich insbesondere auch dieser Emulator. Bei den Dingern ist nicht nur die CPU sauber nachzubauen, da vieles durch spezialisierte Bausteine realisiert wurde. Paula, Denise und Agnus. Das kostet natürlich Ressourcen… die Emulation läuft bei mir zumindest im Firefox gerade eben erträglich schnell. Angeblich bringt Chrome mehr, aber ich bin ein Gewohnheitstier…
Einen Amiga habe ich nie selbst gehabt, aber ich kann mich lebhaft an die eine oder andere Extreme Violence Session bei einem Freund erinnern… :-D

Ich sehe in Sachen Computer gerne mal über den Tellerrand oder in die Geschichte. Einen PC zu programmieren ist ja schon spannend, eigene Programme auf einem Mikrocontroller oder einem HP-42S laufen zu lassen ist aber ein echtes Abenteuer. Sich da rein zu denken ist wie das Eintauchen in eine andere Welt.
Eine Plattform mit der ich immer schon mal spielen wollte ist die PDP-11. Ein echtes Stück Technikgeschichte. Dementsprechend begeistert sehe ich mir gerade einen Emulator an. Geschrieben in… Javascript! In dem Emulator kann man ein Unix starten und benutzen. Emuliert wird auf Hardware-Ebene, mit dem Ding sollte sich also praktisch alles machen lassen was man auch mit der originalen Maschine machen konnte. Wenn auch die Haptik natürlich fehlt…
Ein paar Widrigkeiten der Emulation klärt die FAQ, leider weiß ich aber noch nicht warum alles elendig langsam ist. Klar fühlt sich Technik aus den 70ern anders an als aktuelle, trotzdem habe ich das Gefühl dass das entweder an meiner Hardware oder — wahrscheinlicher — an meiner dünnen Leitung liegt. Ist das überall so langsam?