Die Überschrift sagt schon alles: In diesem Beitrag geht es darum, Programme mit Java 11 und JavaFX in der IntelliJ IDEA unter Linux zu entwickeln. Als Testumgebung dienten Ubuntu 18.10 und Fedora 29. (Unter Ubuntu 18.04 stehen noch immer keine offiziellen Java-11-Pakete zur Verfügung.)
Alle Beiträge von Michael Kofler
Fedora 29
Fedora 29 bietet im Vergleich zur Vorgängerversion die üblichen Software-Updates, aber nur wenige tiefgreifende Neuerungen:
-
Der Bootprozess sollte nun auf manchen Rechnern vollkommen ohne Bildschirmflackern verlaufen. Das setzt aktuell allerdings voraus, dass UEFI sowie ein Intel-Grafiksystem genutzt wird, siehe auch Announcing flickerfree boot for Fedora 29.
-
Das in Version 28 für Fedora Server eingeführte Modularity-Prinzip steht nun standardmäßig auch in der Desktop-Variante zur Verfügung. (Wie ich in meinem Blog-Beitrag zu Fedora 28 berichtet habe, konnten modularisierte Pakete mit
dnf install fedora-repos-modular
auch schon in der Desktop-Version 28 genutzt werden. Dass dieses Paket nun standardmäßig installiert ist, ändert nichts daran, dass das Angebot an modularisierten Paketen weiterhin sehr klein ist. Der praktische Nutzen dieses Konzepts ist für Fedora ohnedies gering, weil die Distribution eine kurze Lebensdauer hat. Wirklich spannend werden modularisierte Pakete wohl erst in RHEL 8 bzw. CentOS 8.)
»Python Grundkurs« erschienen
Selten ist mir ein Buch derart gut von der Hand gegangen wie der soeben erschienene Python Grundkurs:
Die Idee für das Buch hatte ich eigentlich schon vor drei Jahren. Dass das Buch gerade jetzt zustande kam, haben Sie — zugegebenermaßen etwas überraschend — Apple zu verdanken: Eigentlich wollte ich über den Sommer an der Neuauflage meines Swift-Buchs arbeiten. Aber dann hat Apple verkündet, dass Swift 5 erst 2019 fertig würde. Die so entstandene Lücke in meinem Kalender habe ich mit vielen Radtouren gefüllt. Außerdem habe ich auf 460 kompakten Seiten die Grundelemente der Programmiersprache Python zusammengefasst.
Ein Loblied auf Python
Python ist eine ungemein elegante Programmiersprache. Mit Python verfasster Code ist in der Regel kompakter und leichter zu lesen als bei vielen anderen Sprachen. Weil zudem der Overhead einer kompilierten Sprache entfällt, kommt Python Einsteigern besonders entgegen. (Persönlich bin ich der Meinung, das Python als First Programming Language viel besser geeignet wäre als Java oder C#. Diese beide Sprachen dominieren zumindest im deutschen Sprachraum den Unterricht in den ersten Semestern.)
Die Einfachheit von Python schränkt aber keinesfalls seine Anwendung ein:
- Dass Python universell für alle erdenklichen Aufgaben geeignet ist, liegt an seinem Modulkonzept: Im Internet finden Sie Tausende kostenlose Erweiterungen. Die Installation solcher Module und ihre Integration in eigenen Code sind ausgesprochen einfach.
-
Python ist auch im (natur)wissenschaftlichen Sektor sehr beliebt — aktuell ganz besonders im Bereich der künstlichen Intelligenz. Mit keiner anderen Sprache kommen Sie mit derart wenig Code ans Ziel. Python ist ideal zum Experimentieren geeignet, wenn konkrete Ergebnisse und nicht der perfekte Code im Vordergrund stehen.
-
Zur Popularität von Python hat natürlich auch der Raspberry Pi beigetragen. Trotz vieler Alternativen ist Python die bevorzugte Programmiersprache der Maker-Gemeinde.
Lassen Sie sich von meiner Begeisterung für Python anstecken! Wenn Sie Python kennenlernen möchten, bietet mein Grundkurs mit vielen Übungsaufgaben (natürlich samt Lösungen) einen idealen Startpunkt.
»Markdown und Pandoc« erschienen (2. Aufl.)
Zu meinen ersten »eigenen« E-Book-Veröffentlichungen zählte das Buch Markdown und Pandoc. 2017 habe ich den Verkauf eingestellt, weil mehrere Kapitel des E-Books total veraltet waren. Jetzt habe ich endlich Zeit gefunden, das E-Book gründlich zu aktualisieren.
Ubuntu 18.10
Ubuntu 18.10 ist das erste von drei Zwischen-Releases auf dem Weg hin zur nächsten LTS-Version, also zu Ubuntu 20.04. Insofern spricht Ubuntu 18.10 nur Benutzer an, die bereit sind, in einem halben Jahr das nächste Update bzw. die nächste Neuinstallation durchzuführen — sprich Linux-Fans/Freaks.
Der Lohn für die ständigen Updates: Man ist ganz vorne dabei, wenn es darum geht, neue Features auszuprobieren. Der Benchmark-Experte Michael Larabel (phoronix.com) erwartet von Ubuntu 18.10 zudem deutlich mehr Performance, besonders im 3D-Grafik/Gaming-Bereich. Auch ein neues Notebook zwingt mitunter zum Einsatz einer Nicht-LTS-Version: Aktuelle Treiber versprechen eine höhere Kompatibilität zu modernen Hardware-Komponenten.
Java 11
Mit Java 11 liefert Oracle endlich, was sich viele Entwickler vor einem Jahr erwartet hatten: eine stabile Java-Version mit Langzeitwartung (LTS = Long Time Support). Unter diesem Gesichtspunkt kann man Java 9 und Java 10 eigentlich nur als öffentliche Betas betrachten, bereits nicht mehr gewartet und aus heutiger Sicht obsolet.
An sich wäre das alles in Ordnung, wenn Oracle diesen Release-Prozess ehrlich und früh genug kommuniziert hätte …
Update 24.10.2018: Ich habe das Kleingedruckte in der Support-Dokumentation von Oracle bisher zu ungenau gelesen. Java 11 ist eine LTS-Version — aber nur für zahlende Oracle-Kunden. Ohne Vertrag gibt es von Oracle überhaupt keine LTS-Version von Java mehr! (Quelle 1, Quelle 2) Wer nicht zahlt, muss alle sechs Monate ein Versions-Update mitmachen oder auf von der Community gewartete Java-Releases auf OpenJDK-Basis ausweichen.
Swift 4.2
Zusammen mit Xcode 10 wird in den nächsten Tagen Swift 4.2 freigegeben. Entwickler mit einem Apple-Developer-Zugang können den Goldmaster von Xcode 10 bereits jetzt herunterladen, alle anderen werden das Update in ein paar Tagen über den App Store automatisch erhalten.
Apple weicht mit dem Release vom bisher jährlichen Major-Release-Zyklus ab. Swift 5 soll es erst im Frühjahr 2019 geben. (Voraussichtlich ein bis zwei Monate später wird es dann vorauss. auch die Neuauflage meines Swift-Buchs geben.)
»Docker« und »Raspberry Pi« erschienen
Vergangene Woche sind gleich zwei neue Bücher erschienen. Ein vollkommen neuer Titel ist Docker: Bernd Öggl (der bei diesem Buch der Hauptautor ist) und ich stellen in diesem Buch die Container-Software Docker vor und zeigen anhand diverser Beispiele viele Einsatzmöglichkeiten. Zielgruppe des Buchs sind Software-Entwickler und Administratoren.
Das Buch Raspberry Pi hat bereits die fünfte Auflage erreicht. Das Konzept des Buchs ist unverändert geblieben. Die Inhalte sind aber im Hinblick auf die neuen Raspberry-Pi-Modelle 3B+ und Zero WH aktualisiert, außerdem berücksichtigt das Werk nun durchgängig die aktuelle Raspbian-Version »Stretch«. Neue Abschnitte/Kapitel gehen auf das Erweiterungs-Board Sense HAT und auf den Werbeblocker Pi-Hole ein.
Subiquity 18.04.1
Seit zwei Tagen ist das erste Service-Update von Ubuntu 18.04 verfügbar. Geändert hat sich (außer den üblichen Updates) nichts. Wenn Sie Ubuntu 18.04 installiert haben und alle Updates durchgeführt haben, dann zeigt /etc/os-release
jetzt Version 18.04.1.
cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
...
Der springende Punkt dieses Minor-Updates besteht darin, dass bei dieser Gelegenheit auch neue Installations-Images erstellt wurden. Das erspart einerseits riesige Updates unmittelbar nach der Installation und gibt Canonical andererseits die Möglichkeit, Probleme im Installer zu beheben. Bei den gewöhnlichen Desktop-Images (Installationsprogramm »Ubiquity«) gibt es hier keine sichtbaren Änderungen, ebensowenig im von Debian übernommenen traditionellen Server-Installationsprogramm (Download-Seite).
Große Änderungen hat es dagegen beim relativ neuen Server-Installationsprogrammm (»Subiquity«) gegeben (Download-Seite) — und davon handelt dieser Beitrag.
Vapor 3
Vapor ist ein Swift-Framework zur Programmierung von Server-Anwendungen. Zwar ist es möglich, damit z.B. auch einen eigenen Webserver zu gestalten, in der Praxis werden mit Vapor aber überwiegend REST-APIs implementiert.
Derartige APIs können testweise unter macOS laufen; für den Praxisbetrieb kommt dann zumeist ein eigener Ubuntu-Server oder eine entsprechende Cloud-Instanz zum Einsatz.
Als ich im August 2017 für meinem Buch Swift 4 ein Kapitel über Vapor verfasste, dachte ich, in ein paar Wochen würde die aktualisierte Version Vapor 3 fertig werden, die dann (vollständig) Swift-4-kompatibel wäre. Da habe ich mich gleich in zweierlei Hinsicht getäuscht: Zum einen dauerte die Fertigstellung von Vapor 3 bis Mai 2018. Zum anderen war es kein kleines Update, sondern weitestgehend eine Neuimplementierung dieses Frameworks.