Benutzer-Werkzeuge

Webseiten-Werkzeuge


javaonline:new_version

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
javaonline:new_version [2024/09/12 08:49] – [Unterschiede zum bisherigen Compiler/neue Features] martinjavaonline:new_version [2025/01/07 11:02] (aktuell) – [Unterschiede zum bisherigen Compiler/neue Features] martin
Zeile 1: Zeile 1:
 FIXME -> Seite ist noch im Aufbau! FIXME -> Seite ist noch im Aufbau!
  
-====== Beta-Version mit neuem Compiler und weiteren Verbesserungen ======+====== Beta-Version mit neuem Compiler und vielen Verbesserungen ======
 <WRAP center round info 80%> <WRAP center round info 80%>
-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 Klassen/Methoden der API sind noch nicht alle fertig. 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. \\ \\  +Um den Compiler der Online-IDE zukunftsfähig zu halten und fortgeschrittene Sprachelemente von Java zu unterstützen habe ich ihn 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 sehr stabil, **hat aber sicher noch ein paar unentdeckte Bugs**. 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 Zugangsdaten einloggen und finden ihre Workspaces wie gewohnt vor. \\ \\  
-In den nächsten Tagen werde ich noch eine Funktionalität hinzufügenmit der Sie mir Fehler und Verbesserungsvorschläge auf einfache Art melden können. Über jede Art von Unterstützung würde ich mich freuen!+</WRAP> 
 + 
 +==== Meldung von Fehlern ==== 
 +<WRAP center round tip 80%> 
 +Falls Sie Fehler finden würde ich mich freuenwenn Sie sie mir melden könnten. Sie haben zwei Möglichkeiten: 
 +  * Falls Sie einen GitHub-Account haben, können Sie [[https://github.com/martin-pabst/Online-IDE-new-compiler/tree/main|im Repository ein issue erstellen.]] Bitte fügen sie ggf. den exportierten Online-IDE-Workspace hinzu. 
 +  * Innerhalb der Online-IDE gibt es jetzt den Menüpunkt Hilfe -> Fehler melden. 
 +Über jede Art von Unterstützung würde ich mich freuen!
 </WRAP> </WRAP>
  
 ===== Unterschiede zum bisherigen Compiler/neue Features ===== ===== Unterschiede zum bisherigen Compiler/neue Features =====
   * Deutlich **bessere Performance** der ausgeführten Programme (zwischen 3 und 50-mal, je nach Umfang der Verwendung der Grafikbibliothek)   * Deutlich **bessere Performance** der ausgeführten Programme (zwischen 3 und 50-mal, je nach Umfang der Verwendung der Grafikbibliothek)
-  * Nebenläufige Ausführung mehrerer Threads+  * Nebenläufige Ausführung mehrerer Threads ([[api:documentation:threads:start|Dokumentation hier]], [[https://www.learnj.de/1213/doku.php?id=parallelism:start|Skript für Q12 hier]])
     * die **Java-Klassen Thread, Runnable, Semaphor**      * die **Java-Klassen Thread, Runnable, Semaphor** 
     * **synchronized methods** und **synchronized blocks**     * **synchronized methods** und **synchronized blocks**
     * **locking**, **wait**, **notify** usw.     * **locking**, **wait**, **notify** usw.
-  * **Test-Runner** zur Ausführung von **JUnit-Tests**+  * **Test-Runner** zur Ausführung von **JUnit-Tests** [[api:documentation:junit:start|(Dokumentation hier)]]  
   * Die Klasse **Assertions** (assert-Methoden auch im globalen Namensraum verfügbar)   * Die Klasse **Assertions** (assert-Methoden auch im globalen Namensraum verfügbar)
   * **generic methods**   * **generic methods**
   * **anonymous inner classes**, **named inner classes**   * **anonymous inner classes**, **named inner classes**
   * **lambda functions**   * **lambda functions**
-  * Umfangreichere Umsetzung des **Java Collections-Frameworks** +  * Umfangreichere Abdeckung des **Java Collections-Frameworks** 
   * **Exceptions** (''try...catch...finally'')   * **Exceptions** (''try...catch...finally'')
-  * **Methodendeklarationen im Hauptprogramm** \\ (für die "spätbeginnende Informatik" in Bayern) +  * **Methodendeklarationen im Hauptprogramm** \\ (für die "spätbeginnende Informatik" in Bayern, [[unterschiede_zu_java:start#hauptprogramm|Dokumentation siehe hier]]
-  * Grundlegende Überarbeitung des Debuggers +  * Grundlegende **Überarbeitung des Debuggers** 
-  * Klassen für 3D-Grafik (noch im Aufbau)+  * Klassenbibliothek fürs Zentralabitur in Nordrhein-Westfalen 
 +  * Klassen für **3D-Grafik** (noch im Aufbau)
  
 ===== Technische Details ===== ===== Technische Details =====
Zeile 33: Zeile 41:
 === Scheduler === === Scheduler ===
 Das Laufzeitsystem der Online-IDE verfügt jetzt über einen Scheduler, der mehrere Threads quasi gleichzeitig ausführen kann (preemtive multitasking).  Das Laufzeitsystem der Online-IDE verfügt jetzt über einen Scheduler, der mehrere Threads quasi gleichzeitig ausführen kann (preemtive multitasking). 
 +
 +=== Import der Javascript-Bibliotheken ===
 +Die Javascript-Bibliotheken werden ab jetzt alle als ECMAScript 6-Module nachgeladen. Dies erleichtert das Einbinden der Embedded-IDE in bestehende Seiten.
 +
 +=== Kapselung der css-Klassen ===
 +Die Online-IDE hatte bisher viele css-Klassen als Bezeichner im globalen Namensraum, insbesondere auch in der Embedded-Variante. Diese wurden jetzt auf ein Minimum reduziert, daher gibt es ab jetzt weniger Nebeneffekte, wenn die Embedded-IDE in bestehende Seiten eingebunden wird.
 +
 +=== Unit-Tests zur Qualitätssicherung des Compilers ===
 +Ein großer Teil der Funktionalität des neuen Compilers wird jetzt durch automatisierte Unit-Tests qualitätsgesichert, [[https://github.com/martin-pabst/Online-IDE-new-compiler/tree/main/src/test/java| siehe hier]]. 
javaonline/new_version.1726130966.txt.gz · Zuletzt geändert: 2024/09/12 08:49 von martin