Java

Keep Docker simple, stupid!

Docker hat sich in der IT-Landschaft etabliert und wird nicht nur in Start-ups eingesetzt, sondern auch im Enterprise-Umfeld, wo Restriktionen bezüglich Security und anderer Themen der Softwareentwicklung und des Betriebs viel stärker ausgeprägt sind. Oft beeinflussen diese Restriktionen die Entscheidung für oder gegen ein Tool. Vielleicht wird Docker dort nicht sofort in Produktion eingesetzt, aber möglicherweise kann es trotzdem die Softwareentwicklung unterstützen, etwa wenn die Entwickler sich mit Hilfe von Docker lokale Testumgebungen aufbauen oder wenn Docker für ihre Integrationstests benutzt wird. Was macht den Einsatz von Docker im Enterprise-Umfeld zu einer Herausforderung?

Das Spiel mit dem Komplexitätsfeuer: KISS of Death by Complexity?

KISS ist das Motto dieser Ausgabe des Java Magazins: Keep it simple, stupid! Auf Deutsch: Mach es nicht unnötig kompliziert. Das klingt gut und erstrebenswert. Aber machen wir in der Praxis nicht eher das Gegenteil davon? Wenn man sich umschaut, dann steht uns die Komplexität bis zum Hals. Und anstatt etwas dagegen zu tun, häufen wir jeden Tag fleißig neue Konzepte, Tools und Technologien obendrauf, getrieben von immer neuen Hypes und Hoffnungen auf Patentrezepte. Zeit für eine kritische Betrachtung.

Java, Java, immer wieder Java – Top 10 der beliebtesten Themen im August

Die Übergangsjacken angezogen, die (Spring-)Boots zugeschnürt, der Herbst ist da. Mit ihm kommen natürlich wieder interessante Themen und der September bringt u.a. das Java 15 Release. Doch im August ging es – nicht nur temperaturtechnisch – heiß her: Der Duke zieht um, Angular hat eine Roadmap vorgestellt und das Nashorn hat im JDK ausgedient. Hier sind unsere Top-Themen aus dem August!

Java Magazin 10.20 erschienen: KISS – I was made for loving you, Java!

Die Liebesbeziehung zwischen einer Programmiersprache und seinem Programmierer ist unbestreitbar mit dem heiligen Bund der Ehe zu vergleichen: Für gewöhnlich schließt ein Coder diesen für sein gesamtes (berufliches) Leben. Natürlich kommt es in der modernen Softwareentwicklung zuweilen vor, dass man seine Blicke ein wenig schweifen lässt. Manch ein Java-Entwickler wurde durchaus dabei ertappt, sich mit fragwürdigen Gestalten wie JavaScript einzulassen. Die Regel ist das allerdings nicht. Ein guter Coder bleibt seiner ersten Liebe treu.

Mehr Flexibilität: Hartkodierten Code verringern

Klar, die Verwendung von hartkodiertem Code geht wesentlich einfacher von der Hand: Man muss fürs Erste weniger überlegen, da der Code nur im Hier und Jetzt läuft. Zukünftige Änderungen werden mit dieser Technik hingegen erschwert. Sobald der Code um neue Funktionen oder Datentypen erweitert wird, muss er erst überarbeitet werden. Wir zeigen, mit welchen Bibliotheken, Klassen und Techniken sich hartkodierter Code reduzieren lässt.

JEP 385: Ausbau des RMI-Activation-Mechanismus

Die Verwaltung von Stubs ist in Java nicht gerade trivial. Allerdings wird ein Tooling, welches den Export von Stubs mit einer verlängerten Gültigkeit erlaubt, selten genutzt, daher soll es aus dem JDK entfernt werden. JEP 385 sieht zunächst die Deprecation vor…

JEP 384: Records (Zweite Preview)

Java 15 wird zwar nicht das endgültige Release der Records (JEP 384) bringen, aber bereits eine zweite Preview für den neuen Klassentyp. Diese Klassentypen zeichnen sich durch eine sehr hohe Präzision aus und reduzieren die „Klasse“ auf den Zustand. Instanzfelder? Erweiterung anderer Klassen? Nicht möglich.

JEP 383: Foreign-Memory Access API (Second Incubator)

Der Zugriff auf fremden Speicher ist in Java-Anwendungen und den verwendeten Bibliotheken an der Tagesordnung. Das Foreign-Memory Access API soll diese Aktion in Zukunft deutlich erleichtern. Für Java 15 wurde zudem das neue VarHandle combinator API implementiert. Wir haben uns JEP 383 einmal genauer angesehen…

JEP 382: Neue Java-Rendering-Pipeline für macOS

OpenGL ist eine veraltete Rendering-Pipeline, die man gerade aus dem Gaming-Kontext vielleicht schon kennt. Diese soll, so Apples Wunsch, bald in den wohlverdienten Ruhestand geschickt werden. Das kommt für Java-Entwickler etwas ungelegen, weshalb nun im Zuge von JEP 382 eine neue Pipeline für macOS gesucht wird. Ursprung des Proposals ist Project Lanai.

JEP 381: Entfernung der Ports für Solaris und SPARC

Es wird düster für das Betriebssystem Solaris: Mit JEP 381 wird der Ausbau der entsprechenden Ports für Solaris und SPARC vorgeschlagen, der bereits im kommenden JDK umgesetzt werden soll. Überraschend kommt das, aus vielerlei Gründen, nicht gerade. Unter anderem deswegen, weil der Ausbau bereits seit rund einem Jahr geplant ist…

JEP 380: Unix-Domain Socket Channels

TCP/IP ist schön und gut, aber effektiver und vor allem sicherer Läuft die Interprozesskommunikation (IPC) via Unix-Domain-Sockets. Damit auch Java-Entwickler von den umfangreichen Funktionen profitieren können, wurde JEP 380: Unix-Domain Socket Channels ins Leben gerufen. Vor exotischeren und Linux-spezifischen Funktionen wird allerdings größtenteils Halt gemacht.

Schicksalsfrage: Muss es immer Java sein?

Als Programmierer versuchen wir Software zu schreiben, um unsere spezifischen Probleme zu lösen. Wo einst maschinennahe Programmiersprachen wie C++ dominierten, erhoben sich Java und dessen Sprachdesign zu einer echten Alternative. Mit der Zeit haben sich jedoch Umwelt und Erfahrung verändert. Neue Sprachen, wie z. B. Kotlin, haben sich dank Google und JetBrains in der breiten Masse etabliert. Doch vor welchen Problemen steht Java heute und wie kann Kotlin überzeugen?