If you know Python, C, or Rust
Buraaq is meant to feel like Python in the file and C in the binary.
From Python
| Python | Buraaq |
|---|---|
name = "Ada" | name = "Ada" |
def add(a, b): | fn add(a: int, b: int) -> int |
for x in xs: | for x in xs { } |
from x import y | unique std.* auto-import; use sibling.item for your files |
| CPython + GC | LLVM native, no GC |
venv | buraaq.pkg + a binary |
| wheels | hashed .bur ships |
You keep the readability. You lose the GIL and the pause. Native AOT is the default; optional scripting compiles the same language with clang for a fast loop, not a second dialect.
From C / C++
Headers disappear. File = module. […] / { "k": v } instead of malloc/free in safe code. none instead of null. raise / ? / ?? instead of errno you forgot to check. unsafe is still there when you need MMIO. Gate B vs -O2 is measured: performance.
From Rust
Ownership is real. You do not write 'a. Most borrows are inferred. mut name = instead of let mut. No mod.rs. Unique std names import themselves. Async is opt-in. One CLI.
Honest grain
Buraaq 1.0 is native. Gate B vs C++: integer_sum is 0.00× at n=1e8; worst case 1.02× on fib_iter. Stream, Gfx, Hold, and Grid are in the stdlib. spawn is an OS thread; mutex and channel send/recv are real (cancel is next). Packages resolve from in-tree packages/index.json; a hosted packages.buraaq.dev is next, not required. Read Systems and modules before you bet a driver on it: then write the sketch.
