About Bnlang
Bnlang is a multilingual programming language and runtime created primarily for Bangladesh. It lets developers think and learn in their mother tongue—বাংলা—collaborate in Banglish, and ship in English without changing semantics, tooling, or production readiness.
People think and work across languages—learn in Bangla, discuss in Banglish, search and ship in English. Traditional languages force one surface form; Bnlang adapts to you. Teach, learn, prototype, and run in production using the script you’re most comfortable with—without forking the ecosystem or sacrificing engineering rigor.
- Onboarding speed: the same example exists in three surface forms with identical behavior—English, বাংলা, and Banglish.
- Review clarity: diagnostics and formatting keep mixed-language code legible and consistent.
- No translation tax: learn core ideas in Bangla, ship to production in English if required.
Each section explains the rationale behind language design, runtime, interop, and community. It’s written for teachers, adopters, and contributors who need to assess Bnlang for real projects.
How it works (why these choices)
We choose a pragmatic stack for Bangladesh today: fast iteration on a modern V8 runtime, clean interop with C++ for performance-critical paths, and robust libraries like libuv, OpenSSL, llhttp, and zlib—so schools and companies can adopt incrementally.
- Trilingual tokens normalized (Bangla/Banglish/English) → language-agnostic IR.
- Static checks for scope, arity, and optional type hints.
- Formatter ensures deterministic layout across scripts.
- IR → JavaScript transpilation; JavaScript executes on the Google V8 Engine.
- Module resolution via BPM + lockfiles for reproducible builds.
- Source maps and readable diagnostics for first-class debugging.
Compilation pipeline: Bnlang transpiles to JavaScript and runs on the V8 engine for execution.
- Performance-critical functions (crypto, parsing, image ops) in C++.
- Stable ABI boundary with prebuilt binaries per platform.
- FFI helpers to call system libraries safely.
Runtime Stack (under the hood)
Pragmatic, portable, and proven components for Bangladesh today.
Language design (why it feels right)
The parser accepts three surface forms; the compiler treats them equally. You teach and work in the language you think in—without a 'special mode' of code.
Accessibility for Bangladesh (why it’s a priority)
Interop & adoption (why not reinvent the world)
Governance, license & security (why you can trust it)
Roadmap (near-term priorities)
Community & Governance
Join discussions, propose RFCs, and help shape the roadmap. From documentation to core packages—every contribution matters.