Write it like a sentence.
Run it like bytecode.
Borax reads almost like English and compiles straight to its own
Borax Virtual Machine bytecode — no generated Java source, no
javac step in between. Source goes in, a portable
.bxc file comes out.
From .bx to compiled bytecode, in four honest steps
No hidden Java hand-off. Every stage is a real pass the compiler makes over your program.
Preprocess
Comments stripped, indentation measured — the shape of the program is settled first.
Parse
An indentation-aware statement tree is built, then checked: no nested functions, no dangling run targets.
Compile
The tree is emitted directly to .class bytecode via ASM — no intermediate Java source ever exists.
Emit
Classes are serialized straight to a single .bxc bytecode file — no jar, no loose .class files, nothing else needed to run it.
It's almost English on purpose
A function, a variable, a loop — no braces to balance, no semicolons to chase.
function age: set age to value "18" set age to be global say age // run it run age
> borax run main.bx compiling main.bx -> .borax\tmp\main.bxc 18 process exited normally
Enough language to actually build something
Project-local imports
import pkg.util.bx; pulls in another script in the same project, resolved by the Package Path Server. Prefix with @ to make it optional.
Native JSON & NBT
Parse and query JSON on top of Gson, or read and write a minimal built-in NBT-style binary format — both first-class statements, not a library bolt-on.
Language Server
borax lsp -start runs a project-scoped LSP over a local socket, so editors can autocomplete every importable .bx path.
One-command packaging
borax package compiles every script under src/main/borax/ and lays resources on top, ready to zip into a .bar archive for distribution.
Timestamped error logs
Every syntax, compile, or runtime error is written to its own log file, and the console tells you exactly which one to attach to a bug report.
No JDK required
The Windows installer bundles its own minimal Java runtime. Install Borax, not a JDK.
Where Borax sits next to Java, Python, and JavaScript
Not a replacement for any of them — a different trade-off: closer to plain English, and closer to the metal than a scripting language.
| Java | Python | JavaScript | Borax | |
|---|---|---|---|---|
| Syntax style | Braces, semicolons | Indentation, English-ish keywords | Braces, semicolons | Indentation, almost-English sentences |
| Execution model | Compiled to JVM bytecode | Interpreted (CPython bytecode) | JIT-interpreted in an engine | Compiled directly to its own BVM bytecode |
| Compile step | javac required |
None | None | Built in — source to bytecode in one pass, no javac |
| Distributable unit | .class / .jar | .py source or a bundled interpreter | .js source | .bxc compiled bytecode, bundled into a .bar archive for a whole project |
| Variable declaration | int age = 18; |
age = 18 |
let age = 18; |
set age to value "18" |
| Runtime needed on target machine | JRE/JDK | Python interpreter | A JS engine (browser or Node) | None — the Windows installer bundles its own |
| Best fit | Large, typed, long-lived systems | Scripting, data work, glue code | Browsers and Node servers | Small JVM-hosted programs written in plain, readable steps |
Borax runs on the JVM like Java, but nothing about writing it looks like Java — that's deliberate.
What the installer expects
Borax ships as a self-contained Windows installer — its runtime is bundled inside, so there's nothing else to install first.