What You Can Build
Command-line tools with System and File, native binaries with Granite, JSON APIs, reactive HTMX web apps with MummyX, and installable packages that bundle Harding code and native Nim code together.
Smalltalk feeling, modern tooling. A modern Smalltalk dialect with a stackless VM, Granite native compilation, reactive server-rendered web support, and file-based source that works well with git.
Point := Object derivePublic: #(x, y)
Point>>moveBy: dx and: dy [
x := x + dx.
y := y + dy
]
Point>>printString [
^ "Point(" & x asString & ", " & y asString & ")"
]
p := Point new.
p::x := 100.
p::y := 200.
p moveBy: 5 and: 10.
p printString println
Message sends, blocks, non-local returns, resumable exceptions, and live-editable class definitions remain central to the language.
Use the interpreter for interactive development and Granite for standalone native binaries.
Harding code lives in .hrd files. No image is required for normal development workflows.
Build web apps with the Html DSL, HTMX fragment updates, and RenderCache invalidation driven by tracked state.
Use dynamic literals like #(1, 2, 3) and #{...}, good json{...} support, direct member access with ::, & concatenation, and optional . at line ends.
Install Harding libraries with harding lib, and use a package system that can bundle native Nim code and Harding code together in one versioned unit.
Harding can be built with integrated MummyX, a fast scalable native multithreaded HTTP server written in Nim.
Harding includes GTK4 bindings so you can write native GTK applications directly in Harding.
Bona builds on the GTK integration and provides a Launcher, Workspace, Transcript, Browser, Inspector work, and an Application Builder workflow. VSCode support includes syntax highlighting, LSP, and DAP.
Command-line tools with System and File, native binaries with Granite, JSON APIs, reactive HTMX web apps with MummyX, and installable packages that bundle Harding code and native Nim code together.