9 Punkte von GN⁺ 2025-04-15 | 2 Kommentare | Auf WhatsApp teilen
  • Fennel ist eine Programmiersprache, die auf der Lua-Runtime läuft
  • Lua ist eine einfache und zugleich leistungsstarke Programmiersprache, die sich leicht in andere Programme integrieren lässt und Nutzern die Möglichkeit zur Umprogrammierung bietet
  • Fennel gleicht die Schwächen von Lua aus und bietet eine klarere Alternative mit weniger Fehlerpotenzial
  • Fennel verwendet eine Syntax aus der Lisp-Familie, um die syntaktische Komplexität zu verringern und die Lesbarkeit des Codes zu erhöhen
  • Fennel bietet gegenüber Lua Verbesserungen bei Variablen-Neuzuweisung, Tabellen-Notation und der Prüfung von Funktionsargumenten

Was ist Fennel?

  • Fennel ist eine Programmiersprache, die auf der Lua-Runtime läuft
  • Lua ist eine einfache und zugleich leistungsstarke Sprache, die sich leicht in andere Programme integrieren lässt und Nutzern die Möglichkeit zur Umprogrammierung bietet
  • Fennel gleicht die Schwächen von Lua aus und bietet eine klarere Alternative mit weniger Fehlerpotenzial

Vorteile von Lua

  • Lua ist eine kleine und schnelle Sprache, die aus rund 19.000 Zeilen C-Code besteht und zu 278 KB kompiliert wird
  • Sie bewahrt konzeptionelle Einfachheit und bietet zugleich leistungsstarke Funktionen
  • Sie lässt sich leicht in andere Programme integrieren und ermöglicht es Nutzern, Programme umzuprogrammieren

Zentrale Merkmale von Fennel

  • Fennel verwendet eine Syntax aus der Lisp-Familie, um die syntaktische Komplexität zu verringern und die Lesbarkeit des Codes zu erhöhen
  • Alles wird als Ausdruck behandelt; es gibt keine Mehrdeutigkeiten bei Operatorpräzedenz oder vorzeitigem Rücksprung
  • Variablen: Die Verwendung globaler Variablen wird erschwert, um Fehler zu reduzieren, und bei einer Neuzuweisung wird mit var für mehr Klarheit gearbeitet

Tabellen und Schleifen

  • Fennel verbessert die Tabellen-Notation, indem es Arrays und Schlüssel/Wert-Tabellen unterscheidet
  • In Schleifen sorgen for und each für eine klare Syntax

Funktionen und weitere Features

  • Fennel unterstützt die Prüfung von Funktionsargumenten und erzeugt einen Fehler, wenn Argumente fehlen
  • Es unterstützt Destrukturierung und Pattern Matching, wodurch sich deklarativere Bedingungen formulieren lassen
  • Es enthält ein Makro-System, mit dem sich neue Syntaxformen leicht erweitern lassen

2 Kommentare

 
GN⁺ 2025-04-15
Hacker-News-Meinungen
  • Es ist erfreulich zu sehen, dass neue Sprachen auf die Lua-Runtime abzielen

    • Ich habe kürzlich einen SSE-Server so gemacht, dass er sich mit Lua programmieren lässt
    • Ich kann Lua und die Rust-Bindings mlua-rs sehr empfehlen
  • Fennel ist gut

    • Ich habe es nicht bereut, nachdem ich meine neovim-Konfiguration auf Fennel umgestellt habe
  • Neben Forth, Lisp und Lua ist auch Tcl als kleine Embedded-Sprache erwähnenswert

    • Ab Version 8 wurde es komplexer, aber die frühen Versionen waren sehr einfach
    • Ich war so beeindruckt, nachdem ich Ousterhouts Buch gelesen hatte, dass ich es selbst implementiert habe
  • Ich verstehe den Reiz von LISPy-Sprachen nicht

    • Der Parser ist einfach und elegant, aber ich finde, Entwickler sollten den Komfort der Nutzer priorisieren
    • Das Schreiben von Code ist umständlich und hat unnötig viele Symbole
    • Eine C-ähnliche Syntax zu parsen ist nicht besonders schwierig
  • Fennels Ansatz, nach Lua zu kompilieren und dabei Metaprogrammierungsfunktionen beizubehalten, ist elegant

    • Die Syntax erinnert an Clojure, aber ohne JVM-Overhead
    • Das ist eine gute Kombination für Embedded-Systeme oder Spieleentwicklung
  • Fennel ist ziemlich gut

    • Ich wünschte, es würde graduelle Typisierung oder Typannotationen für statische Tools erlauben
    • Dynamische Typisierung ist eine legitime Wahl, aber nachdem es mehr Sprachen mit gradueller Typisierung gibt, ist es schwer zurückzugehen
  • Für Leute, die nach anderen auf Lua aufbauenden Sprachen suchen:

  • Leute, die sich über Klammern beschweren, haben wahrscheinlich nicht genug Lisp programmiert

    • Wenn man die Klammern einmal überwunden hat, kommt die Einheitlichkeit der Sprache zur Geltung, und man versteht, warum Leute Lisp mögen
  • Gut für lockere und unterhaltsame Spieleentwicklung

    • TIC-80 wird direkt unterstützt, und ein Wechsel von Fennel zu PICO-8 ist einfach
 
nemorize 2025-04-15

Der MoonScript-Link ist offenbar falsch gesetzt~
https://moonscript.org/