Gene
a Lisp-like language built around a generic "Gene" data type
Details
- External ID
- 46456870
- Source
- HN
- Company
- —
- Product
- Geneva
- Website domain
- github.com
- Launched
- Jan. 1, 2026
- Cohort
- —
- Upvotes
- 36
- Upvotes percentile
- 0.7424242424242424
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:25 p.m.
- Updated at
- Sept. 7, 2026, 9:25 p.m.
Description
Hi HN — I’ve been working on Gene, a general-purpose, homoiconic language with a Lisp-like surface syntax, but with a core data model that’s intentionally not just “lists all the way down”.What’s unique: the Gene data typeGene’s central idea is a single unified structure that always carries (1) a type, (2) key/value properties, and (3) positional children:(type ^prop1 value1 ^prop2 value2 child1 child2 ...)The key point is that the type, each property name, each property value, and each child can themselves be any Gene data. Everything composes uniformly. In practice this is powerful and liberating: you can build rich, self-describing structures without escaping to a different “meta” representation, and the AST and runtime values share the same shape.This isn’t JSON, and it isn’t plain S-expressions: type + properties + children are first-class in one representation, so you can attach structured metadata without wrapper nodes, and build DSLs / transforms without inventing a separate annotation system.Dynamic + general-purpose (FP and OOP)Gene aims to be usable for “regular programming,” not only DSLs:* FP-style basics: fn, expression-oriented code, and an AST-friendly representation* OOP support: class, new, nested classes, namespaces (still expanding coverage)* Runtime/tooling: bytecode compiler + stack VM in Nim, plus CLI tooling (run, eval, repl, parse, compile)Macro-like capability: unevaluated args + caller-context evaluationGene supports unevaluated arguments and caller-context evaluation (macro-like behavior). You can pass expressions through without evaluating them, and then explicitly evaluate them later in the caller’s context when needed (e.g., via primitives such as caller_eval / fn! for macro-style forms). This is intended to make it easier to write DSL-ish control forms without hardcoding evaluation rules into the core language.Optional local LLM backend via llama.cppI also added an optional local LLM backend: Gene has a genex/llm namespace that can call local GGUF models through llama.cpp via FFI (primarily because I wanted local inference without external services).Repo: https://github.com/gene-lang/geneI’d love feedback on:* whether the “type/props/children” core structure feels compelling vs plain s-exprs,* the macro/unevaluated-args ergonomics (does it feel coherent?),* and what would make the project most useful next (stdlib, interop, docs, performance, etc.).
Enrichment
- Theme
- developer tools and programming utilities
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- lisp-like programming language
- Manually corrected
- False
Could you build this?
Partial A simple Lisp tree evaluator is relatively easy to script, but implementing a novel core data type runtime with proper memory semantics and homoiconic evaluation requires solid language design knowledge.
What it would actually take: Built as an interpreter or runtime in Rust, C, or Java implementing a custom AST parser and evaluator around a custom composite data structure. The hard part is defining consistent evaluation semantics, scoping, macro hygiene, and performance optimization for a non-standard list/map hybrid data model, which requires formal language runtime architecture expertise.
Discussion
No comments on this launch.
Competitors
Other products that read as similar to this one — 107 launches clear the similarity bar, closest 8 shown.
Attention rank: #35 of 108 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 64 days after the earliest competitor.
- Genotype: language that compiles to idiomatic TS, Rust and Python · hn · 2026-09-08 · 9 upvotes · similarity 0.49
- A systems language with runtime reflection and no GC · hn · 2025-12-15 · 6 upvotes · similarity 0.49
- Fuse · hn · 2026-08-02 · 121 upvotes · similarity 0.46
- AttaLambda: a language where types and data are made of untyped lambdas · hn · 2026-09-14 · 44 upvotes · similarity 0.46
- Lambda 0.2 · hn · 2026-03-24 · 9 upvotes · similarity 0.44
- Phage Explorer · hn · 2026-01-31 · 127 upvotes · similarity 0.44
- The Taka Programming Language · hn · 2025-12-03 · 12 upvotes · similarity 0.41
- Han · hn · 2026-03-14 · 208 upvotes · similarity 0.41
Other launches for this product
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.