FIXME -> Seite ist noch im Aufbau! ====== Beta-Version mit neuem Compiler und vielen Verbesserungen ====== Um den Compiler der Online-IDE zukunftsfähig zu halten und fortgeschrittene Sprachelemente von Java zu unterstützen habe ich ihn in den letzten 12 Monaten nochmals von Grund auf neu programmiert. Da sich dabei auch grundlegende Datenstrukturen und Schnittstellen stark verändert haben, musste ich auch die Laufzeitbibliothek komplett überarbeiten. Die neue Version der Online-IDE ist inzwischen schon lauffähig und recht stabil, **hat aber sicher noch einige unentdeckte Bugs**. Auch die Dokumentation zu allen neuen Funktionalitäten muss ich noch erstellen. Trotzdem möchte ich Ihnen schon jetzt die Gelegenheit geben, alles auszuprobieren. Sie finden den jeweils aktuellen Entwicklungsstand unter [[https://new.online-ide.de]]. Da diese Seite auf das selbe serverseitige Backend zugreift wie die alte Version der Online-IDE, können Sie sich mit Ihren gewohnten Zugangsdaten einloggen. \\ \\ In den nächsten Tagen werde ich noch eine Funktionalität hinzufügen, mit der Sie mir Fehler und Verbesserungsvorschläge auf einfache Art melden können. Über jede Art von Unterstützung würde ich mich freuen! ===== Unterschiede zum bisherigen Compiler/neue Features ===== * Deutlich **bessere Performance** der ausgeführten Programme (zwischen 3 und 100-mal, je nach Umfang der Verwendung der Grafikbibliothek) * Nebenläufige Ausführung mehrerer Threads * die **Java-Klassen Thread, Runnable, Semaphor** * **synchronized methods** und **synchronized blocks** * **locking**, **wait**, **notify** usw. * **Test-Runner** zur Ausführung von **JUnit-Tests** * Die Klasse **Assertions** (assert-Methoden auch im globalen Namensraum verfügbar) * **generic methods** * **anonymous inner classes**, **named inner classes** * **lambda functions** * Umfangreichere Umsetzung des **Java Collections-Frameworks** * **Exceptions** (''try...catch...finally'') * **Methodendeklarationen im Hauptprogramm** \\ (für die "spätbeginnende Informatik" in Bayern) * Grundlegende **Überarbeitung des Debuggers** * Klassen für **3D-Grafik** (noch im Aufbau) ===== Technische Details ===== === Liste von Javascript-Funktionen statt PCode === Der neue Compiler erzeugt nicht mehr PCode, sondern eine Liste von Javascript-Funktionen, die der Browser direkt ausführen kann. Dadurch ist kein Interpreter im eigentlichen Sinn mehr nötig, so dass die Ausführung der Java-Programme deutlich schneller ist als beim alten Compiler. === Speicherung von Objekten/primitiven Werten === Die Speicherung der Java-Objekte und der primitiven Datentypen wurde überarbeitet, so dass jetzt nur noch ein dünner Layer über den entsprechenden Javascript-Datenstrukturen nötig ist und weniger Speicher verbraucht wird. === Scheduler === Das Laufzeitsystem der Online-IDE verfügt jetzt über einen Scheduler, der mehrere Threads quasi gleichzeitig ausführen kann (preemtive multitasking).