lume

01 — Survey: what every language got right, what it got wrong, what Lume takes

Format for each entry:

Primary influences (★ in the catalog) get full entries. The rest are grouped, shorter, but every language in the catalog is covered.


Part I — Primary influences

Machine code & Assembly ★

Good

Bad

Lume takes

FORTRAN ★

Good

Bad

Lume takes

LISP ★

Good

Bad

Lume takes

COBOL ★

Good

Bad

Lume takes

ALGOL 60 ★

Good

Bad

Lume takes

Simula → Smalltalk → OOP ★

Good (Simula)

Good (Smalltalk)

Bad

Lume takes

BASIC ★

Good

Bad

Lume takes

Pascal / Turbo Pascal / Delphi ★

Good

Bad

Lume takes

C ★

Good

Bad

Lume takes

Prolog ★

Good

Bad

Lume takes

ML / OCaml / Standard ML / Haskell ★

Good

Bad

Lume takes

SQL ★

Good

Bad

Lume takes

Modula-2 / Oberon ★

Good

Bad

Lume takes

dBase / Clipper / FoxPro / Harbour ★

Good

Bad

Lume takes

Ada ★

Good

Bad

Lume takes

C++ ★

Good

Bad

Lume takes

Erlang / Elixir ★

Good

Bad

Lume takes

Perl / Bash / shell ★

Good

Bad

Lume takes

Python ★

Good

Bad

Lume takes

Lua ★

Good

Bad

Lume takes

Ruby ★

Good

Bad

Lume takes

Java ★

Good

Bad

Lume takes

JavaScript / TypeScript ★

Good

Bad

Lume takes

Delphi / Object Pascal — see Pascal ★. Additional take: properties, events as first-class, components (a UI library that composes), and fast native compile of a GUI app as a benchmark Lume must meet.

Harbour ★ — see dBase/Clipper. Additional take: Harbour proves the xBase community still exists in 2026; Lume should offer a migration path (an xbase compatibility library and a translator for Clipper/Harbour code) to inherit that community.

Cyclone → Rust ★

Good (Rust)

Bad

Lume takes

Go ★

Good

Bad

Lume takes

Nim ★

Good

Bad

Lume takes

Clojure ★

Good

Bad

Lume takes

Kotlin ★

Good

Bad

Lume takes

Swift ★

Good

Bad

Lume takes

Julia ★

Good

Bad

Lume takes

Elm ★

Good

Bad

Lume takes

Zig ★

Good

Bad

Lume takes

Mojo ★

Good

Bad

Lume takes

Solidity ★ (as a cautionary tale)

Good: made programmable money accessible; showed that a language can define an economic platform. Bad: billions of dollars lost to reentrancy, integer overflow, visibility defaults, delegatecall, and a JS-like syntax that gave false confidence. Language design mistakes have a dollar value. Lume takes: when the stakes are high, the language must make the wrong thing impossible (checked arithmetic by default, explicit visibility, no reentrant default, linear/resource types for assets — see Move).


Part II — Grouped influences (every other language in the catalog)

Early and historical (Plankalkül, Short Code, Autocode, Speedcoding, FLOW-MATIC, IPL, ALGOL 58, MAD, JOVIAL, CPL, PL/I, ALGOL 68, ALGOL W, BCPL, B, Mesa, CLU, Icon, Vulcan)

APL / J / K / Q / MATLAB / R / NumPy lineage

SNOBOL / awk / sed / Perl / regex / Tcl / REXX / HyperTalk / AppleScript

Forth / PostScript / Factor / stack languages

MUMPS / Pick / Progress ABL / Informix-4GL / Natural / PowerBuilder / Magic / Clarion / DataFlex / Omnis / 4D / FileMaker / Access VBA / Paradox / RPG / ABAP / PL/SQL

Eiffel / Design by Contract / Dafny / SPARK / Whiley / F* / Lean / Rocq / Agda / Idris / ATS / Isabelle / TLA+ / Alloy

Occam / CSP / Linda / Oz / Pict / Join / Cilk / X10 / Chapel / Fortress / Akka / Pony / Lingua Franca / Verse / Bend

Haskell’s children and effect systems: Koka, Eff, Frank, Effekt, Flix, Unison, PureScript, Roc, Gleam, Elm

Smalltalk’s children and live programming: Self, Squeak, Pharo, Io, Dylan, Hazel, Dark, Scratch, Processing, Max/MSP, LabVIEW, Excel

