· Tarek El-Sibay · Development · 3 min read
Java 24: Anfängerfreundlicher mit Simple Source Files
Java 24 führt ein spannendes neues Preview-Feature ein, das die Sprache für Anfänger zugänglicher macht und gleichzeitig ihre Leistungsfähigkeit für erfahrene Entwickler beibehält. Mit JEP 495 wird Java zugänglicher für Anfänger durch Simple Source Files und Instance Main Methods
Die zwei Gesichter von Java
Java zeichnet sich besonders bei der Entwicklung großer, komplexer Anwendungen aus, die über Jahre hinweg von großen Teams gepflegt werden. Die Sprache bietet umfangreiche Funktionen für Datenkapselung, Wiederverwendbarkeit, Zugriffskontrolle und Modularität. Diese Eigenschaften ermöglichen es, Komponenten sauber zu strukturieren und unabhängig voneinander zu entwickeln.
Gleichzeitig soll Java auch als Einsteigersprache genutzt werden. Einsteiger beginnen aber nicht mit komplexen Teamprojekten, sondern mit kleinen, eigenständigen Programmen und alleine. Sie brauchen zunächst nur die einfachsten Grundlagen der Programmierung: Variablen, Kontrollfluss und einfache Unterprogramme.
Das Problem mit “Hello World”
Die für große Systeme ausgelegten Features erschweren Neueinsteigern den Start. Jahrelang erforderte selbst das einfachste Java-Programm erheblichen Boilerplate-Code. Hier das für Einsteiger beliebte Hello World
Dieses scheinbar simple Programm führt bereits mehrere fortgeschrittene Konzepte ein, die Anfänger zunächst nicht verstehen müssen:
- Klassen und objektorientierte Programmierung
- Zugriffsmodifikatoren (public)
- Statische Methoden
- Kommandozeilenargumente
- System-Ausgabeströme
Der neue Ansatz
Mit JEP 495 kann dasselbe Programm nun einfach so geschrieben werden:
Diese vereinfachte Syntax erreicht mehrere Dinge:
- Keine explizite Klassendeklaration mehr nötig
- Entfernt die Anforderung für den static-Modifikator
- Macht den String[] args Parameter optional
- Importiert automatisch gängige I/O-Methoden wie println()
Hauptfunktionen
1. Vereinfachte main Methode
Das JEP lockert die traditionellen Anforderungen für main-Methoden. Sie müssen nicht mehr:
- public sein
- static sein
- einen String[] Parameter haben
2. Einfache Quell-Dateien
Dateien mit Methoden und Feldern die nicht innerhalb einer class
Definition sind, erzeugen nun automatisch eine implizite Klasse, sofern sie eine main
Methode besitzt. Diese Klasse
- ist final und erweitert Object
- befindet sich im unbenannten Paket
- hat einen Standard-Konstruktor ohne Parameter
Hierbei muss man noch beachten, dass man die impliziten Klassen nicht mittels new
instanziieren kann.
3. Vereinfachte Konsolen-E/A
Gerade für Anfänger ist die Arbeit mit der Konsole in Java gewöhnungsbedürftig. Um dies zu vereinfachen, werden fünf Kernmethoden für die Konsoleninteraktion automatisch importiert:
- println(Object)
- println()
- print(Object)
- readln(String prompt)
- readln()
4. Automatischer Import vieler Utility-Klassen
Alle öffentlichen Klassen aus dem java.base-Modul sind automatisch verfügbar, wodurch häufige Imports wie java.util.List oder java.io.BufferedReader entfallen.
Warum das wichtig ist
Dieses Feature stellt eine bedeutende Änderung in Javas Ansatz für Anfänger dar. Statt Neueinsteiger zu zwingen, komplexe Programmierkonzepte von Anfang an zu verstehen, können sie sich zunächst auf die Grundlagen konzentrieren:
- Grundlegende Programmierkonstrukte
- Variablen und Kontrollfluss
- Einfache Ein-/Ausgabeoperationen
- Methodenaufrufe und Parameter
Mit wachsendem Verständnis können sie nach und nach fortgeschrittenere Features wie Klassen, Pakete und Module einbauen.
Mit dem Code wachsen
Einer der wichtigsten Aspekte dieses Features ist, dass es einen sanften Weg zum Wachstum bietet. Wenn Programme komplexer werden, können Entwickler schrittweise fortgeschrittenere Konzepte einführen. Eine einfache Quelldatei kann problemlos zu einer traditionellen klassenbasierten Datei weiterentwickelt werden, ohne ihre Kernfunktionalität zu ändern.
Verwendung des Features
Da Java 24 Stand heute noch nicht veröffentlicht wurde, kann man, sofern man sich den early-access build nicht installieren will, das Feature (bzw. das Vorgänger JEP477) in Java 23 ausprobieren. Da es sich um ein Preview-Feature handelt, muss es explizit aktiviert werden. Im Folgenden wird angenommen, dass der Code-Schnipsel in der Datei HelloWorld.java
gespeichert ist.
Oder mittels Docker und einem echten Java 24:
Ausblick
Obwohl es sich derzeit um ein Preview-Feature in JDK 24 handelt, zeigt es Javas Engagement für Weiterentwicklung bei gleichzeitiger Rückwärtskompatibilität. Es bietet einen einladenden Einstiegspunkt für neue Programmierer und behält dabei alle Stärken und Flexibilität bei, die Java erfolgreich gemacht haben.