JVM

Deep Learning: Training von TensorFlow-Modellen mit JVM-Sprachen

Zwar gibt es mit Frameworks wie DL4J mächtige und umfangreiche Machine-Learning-Lösungen für die JVM, dennoch kann es in der Praxis vorkommen, dass der Einsatz von TensorFlow notwendig wird. Das kann beispielsweise der Fall sein, wenn es einen bestimmten Algorithmus nur in einer TensorFlow-Implementierung gibt und der Portierungsaufwand in ein anderes Framework zu hoch ist. Zwar interagiert man mit TensorFlow über ein Python API, die zugrunde liegende Engine jedoch ist in C++ geschrieben. Mit Hilfe der TensorFlow-Java-Wrapper-Bibliothek kann man deshalb sowohl Training als auch Inferenz von TensorFlow-Modellen aus der JVM heraus betreiben, ohne auf Python angewiesen zu sein. So können bestehende Schnittstellen, Datenquellen und Infrastruktur mit TensorFlow integriert werden, ohne die JVM zu verlassen.

Java zu statisch? So wird Java dynamischer!

Obwohl Javas strenges Typsystem Entwicklern dabei hilft, Fehler beim Coden zu vermeiden, beschränkt es natürlich auf der anderen Seite deren Flexibilität, die die Nutzung von dynamischen so attraktiv macht. In seiner Session von der W-JAX 2018 gibt Rafael Winterhalter, Software Consultant bei Scienta, eine Einführung in die Codegenerierung zur Laufzeit und erklärt, wie man dies auf der Java-Plattform nutzen kann.

Java in der Cloud: Raus mit dem Alten und rein mit dem Neuen

Im Laufe des letzten Jahres hat sich in Java, der JVM und dem Java-Ökosystem einiges getan. Doch es gibt noch so viel mehr zu tun, sagt Steve Poole (IBM) und zeigt in seiner Session von der W-JAX 2018, die wirtschaftlichen und technischen Kräfte, die die Entwicklung von Java vorantreiben. Außerdem wagt er einen Blick über den Tellerrand und erklärt, wie sich Java für die Cloud bereitmacht.

Groovy vs. Kotlin – Die JVM-Sprachen im Vergleich

Die JVM ist ein großer Spielplatz, auf dem sich deutlich mehr Sprachen tummeln, als einzig und allein Java. Zwei bekannte Vertreter dieser JVM-Sprachen sind Groovy und Kotlin. Doch welche der beiden JVM-Sprachen ist die bessere? In ihrer Session auf der W-JAX 2018 wagen Jochen Kraushaar und Matthias Merdes den Vergleich. Sie sprechen über die Vor- bzw. Nachteile der Sprachen und zeigen ihre Unterschiede auf.

Consumer-driven Contracts mit Spring

In verteilten Systemen müssen Komponenten über externe Schnittstellen kommunizieren. Consumer-driven Contracts stellen einen speziellen Fall von Integrationstests dar. Sie ermöglichen es, bereits in der Entwicklung Schnittstellenverträge abzusichern, ohne dabei die beteiligten Services starten und End-to-end-Tests durchführen zu müssen. Für Spring-Entwickler stehen mit Pact JVM und Spring Cloud Contract gleich zwei Frameworks zur Verfügung, um solche Tests umzusetzen. Dieser Artikel soll bei der Entscheidung helfen, welches Framework man einsetzen möchte.

Ktor 1.0 ist erschienen

Das JetBrains-Team hat vor Kurzem eine Vorabversion des neuen Frameworks Ktor veröffentlicht. Dieses wird verwendet, um asynchrone Server und Clients mithilfe von Kotlin in vernetzten Systemen zu erstellen. Nun ist Ktor 1.0 erschienen. Mit ihm Gepäck sind Koroutinen für asynchrone Anwendungsfälle und eine eigene DSL.

Java Annotation Processing: Das könnte auch ein Computer erledigen

In den Tiefen der Java-Werkzeugkiste der unbekannten Tools liegt die Annotation Processing API. Sie hilft bei vielen Anforderungen auf elegante und flexible Art weiter. Dazu gehören zum Beispiel die Verwendung und Erzeugung von Immutables, von statischen Metamodellen und natürlich auch die Prüfung eigener Annotationen.

Performance auf der JVM: Überblick über CDS, AppCDS und AOT

Eine gute Frage in einem Einstellungsgespräch ist immer noch, warum denn Programme auf der JVM eine recht ordentliche Performance aufweisen, obwohl nur mit Bytecode und nicht mit Maschinencode gearbeitet wird. Wer diese Hürde mit Leichtigkeit genommen hat, dem werden in diesem Artikel weitere Möglichkeiten des JDK verraten, mit denen Oracle versucht, die Leistung der JVM zu verbessern.

Machine Learning für Java: Deeplearning4j landet bei der Eclipse Foundation

Machine Learning ist eines der Trendthemen schlechthin. Während viele ML-Projekte die Programmiersprache Python nutzen, ist eine Unterstützung für Java bislang eher rar gesät. Doch das könnte sich bald ändern: Das Projekt Deeplearning4j stellt weitreichende Deep-Learning-Funktionalitäten für Java zur Verfügung und hat das Potenzial, sich unter dem Dach der Eclipse Foundation zu einem Magneten für angegliederte ML-Libraries und Tools zu entwickeln. Chris Nicholson, CEO von Skymind und Schöpfer von Deeplearning4j, stellt in diesem Artikel das Deeplearning4j-Ökosystem vor.