Projekt Java Boon: "Wie JDK 8 Streams, nur schneller"

Redaktion JAXenter

Auf Expeditionen in die freie Java-Wildbahn begegnet einem so manche bislang unbekannte Art. Dazu gehört Java Boon – zu Deutsch: Segen. Im vergangenen Jahr machte Richard Hightower aus seiner Not – dem häufigen Wechsel zwischen mehreren Programmiersprachen und deren heterogenen APIs – kurzerhand eine Tugend und rief das ehrgeizige Projekt ins Leben. Seither ist es, unter Apache-2-Lizenz auf GitHub stehend, beachtlich gediehen: Erste kleine Releases stehen zur Verfügung, und in einem aktuellen Blogpost zeigt Hightower, was es mit einer bemerkenswerten Funktion namens Boon Data Repo auf sich hat. Die In-Memory-Query-Engine kann während der Laufzeit komplexe Java-Objektsets per Indizes ausfindig machen. Java-Collections werden also wie eine Datenbank behandelt. Hightower berichtet, Boon Data Repo sei deshalb entstanden, weil er das Java 8 Stream API für zu langsam befunden habe. Allerdings sei seine Query Engine kein Ersatz für Streams und könne, ganz im Gegenteil, sogar parallel dazu verwendet werden.

Ziel des Boon-Projekts ist es, APIs zu erstellen, die den Wechsel zwischen Programmiersprachen wie Java, Groovy, Ruby und Python reibungsloser gestalten: „Less Java like APIs, and more getting things done quickly APIs“, so Hightower im Projektblog. Mit „Java-like“ ist das gemeint, was gemeinhin als „zeremoniell“ bezeichnet wird: viel Boilerplate, der die Anwendungsentwicklung bremst und wenig flexibel macht. „Low Ceremony. High Productivity“ lautet der Boon-Claim. Als kleinen Disclaimer gibt das Entwicklerteam an, dass das Projekt „opinionated“ sei, also einen ganz bestimmten – und möglicherweise eigenwilligen – Weg einschlägt, mit dem man als potentieller Nutzer einverstanden sein muss.

Boon stellt Helfermethoden bereit, mit denen sich unkompliziert Listen, Sets, Maps, Sorted Maps, Sorted Sets usw. erstellen lassen. Mit map, sortedMap, safeMap und sortedSafeMap stehen darüber hinaus Methoden zur Verfügung, die Maps und Sorted Maps erzeugen können. Utility Methods, Slice Notation und Unterstützung für Lambda-Ausdrücke gehören ebenfalls zu den frühen Features. Boon verfügt über einen eigenen JSON-Parser, der laut Benchmark bereits schneller ist als GSON und Jackson, und soll auch einen JSON-(De-)Serializer spendiert bekommen. 

Der Fokus liegt u.a. auch auf Reflection, invokedynamic und String-Manipulation. Eine Integration mit Google Guava, Spring, CDI, Guice, Struts, Wicket usw. ist nicht vorgesehen, ein Webframework aber bereits in Planung. Dieses wird voraussichtlich auf Vert.x basieren. Allerdings räumt Hightower ein, dass Boon noch eine lange Reise vor sich habe. Die aktuelle Implementierung sei noch weit von der Vision entfernt, so der Entwickler. Nichtsdestotrotz könnte es sich lohnen, das Projekt im Auge zu behalten.

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: