Smalltalk gegen die Speicherkriese
Smalltalk war in den 80ern - also im letzten Jahrtausend - dafür bekannt, extrem hohe Anforderungen an die Hardware zu stellen. Es brauchte eine hochauflösende Grafik (> 640x480) und viel Speicher (> 500 KB).
Für heutige Hardware sind das lächerliche Anforderungen und machen es sogar möglich mit extrem wenigen Ressourcen eine komplette grafische Umgebung auf einem einfachen SBC zur Verfügung zu stellen.
Das Problem:
Ich arbeite an einem Robotik Projekt bei dem die eigentliche Roboter Anwendung mit 4GB gut läuft. Dazu gibt es eine Webanwendung zur Konfiguration und zum Test der einzelnen Komponenten. Startet man diese Anwendung lokal wird es bereits mit 8GB sehr knapp und sehr langsam.
Speicher ist binnen weniger Monate irrwitzig teuer geworden. Die Preissteigerungen sollen/können im Markt nicht weitergegeben werden.
Was ist passiert:
Habe ich im letzten Herbst einen Raspi5 mit 16GB noch unter 120€ bekommen, kostet er jetzt 340€. Robotikprojekte verteuern sich dadurch. Zum Vergleich: vor ein paar Jahren war der state of the art Raspi ein Raspi3 für 30€. Moderne Bedienoberflächen werden gerne als Webanwendungen realisiert. Eine leicht nazuvollziehende Entscheidung. Als konsequenz braucht man eine grafische Desktop Umgebung mit einem Webbrowser und der JS Anwendung, die gerne mal etliche Bibliotheken mit einbindet. Schon braucht es gerne mal 4GB nur für eine einfache Oberfläche zur Steuerung und Konfiguration des Roboters.
Was kann ich tun:
Mit Smalltalk bekomme ich eine vergleichbare Anwendung mit 100-200 MB hin. Da bleibt auf den SBC dann noch reichlich Raum für die eigentliche Roboteranwendung. Je nach Smalltalk Variante braucht es nur ein Frmebuffer Device. Damit spart man sich schon mal die gesamte X11 und Desktop Umgebung. Smallalk hat seit Jahrzehnten seine eigene Grafik mit dabei. Es braucht also auch keinen Webbrowser Und in den 100-200 MB ist schon die ganz IDE mit Codebrowser, Testumgebung, Debugger und Profiler mit drin.
Alles was es für die Entwicklung einer grafische Roboterschnittstelle braucht.
Konsequenz:
Also mach ich wieder Smalltalk! Ich entwickle eine Smalltalk Anwendung als Ersatz für die Webanwendung auf dem Device. Dabei setzte ich auf derselben REST Schnittstelle auf, die auch die Webanwendung verwendet hat.