Immer wenn die Blätter fallen und die Schnupfenzeit naht, ist es Zeit für die "Best of Open Source Software Awards" der InfoWorld, ein Ritual unserer US-Kollegen von der InfoWorld, das die Redakteure dort liebevoll "Bossies" getauft haben. Seit nunmehr 17 Jahren wird mit den Bossies die beste und innovativste Open-Source-Software ausgezeichnet.
Prämiert wird eine erstaunlich vielseitige Mischung von Technologien. Unter den 25 Gewinnern finden sich Programmiersprachen, Laufzeitumgebungen, App-Frameworks, Datenbanken, Analyse-Engines, Bibliotheken für maschinelles Lernen (ML), große Sprachmodelle (LLMs), Tools für den Einsatz von LLMs und das eine oder andere Projekt, das über diese Beschreibungen hinausgeht.
Hier die Gewinner der Bossie Awards 2023 von der InfoWorld in alphabetischer Reihenfolge:
Apache Hudi
Um einen Data Lake oder ein Data Lakehouse zu bauen, benötigen Unternehmen eine entwicklungsfähige und anpassbare Plattform. Apache Hudi ist eine transaktionale Data-Lake-Plattform der jüngsten Generation. Sie eignet sich insbesondere für Streaming-Workloads und das Verarbeiten von inkrementellen Batch-Pipelines.
Schnelle Analysen sind wichtig, reichen aber nicht aus. Deshalb bietet Apache Hudi nicht nur ein schnelles Datenformat, Tabellen und SQL, es ermöglicht vor allem Echtzeit-Analysen bei geringen Latenzen. Die Data-Lake-Plattform lässt sich mit Apache Spark, Apache Flink sowie Tools wie Presto, StarRocks oder Amazon Athena integrieren. Kurz gesagt: Wer Echtzeit-Analysen auf einem Data Lake umsetzen will, sollte sich Hudi ansehen. (InfoWorld-Autor: Andrew C. Oliver)
Apache Iceberg
Was nützt es, wenn ein System "skaliert", aber das Ergebnis dann doch eine Ewigkeit auf sich warten lässt? Das Hadoop Distributed File System (HDFS) und Hive sind bekanntlich ziemlich langsam. Hier kommt Apache Iceberg ins Spiel, ein High-Performance-Format für große Analytics-Tabellen. Es bringt die Zuverlässigkeit und Einfachheit von SQL-Tabellen in die Big-Data-Welt und arbeitet dabei mit Hive, aber auch direkt mit Apache Spark und Apache Flink sowie mit anderen Systemen wie ClickHouse, Dremio und StarRocks zusammen.
Iceberg bietet ein leistungsstarkes Tabellenformat für diese Systeme und ermöglicht gleichzeitig eine vollständige Schema-Evolution, Datenverdichtung und einen Versions-Rollback. Iceberg ist eine Schlüsselkomponente für viele moderne Open Data Lakes. (Andrew C. Oliver)
Apache Superset
Seit vielen Jahren ist Apache Superset die Nummer eins in Sachen Datenexploration und -visualisierung. Die Anwendung kann Daten im Petabyte-Bereich verarbeiten und ist erste Wahl in vielen Unternehmen, die kunden- oder benutzerseitig Analysen in großem Umfang vornehmen. Superset setzt nahezu jedes Analyseszenario um, von Tortendiagrammen bis hin zu komplexen Geodiagrammen. Es arbeitet mit den meisten SQL-Datenbanken zusammen und bietet einen Drag-and-Drop-Builder sowie eine SQL-IDE. Wenn Sie Daten visualisieren wollen, sollten Sie sich Superset als erstes ansehen! (Andrew C. Oliver)
Bun
Bun ist ein superschnelles All-in-one-Toolkit für JavaScript- und Typescript-Anwendungen. Hier wird alles geboten, was Entwickler für Server-seitiges JavaScript brauchen: Runtime, Bundler und Paketmanager in einem Tool vereint. Bun ist als Ersatz für Node.js und NPM gedacht, arbeitet aber viel schneller. Diese simple Eigenschaft macht Bun zum super-disruptiven Tool für die JavaScript-Welt.
Einen Teil seiner Geschwindigkeit verdankt Bun dem Zig-Projekt (siehe unten), die meiste Arbeit aber hat der Urheber Jared Sumner geleistet. Anwender werden die Verbesserungen sofort auf der Kommandozeile spüren. Abgesehen von der Leistung macht die Tatsache, dass alle Tools in einem integrierten Paket enthalten sind, Bun zu einer überzeugenden Alternative zu Node und Deno. (Matthew Tyson)
Claude 2
Claude 2 ist ein Transformer-basiertes Sprachmodell von Anthropic. Es kann, vergleichbar mit ChatGPT und Google Bard, menschenähnliche Konversationen führen. Das LLM zeichnet sich dabei durch ein besonders großes Ein- und Ausgabevolumen aus. Es akzeptiert bis zu 100.000 Token (etwa 70.000 Wörter) in einem einzigen Prompt und kann Geschichten mit einigen tausend Token erzeugen.
Claude kann editieren, umschreiben, zusammenfassen, klassifizieren, strukturierte Daten extrahieren, Fragen und Antworten auf der Grundlage des Inhalts stellen und vieles mehr. Das Modell ist momentan noch vorwiegend auf Englisch trainiert und in weiten Teilen Europas nur über VPN nutzbar. Claude 2 verfügt über umfangreiche Kenntnisse der gängigen Programmiersprachen. Das Modell wurde so trainiert, dass es sich nicht so leicht zur Erzeugung anstößiger oder gefährlicher Ergebnisse missbrauchen lässt. Claude ist als kostenlose Beta verfügbar und wird von kommerziellen Partnern wie Jasper, Sourcegraph und AWS genutzt. (Martin Heller)
CockroachDB
Eine verteilte SQL-Datenbank, die stark konsistente ACID-Transaktionen ermöglicht, ist CockroachDB. Das System löst ein zentrales Skalierbarkeitsproblem für hochleistungsfähige, transaktionsintensive Anwendungen, indem es eine horizontale Skalierbarkeit von Lese- und Schreibvorgängen in der Datenbank ermöglicht. CockroachDB unterstützt Deployments in über mehrere Regionen und Cloud-Umgebungen hinweg, so dass sich Latenzzeiten reduzieren und regulatorische Vorgaben besser einhalten lassen.
Prominentes Beispiel für den Einsatz von CockroachDB ist die Netflix-Datenplattform mit mehr als 100 Cockroach-DB-Clustern, die Medienanwendungen und Device Management unterstützen. Weitere Kunden sind Hard Rock Sportsbook, JPMorgan Chase, Santander und DoorDash. (Isaac Sacolick)
CPython
Ob es um maschinelles Lernen, Data Science, Task-Automatisierung oder Web-Entwicklung geht: Es gibt viele gute Gründe, die Programmiersprache Python zu lieben. Leider gehört die Runtime-Leistung nicht dazu - aber das ändert sich gerade. In den letzten beiden Versionen, Python 3.11 und Python 3.12, hat das Entwicklungsteam eine Reihe von grundlegenden Verbesserungen an CPython, der Referenzimplementierung des Python-Interpreters, vorgestellt.
Das Ergebnis ist eine Python-Laufzeitumgebung, die für alle Nutzer schneller ist, nicht nur für die wenigen, die neue Libraries verwenden oder modernste Syntax nutzen wollen. Mit der geplanten Abschaffung des Global Interpreter Lock, einem langjährigen Hindernis für echte Multi-Thread-Parallelität in Python, wurden die Weichen für noch weitreichendere Verbesserungen gestellt. (Serdar Yegulalp)
DuckDB
OLAP-Datenbanken sind immer riesig, oder? Zumindest würde wohl niemand IBM Cognos, Oracle OLAP, SAP Business Warehouse oder ClickHouse als "leichtgewichtig" bezeichnen. Einen anderen Ansatz verfolgt DuckDB, es löst das Versprechen eines "Just-enough-OLAP" ein. Bei DuckDB handelt es handelt sich um eine Analytics-Datenbank, die embedded und in-process läuft, ohne externe Abhängigkeiten.
DuckDB gehört zu den Projekten, die ähnlich wie SQLite von einer kleinen, zielstrebigen Community mit einem unglaublichen Spirit vorangetrieben werden. Sie bietet alle wichtigen Funktionen eines relationalen Datenbankmanagement-systems (RDBMS), darunter SQL-Abfragen, ACID-Transaktionen und sekundäre Indizes. Dem fügt DuckDB noch Analysefunktionen wie Joins und Aggregate für große Datensätze hinzu. Außerdem kann sie gängige Big-Data-Formate wie Parquet einlesen und direkt abfragen. (Serdar Yegulalp)
HTMX und Hyperscript
HTMX fügt dem HTML, das wir über Jahrzehnte kennen und manchmal auch lieben gelernt haben, einige Verbesserungen hinzu, so dass es einfacher wird, moderne Webanwendungen damit zu schreiben. HTMX eliminiert einen Großteil des Standard-JavaScripts, das zum Verbinden von Web-Frontends und -Backends verwendet wird. Stattdessen werden intuitive HTML-Eigenschaften genutzt, um Aufgaben wie das Handling von AJAX-Anfragen oder das Auffüllen von Elementen mit Daten auszuführen.
Ein Schwesterprojekt namens Hyperscript führt eine HyperCard-ähnliche Syntax ein, um JavaScript-Aufgaben zu vereinfachen - einschließlich asynchroner Operationen und DOM-Manipulationen. Zusammengenommen bieten HTMX und Hyperscript eine kühne alternative Vision zum aktuellen Trend der reaktiven Frameworks. (Matthew Tyson)
Istio
Mit Istio lassen sich Container-basierte Microservices leichter vernetzen und die Kommunikation verbessern. Es handelt sich um einen Service-Mesh, der Traffic-Routing, Überwachung, Protokollierung und Monitoring bietet und dabei die Sicherheit durch Verschlüsselung, Authentifizierung und Autorisierung erhöht.
Istio trennt die Kommunikation und ihre Security-Funktionen von der Anwendung und der Infrastruktur, was eine sicherere und konsistentere Konfiguration ermöglicht. Die Architektur besteht aus einer Steuerebene, die in Kubernetes-Clustern eingesetzt wird, und einer Datenebene zur Kontrolle der Kommunikationsrichtlinien. Im Jahr 2023 verließ Istio die CNCF-Inkubationsphase und hat sich in der Cloud-Native-Community durch Unterstützung und Beiträge von Google, IBM, Red Hat, Solo.io und anderen einen Namen gemacht. (Isaac Sacolick)
Kata Containers
Kata Containers kombiniert die Vorteile eines Container-Systems mit einer einfachen virtuellen Maschine (VM). Ziel ist es, eine besonders leichtgewichtige VM zu schaffen, die in alle Richtungen kompatibel, sicher und leistungsstark ist. Die Community setzt dazu von außen auf eine starke Isolierung und von innen auf eine Hardwarevirtualisierung als zweite Verteidigungslinie.
Die sichere Container-Runtime nutzt Intel Clear Containers (Projekt für sichere Linux-Container) zusammen mit Hyper.sh runV, eine Hypervisor-basierten Laufzeitumgebung. Kata Containers lässt sich mit Kubernetes genauso wie mit Docker einsetzen und unterstützt verschiedene Hardwarearchitekturen, darunter x86_64, AMD64, Arm, IBM p-series und IBM z-series. Das Projekt wird von der OpenStack Foundation verwaltet, zu den Sponsoren gehören Microsoft Azure, Amazon Web Services (AWS), Google Cloud und Alibaba Cloud. Auch Cisco, Dell, Intel, Red Hat, SUSE und Ubuntu sind Unterstützer. (Isaac Sacolick)
LangChain
Hier handelt es sich um ein Framework, das Entwickler mit Tools versorgt, um Anwendungen auf der Grundlage von Large Language Models (LLMs) zu schreiben. LangChain gibt es erst seit Oktober 2022. Es lässt sich auch als Orchestrierungshilfe für Prompts beschreiben, die es Entwicklern leichter machen soll, Prompts intelligent miteinander zu verketten. Mit LangChain können Programmierer Agenten bauen, die größere Aufgaben in viele kleinere Teilaufgaben zerlegen, wobei Zwischenschritte definiert und Befehle miteinander verkettet werden.
LangChain-Komponenten sind zum einen modulare Abstraktionen und zum anderen Sammlungen von deren Implementierungen. Das Framework bietet auch standardisierte Ketten, bei denen es sich um strukturierte Zusammenstellungen von Komponenten handelt, mit denen bestimmte Aufgaben in der Entwicklung bewältigt werden können. Entwickler können also bestehende Ketten nutzen, anpassen sowie neue Ketten erstellen. Derzeit gibt es LangChain-Versionen in Python, TypeScript/JavaScript und Go. Zum Zeitpunkt der Erstellung dieses Artikels gab es etwa 160 LangChain-Integrationen. (Martin Heller)