Enterprise and VM languages: C#, F#, Scala, Groovy, Dart, Hack, Vala, Haxe, Boo, Nemerle, Crystal, D, Carbon, Hylo/Val, Vale, Austral, Odin, Jai, Hare, C3, V, Inko, Cppfront, Circle

Web and config languages: PHP, ActionScript, CoffeeScript, XSLT, CSS, HTML templates, JSON/YAML/TOML, CUE, Dhall, Jsonnet, Nickel, Pkl, HCL, Nix, Guix, Starlark, Dockerfile, Kubernetes YAML

AI and probabilistic languages: Planner, OPS5, CLIPS, Drools, OWL, SOAR, Church, Stan, Pyro, PyMC, Gen, Lush, Torch, Theano, TensorFlow, PyTorch, Jax, Swift for TensorFlow, Zygote, Dex, Enzyme, Myia, DiffTaichi, ONNX, LMQL, Guidance, DSPy, SGLang, BAML, Nengo, Lava, Brian2, NEST

OS and embedded languages: Mesa/Cedar, Lisp machines, Oberon System, Singularity/Sing#, Midori, House, Redox/Theseus/Tock (Rust), seL4, Nix again, Arduino/MicroPython/TinyGo, Forth firmware

Esoteric languages (Brainfuck, Whitespace, INTERCAL, Malbolge, Piet, Befunge, LOLCODE, Rockstar…)


Part III — The scoreboard

What each pillar of Lume owes to whom, in one table:

Lume feature Primary source Secondary sources
Indentation syntax, readability Python Pascal, Nim, COBOL (readability), Ruby
Ownership + borrowing, no GC Rust Cyclone, Clean (uniqueness), Hylo (value semantics), Pony
rc/arc shared tier, optional @gc region Swift (ARC), Nim (ORC) Koka (Perceus), D
Error unions ! E, ?, defer/errdefer Zig, Rust Go (explicit errors), Swift
T? optionals, ?., ?? Kotlin, Swift ML (Option), Haskell (Maybe)
ADTs + exhaustive match ML, Rust Haskell, Prolog (patterns), Scala
Traits with associated types/defaults Rust, Haskell Swift protocols, Go (structural), Julia (multiple dispatch)
Structured concurrency, scope, channels, select Kotlin, Go Trio, Swift, Occam/CSP, Erlang
Actors + supervisors Erlang/Elixir Pony, Akka, Orleans
comptime Zig D (CTFE), Nim, C++ constexpr, Jai
Hygienic AST macros Nim, Rust Lisp/Scheme, Julia, Elixir
record, table, query, index, relation dBase/Clipper/FoxPro, SQL C# LINQ, MUMPS (persistent globals), 4GLs, Datalog
decimal(p,s) COBOL C#, dBase, PL/SQL
Range/refinement types, sets, enums Pascal, Ada Idris/Dafny (refinements), F# units
Contracts + gradual proof Eiffel, Ada/SPARK, Dafny Lean, F*, Whiley
Effect system Koka, Effekt Nim (effects), Haskell (monads, as the thing to avoid), Roc (platforms)
Tensor shapes in types, autodiff, kernel, model Dex, Jax, Swift for TensorFlow, Mojo Futhark, Halide, Triton, Julia/Zygote, Enzyme, FORTRAN (arrays)
LLM calls as typed functions, rules DSPy/BAML/LMQL, OPS5/CLIPS Prolog, Drools
Probabilistic primitives Church/Gen/Stan/Pyro  
Capability types, freestanding, interrupt/realtime effects seL4, Austral, Move, Rust kernels Oberon, Singularity, Lustre, Ada
C interop by importing headers, cross-compile everywhere Zig Rust (bindgen), Nim
Unified tooling (lume build/fmt/test/doc/pkg/repl/prove) Cargo/Rust, Go Elm (semver enforcement), Nix/Unison (content-addressed store), Deno (permissions)
Config = restricted Lume Zig (build.zig), Nix, Starlark, CUE  
Fast debug compilation, REPL, live reload Turbo Pascal, Lisp, Smalltalk Go, Dart, Erlang
Error messages as a product Elm, Rust  
Typed holes, liveness Hazel, Smalltalk Idris, spreadsheets
Tiny verified core Scheme, Brainfuck (minimalism), Oberon Lean, seL4
Size budget, remove features Go, Oberon PL/I and C++ as warnings

Next: 02-principles.md turns this scoreboard into rules the design must obey, and 05-vision.md is the out-of-the-box part — what a language for the AI era that can build an operating system and a neural system should look like.