Franz
Franz ist eine funktionale, prototyporientierte Programmiersprache mit knapper Syntax und Unterstützung für native Kompilierung via LLVM IR.
Was ist Franz?
Franz ist eine funktionale, interpretierte, dynamisch typisierte Allzweck-Programmiersprache mit knapper Syntax und einer umfangreichen Standardbibliothek. Ihr Kernzweck ist die Unterstützung funktionaler Programmiermuster bei gleichzeitiger Bereitstellung von Werkzeugen zur Effektverwaltung und vorhersagbaren Ausführung.
Das Projekt wird als prototyporientierte Sprache mit capability-sicheren Effekten und deterministischem Replay vorgestellt, einschließlich „strictly no side effects“ (mit einer explizit genannten Ausnahme für IO). Es umfasst außerdem einen Weg von der Quelle zu nativen ausführbaren Dateien über LLVM IR.
Wichtige Funktionen
- Funktionaler Kern mit prototyporientierten Objekten: Verwendet eine kleine funktionale Basis plus prototyporientierte Objekte zur Modellierung von Verhalten, während die Sprache auf funktionale Konstrukte ausgerichtet bleibt.
- Capability-sichere Effekte mit deterministischem Replay: Entwickelt, um Effekte aus importierten Franz-Dateien zu lokalisieren und zu steuern.
- Streng keine Seiteneffekte (mit IO-Tabellen-Ausnahme): Das Sprachmodell vermeidet Seiteneffekte, mit Ausnahme eines explizit erwähnten IO-Mechanismus.
- Native Kompilierung über LLVM IR: Unterstützt die direkte Kompilierung zu nativen ausführbaren Dateien mit LLVM IR.
- Listenliterale und LLVM-Listenoperationen: Enthält Listenliterale wie
[1, "hello", 3.14]und verschachtelte Listen, sowie Operationen wiehead,tail,cons,empty?,length,nthundis_list. - Vergleichs- und Mathematikprimitive für gängige Typen: Bietet Gleichheits- und Ordnungsoperatoren (
is,less_than,greater_than) für Ganzzahlen, Fließkommazahlen und Zeichenketten, plus Mathematikfunktionen wieremainder,power,random,floor,ceil,round,abs,min,maxundsqrt. - Kontrollfluss und mustersimilaren Bedingungen: Bietet
if/when/unless-Konstrukte und „cond chains“ für mustersuchartige Mehrwegverzweigung. - Lexikalisches Scoping mit schnappschussbasierten Closures: Implementiert lexikalisches Scoping, wobei Closures Variablen aus ihrer Definitionsumgebung erfassen; unterstützt beliebig tief verschachtelte Closures.
- Capability-basiertes Sandboxing für importierten Code: Verwendet sandboxierte Ausführungsmuster über
use_with()und Effektlokalisierung überuse_as()und Punktnotation (wie im Repository-Text beschrieben).
Wie man Franz verwendet
- Klonen oder Öffnen Sie das Franz-Repository und prüfen Sie die enthaltene
README.mdund Beispieldateien (zum Beispielexamples/mult-table.franzundexamples/game-of-life.franz). - Prüfen Se
Alternativen
- Funktionale Programmiersprachen mit starken Typsystemen (z. B. Sprachen der ML-Familie): Wenn Sie hauptsächlich eine funktionale Syntax mit## Alternativen
- Funktionale Programmiersprachen mit starken Typsystemen (z. B. Sprachen der ML-Familie): Wenn Sie hauptsächlich eine funktionale Syntax mit vorhersehbarem Scoping und Closures wünschen, aber keine LLVM-basierte native Kompilierung als Schwerpunkt benötigen.
- Prototypbasierte Sprachen (z. B. JavaScript mit funktionalen Mustern): Nützlich, wenn Ihr Interesse an prototyporientierter Objektmodellierung liegt, obwohl sich Workflow und Effektmodell von Franz unterscheiden.
- Allgemeine kompilierte Sprachen mit funktionalen Merkmalen (z. B. Sprachen, die über LLVM kompilieren): Wenn Sie LLVM-IR-Kompilierung und funktionale Konstrukte wünschen, aber ein Ökosystem mit anderer Syntax und anderen Laufzeitkonventionen bevorzugen.
- Skriptsprachen für Prototyping mit Sandboxing-Ansätzen: Wenn Ihre Priorität schnelles Experimentieren mit kontrollierter Ausführung ist (das Repository diskutiert capability-basierte Sicherheitsmuster), können Sie eine andere Laufzeit mit eigenen Sandbox-Mechanismen wählen.
Alternativen
AakarDev AI
AakarDev AI ist eine leistungsstarke Plattform, die die Entwicklung von KI-Anwendungen mit nahtloser Integration von Vektordatenbanken vereinfacht und eine schnelle Bereitstellung und Skalierbarkeit ermöglicht.
Arduino VENTUNO Q
Arduino VENTUNO Q ist ein Edge-AI-Computer für Robotik und physische Systeme: KI-Inferenz mit Microcontroller für deterministische Steuerung. Entwickeln in Arduino App Lab.
Devin
Devin ist ein AI-Coding-Agent für Softwareteams: unterstützt Parallelisierung von Migrations- und Refactoring-Subtasks, während Engineers steuern und Änderungen freigeben.
BenchSpan
BenchSpan führt KI-Agent-Benchmarks parallel aus, erfasst Scores und Fehler in einer geordneten Run-Historie und macht Ergebnisse commit-gebunden reproduzierbar.
open-codex-computer-use
open-codex-computer-use: Open-Source „Computer Use“-Service als MCP-Server, um GUI-Aktionen auf macOS, Linux und Windows auszuführen.
Codex Plugins
Mit Codex Plugins bündelst du Skills, App-Integrationen und MCP-Server zu wiederverwendbaren Workflows und erweiterst Codex für Tools wie Gmail, Google Drive und Slack.