[ Zu JTCEMU ]
Warum gibt es zwei Emulatoren: JTCEMU und JTCemuFX?
JTCEMU wurde mit Java entwickelt.
Die grafische Benutzeroberfläche des Emulators verwendet die
in der Java Standard Edition enthaltene Technologie AWT/Swing.
Diese Technologie ist inzwischen in die Jahre gekommen
und deckt nicht mehr alle Anforderungen ab,
die man heute an moderne grafische Benutzeroberflächen stellt.
Konkret werden Animationen, die Wiedergabe von aktuellen
Audio- und Video-Medien sowie die deklarative Beschreibung
der Oberflächenelemente nicht bzw. nicht direkt unterstützt.
Aus diesem Grund hat man die neue Oberflächentechnologie
JavaFX entwickelt, die mit Erscheinen von Java 8
im Jahr 2014 in die Java Standard Edition aufgenommen wurde.
Gleichzeitig wurde verkündet,
dass JavaFX tendenziell ein Ersatz für AWT/Swing sein soll.
Für mich war das Anlass genug,
sich mit JavaFX zu beschäftigen.
Ich habe deshalb im Jahr 2014 angefangen,
den JTCEMU-Programmcode in einen oberflächenunabhängigen Teil,
der nur Java-Basisklassen verwendet,
und in einen oberflächenabhängigen Teil,
der AWT/Swing verwendet, aufzuteilen.
Diese beiden Teile zusammen bilden die Code-Basis für JTCEMU.
Zusätzlich habe ich begonnen, parallel zum
oberflächenabhängigen AWT/Swing-Teil
eine neue Benutzeroberfläche mit JavaFX zu entwicklen.
Diese neue Oberfläche zusammen mit dem
oberflächenunabhängigen Teil bildet die Code-Basis
für einen neuen Emulator.
Da sich bei diesem nur die Benutzeroberfläche,
nicht aber der Emulatorkern geändert hat,
sollte der Name an JTCEMU angelehnt sein.
Herausgekommen ist JTCemuFX.
Die neue auf JavaFX basierte Oberfläche wurde nur für
einige der im JTCEMU enthaltenen Werkzeuge realisiert.
JTCemuFX hat deshalb gegenüber JTCEMU einen abgespeckten
Funktionsumfang.
Ebenfalls wurde auf die Emulation des Kassettenrecorderanschlusses
verzichtet, da die dort verwendete Java Sound API nicht
zu den Java Basisklassen gehört.
Eine weitere Motivation für die Beschäftigung mit JavaFX
war für mich das Projekt JavaFXPorts, welches zum Ziel hat,
JavaFX-Anwendungen auf Android und iOS lauffähig zu machen.
Damit besteht prinzipiell die Aussicht, irgendwann einmal
JTCemuFX auch auf einem Smartphone nutzen zu können.
Aus diesem Grund habe ich auch die Philosophie
der Benutzeroberfläche auf die Erfordernisse
mobiler Geräte angepasst:
Es gibt nur noch eine Ansicht (ein Fenster), in dem alles abläuft.
Auf eine Veröffentlichung von JTCemuFX hatte ich
zum damaligen Zeitpunkt verzichtet, da mir bekannt war,
dass die Z8-Emulation noch ein paar Schwächen und Fehler hat.
Diese wollte ich erst beheben.
Der Fehlerbereinigungs- und Konsolidierungsprozess
hat sich dann noch bis zum Jahr 2021 hingezogen.
Eine überraschende Wendung gab es mit Java 11.
Oracle hat JavaFX aus der Java Standard Edition wieder ausgegliedert.
Diese Technologie ist somit nicht mehr im Standard enthalten
und wird nun unter dem Namen OpenJFX als separates Projekt
von der Community weitergeführt.
Damit ist aber auch die Zukunft von JavaFX ungewiss.
Auch lassen sich mit Java 8 compilierte JavaFX-Programme
nicht einfach so mit OpenJDK und OpenJFX ausführen.
Beides, die ungewisse Zukunft und die für den unbedarften
Anwender nun vorhandenen technischen Hürden,
haben mich dazu bewogen,
die JavaFX-Schiene nicht mehr weiter zu verfolgen.
Trotzdem wollte ich meine mit JavaFX vorgenommenen Entwicklungen
der Öffentlichkeit zugänglich machen.
Aus diesem Grund gibt es nun JTCemuFX,
aber eine substanzielle Weiterentwicklung wird es wohl eher nicht geben.
Jens Müller
© 2021 Jens Müller