The Hank Philosophy: Beyond Scripting
Hank is a purely symbolic, instruction-oriented embeddable language designed for secure orchestration and automation. It provides an air-gapped environment perfect for plugin systems and API interfaces, replacing static configuration with predictable, keyword-less logic.
Standard languages (Python, JS, Lua) come with a "worldview"—they bring their own math, their own I/O models, and their own opinions on how things should work. Hank brings nothing but a syntax. The Host provides the world.
1. The Symbolic Shift: Vocabulary over Grammar
In a traditional language, you spend months learning the grammar (operators, keywords, standard libraries). In Hank, the grammar is intentionally "flat." There are no binary operators to memorize and no reserved keywords for values.
The shift: Instead of learning a language, the user learns your API’s Vocabulary.
- To a DevOps engineer, Hank is a Cloud Orchestration language.
- To a Data Scientist, Hank is a Query language.
- To a Game Designer, Hank is a Quest system.
By stripping the language of its own identity, it takes on the identity of the system it is embedded in.
2. Native Tasks as "Serverless" Endpoints
Every NativeTask registered in the Runner acts as a secure, high-performance API endpoint. Because Hank is purely symbolic, the script can never "break out" of the sandbox. It can only call the actions the Host explicitly maps.
This makes Hank the ultimate integration layer. You can expose complex, dangerous native capabilities (like raw socket access or filesystem manipulation) through a set of "Safe Tasks" that validate every move before it hits the CPU.
3. The Infinite Bridge (Opaque State)
One of Hank’s most powerful features is the Opaque value. It allows the Host to hand the script a "Handle" to a complex internal object—a database connection, a TLS socket, or a Docker container—without the script ever needing to know the object's structure.
The script can pass these handles between tasks, store them in variables, or return them, but it can never "look inside." This preserves Opaque Integrity: the Host keeps its secrets, and the script keeps its simplicity.
4. Domain Consistency over Portability
Most languages strive for "Universal Portability" (Run anywhere, do the same thing). Hank strives for "Domain Consistency."
We don't want a script that controls a robot to work on a web browser—that would be nonsensical. Instead, we want the behavioral logic to be identical. If you know how to call a task in Go, you know how to call it in Rust, Haxe, or TypeScript. The Engine is portable; the Environment is specialized.
5. The API Multiverse
When you plug Hank into your application, you aren't just adding a "plugin system." You are creating a Custom API Multiverse.
Want to extend your app? Don't build a new UI or a complex JSON schema. Just register a new NativeTask. The "language" automatically gains that power. Want to expose your service to users? Give them a Hank Runner. They get a professional-grade, high-performance interface with a near-zero learning curve.
Hank isn't designed to replace Python or JavaScript. It's designed to replace the messy, fragile, and inconsistent "Configuration Glue" that holds modern systems together.