Scott McKinney Manifold Systems

Java schließt mit Manifold die Lücke zu vielen Funktionen, die bisher ausschließlich dynamischen Sprachen vorbehalten waren. Darüber hinaus liefert Manifold diese Eigenschaften mit intakter Typsicherheit. Metaprogrammierung, Extension Classes und strukturelle Typisierung sind leicht verfügbar und vollständig in IntelliJ IDEA integriert.

Manifold wirkt extraterrestrisch. Das Framework ermöglicht Entwicklern, das Typsystem von Java dynamisch und nahtlos zu erweitern. Wir untersuchen die neuartige Technik und beobachten, wie Manifold die Java-Entwicklung attraktiver und produktiver macht.

So futuristisch das „Einsatzprotokoll“ auch erscheint, es entspricht zu 100 Prozent den Tatsachen. Manifold ist real und als Open-Source-Projekt von Manifold Systems verfügbar; ob es sich dabei um eine rekonstruierte Alien-Technologie handelt, muss noch geklärt werden. In jedem Fall können Sie Manifold mit Ihrem neuen oder bestehenden Java-Projekt nutzen.

Die Verwendung ist einfach: Fügen Sie das Framework einfach als Abhängigkeit zu Ihrem Projekt hinzu. Manifold wurde entwickelt, um mit IntelliJ IDEA zu arbeiten, das frei von JetBrains erhältlich ist. Weitere Informationen zur Verwendung von Manifold mit Ihren Projekt- und Build-Werkzeugen finden Sie in der Set-up-Anleitung für Manifold. Das Framework bietet drei wichtige Features:

  • Typsichere Metaprogrammierung: vergleichbar mit F#-Type-Providern
  • Extension Method: vergleichbar mit dem gleichen Feature in Kotlin und C#
  • Strukturelle Typisierung: ähnlich wie Interfaces in TypeScript und Go

Typsichere Metaprogrammierung

Metaprogrammierung ist ein Begriff, der normalerweise für dynamische Sprachen wie JavaScript, Ruby und Python reserviert ist. Dabei handelt es sich um ein mächtiges Feature für die dynamische Typerstellung, das die fehlende Typsicherheit zur Designzeit in diesen Sprachen ausnutzt – denn sämtlicher Hokuspokus um die Metaprogrammierung ist ein Laufzeitphänomen. Obwohl sie ein flexibles Konzept ist, stellt Metaprogrammierung eine Herausforderung für Programmierer dar, da es keine Typinformationen zur Designzeit gibt, die leicht zu entdecken und verwenden wäre; dabei muss man sie nur kennen.

Der Reiz von Manifold liegt in der Fähigkeit, sowohl Kompilier- als auch Laufzeitmetaprogrammierung durchzuführen. Diese Fähigkeit wird über Type Manifolds (Typverteiler) erreicht. Das sind Java-Projektionen schematisierter Datenquellen, die als Brücke zwischen den Welten der Information und der Programmierung dienen. Genauer gesagt transformiert ein Type Manifold eine Datenquelle in einen Datentyp, auf den der Java-Code direkt zugreifen kann, ohne Build-Schritt oder zusätzliche Kompilierungsartefakte. Kurz gesagt: Mit Manifold ist eine Datenquelle ein Datentyp.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 2.19 - "Moderne Frontend-Architektur"

Alle Infos zum Heft
579872088Manifold: Nicht von dieser Welt
X
- Gib Deinen Standort ein -
- or -