JNI: Sag zum Abschied leise Servus

Vor vielen Jahren habe ich in einem Projekt einen in C geschriebenen Rechenkern in eine in Java geschriebene Webanwendung einbinden müssen. Der Rechenkern war recht komplex und über Jahre "gereift". Somit war es keine Option, ihn in Java neu zu schreiben. Die Lösung: den Rechenkern aus der Webanwendung heraus über JNI (Java Native Interface) aufzurufen – eine bis heute schmerzhafte Erinnerung.

Das Lesen und Programmieren von JNI ist sehr spröde (um es freundlich auszudrücken) und birgt zudem noch einige Gefahren.

Mit Project Panama und der neuen "Foreign Function and Memory API" hat man sich auf die Fahnen geschrieben, genau diese Sprödheit und die Gefahren beim Arbeiten mit Code und Daten außerhalb der JVM-Runtime zu umgehen.

Das hat meine Neugier geweckt. Ich möchte in diesem Vortrag gegenüberstellen, wie sich native Aufrufe mit JNI und mit der "Foreign Function und Memory API" umsetzen lassen. Ist die Sprödheit in der neuen Welt Geschichte? Kann ich jetzt wirklich gefahrlos APIs aufrufen, die nicht in Java implementiert sind und nicht in einer JVM laufen?

Ich hoffe (und glaube) am Ende der Gegenüberstellung steht ein eindeutiges "Goodbye to JNI”.

Speaker

 

Birgit Kratz
Birgit Kratz ist freiberufliche Softwareentwicklerin und Consultant mit mehr als 25 Jahren Erfahrung im Java-Umfeld. Dieses Wissen gibt sie auch als Trainerin weiter. Ein weiterer Schwerpunkt und ihre Leidenschaft liegen in der Anwendung agiler Entwicklungsmethoden und der Verbreitung des Software-Crafting-Gedankens. Seit vielen Jahren ist sie Koorganisatorin der Softwerkskammern in Köln und Düsseldorf und hilft bei der Organisation der SoCraTe- Konferenz. In ihrer Freizeit ist sie passionierte Rennradfahrerin.

betterCode-Newsletter

Du möchtest über die betterCode() Java und weitere unserer betterCode()-Events auf dem Laufenden gehalten werden?

 

Anmelden