mrkeyoor.com_
Tue 22 Sept 06:44 UTC
Dev Toolsevaluationupdated 22 Sept 2026

bend review

Bend 2 is a pure programming language that combines dependent types and mechanically checked proofs with compilation to C, CUDA, Metal, and JavaScript. Its central idea is that developers can state laws for behavior, require a matching proof after edits, and write divide-and-conquer code that the runtime can spread across CPU or GPU cores.

Verdict

Our Bend checkout installed 4 Bun packages in 8 seconds and used 7 MB, but it exposed no build or test target for our sandbox to run. Try Bend 2 for research, proof-backed prototypes, or a narrow invariant whose value justifies learning the type system. Do not make it the default for a production back end while its standard library, diagnostics, audit status, and tooling remain this limited.

We ran it

Lab card: what happened when we ran bend
Install✓ · 8s4 packages · 7 MB
Buildn/ano build script
Testsn/ano test script
Repo1774 files~22,735 lines of source · 74.7 MB · 0 CI workflows · tests dir

Answers from our run

Does bend build from source?

Dependencies installed in 8 seconds (4 packages), and the project has no separate build step. We cloned commit a495242 into a clean Debian container with 3 CPUs and no project-specific setup.

Does bend have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use bend?

Production back ends that need built-in TLS, HTTP, JSON, or regex today: the README says those libraries are absent and require foreign code.

What are the alternatives to bend?

Lean 4, Futhark, Idris 2. Our Bend checkout installed 4 Bun packages in 8 seconds and used 7 MB, but it exposed no build or test target for our sandbox to run.

Setup3/5Small Bun install; native and GPU toolchains add work
Docs4/5The guide is detailed, and the limitation list is unusually direct
Community5/5v2.0.25 shipped amid active September 2026 issue work
Maturity2/5Young compiler with sparse tooling and no completed audit

Discussed on

  1. hnBend 2 Is Here18 points

Who it’s for

Language researchers who want dependent types and parallel execution in the same small system.
Teams willing to formalize a few high-cost invariants instead of trying to prove an entire application.
Developers exploring CPU, CUDA, or Metal execution from one pure language.
AI coding experiments where a checked law is more useful than another natural-language instruction.

Who it’s NOT for

Production back ends that need built-in TLS, HTTP, JSON, or regex today: the README says those libraries are absent and require foreign code.
Windows teams unwilling to use WSL: native Windows is not supported.
Developers who depend on a debugger, profiler, REPL, or semantic LSP: editor support currently stops at formatting.
Numerical work that needs U64, I64, F64, or proofs about F32 behavior: the documented number types and proof limits rule those out.
Safety-sensitive teams that require an audited compiler: the README says the compiler is 99% AI-written, has not been fully audited, and does not yet match its Lean formalization.

Setup reality

Our sandbox installed 4 Bun packages in 8 seconds, using 7 MB on disk. The project lives under bend2/pack/. There was no build script or target and no test script or target, so both steps were skipped rather than passed.

Basic installation needs no account or hosted credential. Native binaries need clang 14 or newer, while ! execution needs clang 19+, Metal, or CUDA 12. Linux window and audio effects add X11 and ALSA development headers.

The README offers a one-line installer, Homebrew, and Nix, but the platform limits arrive later: there is no native Windows support, GPU work is limited to one GPU, and native compilation is described as slow. Our 74.7 MB checkout had 1,774 files, no Dockerfile, no CI workflow files, and a tests directory without a package test target.

Bend 2 joins proof obligations to parallel programs

Bend 2 asks you to describe important behavior as laws, then supply definitions that prove those laws. The same pure language compiles to C, CUDA, Metal, and JavaScript. A ! call marks work for parallel execution, while the type system tracks affine values that cannot be copied freely. This is an unusual combination: proof checking and parallel execution live in one compiler instead of separate application and verification tools.

The promise needs a tight boundary. A proof establishes the law you wrote, under the language's rules. It cannot tell you that the law captures every product requirement or that foreign C and JavaScript effects behave correctly. The guide says @unsafe recursion falls outside the proof guarantees, and host effects never enter the proof system. Bend 2 can make a precise invariant enforceable, but somebody still has to choose the invariant and review the seams around it.

Bend 2 laws demand explicit proof work

Bend 2 pairs each law with a definition of the same name, and bend PROOF.bend checks whether every claim has been filled. There are no proof tactics or proof search. Case analysis, induction, equality rewrites, and explicit witnesses are the working tools. That makes the mechanism easier to inspect, but it also moves effort into annotations and proof definitions that many application teams have never maintained.

The language makes other deliberate trades. Almost nothing is inferred, recursion must terminate unless marked unsafe, and computed matches have to be split manually. Values are affine by default, so closures, arrays, and IO handles cannot simply be shared. The README also lists only Nat, U32, and F32 numbers. F32 is axiomatic, which means floating-point properties cannot be proven inside the system. These limits may be acceptable for a proof experiment and painful in an ordinary service.

What happened when we ran it

Our sandbox installed Bend's package workspace in 8 seconds. Bun added 4 packages and used 7 MB on disk. The checkout was commit a495242, with 1,774 files, about 22,735 source lines, and 74.7 MB of repository data. The measurement setup was an unprivileged Debian container with 3 CPUs, 8 GB of RAM, no secrets, and the project located under bend2/pack/.

No build script or build target existed in that package, so the lab skipped the build step. The package also exposed no test script or test target, so tests were skipped. Those are not passing results. The repository does contain a tests directory, but our supplied commands had no package target that exercised it. We measured repository setup, not Bend program speed, proof-checking speed, CPU scaling, or GPU throughput.

Four packages hide a larger native toolchain

The 4-package install makes the JavaScript compiler workspace cheap to fetch, yet native use reaches beyond Bun. The guide requires clang 14 or newer for a binary. Programs using ! need clang 19+, Metal, or CUDA 12, and the generated GPU companion file must stay beside the binary. Linux window and audio effects require X11 and ALSA headers. There is no Dockerfile to turn those requirements into a ready image.

Bend's one-line installer is still the quickest evaluation route, with Homebrew and Nix alternatives documented in the v2.0.25 release. Platform reach is narrower than the four targets suggest. Native Windows is absent, though WSL works. JavaScript runs on one core and has no graphics or audio. A program can use one GPU, one event loop, and one generated C file, with no separate or incremental compilation. That is a research-friendly toolchain, not a drop-in service runtime.

GPU work must divide cleanly

Bend 2 does not make every function faster when you add !. The README says parallelism requires balanced calls and labels shared arrays with atomics as experimental and unsafe. Open issue 942 reports that a sequential workload sent to the GPU under Bend 2.0.23 held a Metal command buffer until the macOS watchdog killed WindowServer. The report is specific to that workload and machine, but the failure is serious enough to reproduce before trusting GPU jobs on a workstation.

The checker has young-compiler failures too. Open issue 973 demonstrates a four-line invalid program that kept one CPU core busy until the reporter interrupted it after 20 seconds. The report used Bend 2.0.25 at the same a495242 commit our lab received. This does not show that checked Bend programs can violate their laws. It does show that untrusted source can trap the checker before a useful diagnostic appears, which matters if an automated agent feeds code into it.

Release 2.0.25 is active, while audit work remains

Bend 2.0.25 was published on September 21, 2026, and the repository was pushed again that day. GitHub listed 44 open issues and pull requests, with reports and patches updated through September 22. The release fixed compiler edge cases, macOS FIFO handling, and generated C name collisions. That combination points to active maintenance rather than a dormant experiment, though the combined GitHub count should not be read as 44 confirmed bugs.

Activity cannot substitute for maturity. The README says the compiler is 99% AI-written, has not been fully audited, and differs from the Lean formalization. It also lists no test framework, debugger, profiler, or REPL, while the language server only formats code. Bend earns a trial when a small number of formal laws could prevent an expensive class of mistake. Until those gaps close, keep the trial isolated and make the proof boundary explicit.

Alternatives

ProjectWhat it isPick it when
Lean 4A programming language and theorem prover with a larger proof-oriented ecosystem.pick this instead when theorem proving, tactics, and mature proof tooling matter more than Bend's CPU and GPU execution model.
FutharkA data-parallel functional language built around compiling array programs efficiently.pick this instead when portable parallel array work is the goal and machine-checked application laws are not required.
Idris 2A pure functional language with first-class types and dependent-type programming.pick this instead when dependent types and general application programming matter more than transparent GPU parallelism.

What people are saying

  1. [github-trending] bendlang/bend
  2. [hackernews] Bend 2 and the Vibe-Coding Trap
  3. [hackernews] Bend – A language that blocks AI mistakes via proof, on CPU and GPU

Sources

  1. Bend repository and README
  2. Bend language guide
  3. Bend 2.0.25 release notes
  4. Open GPU watchdog issue 942
  5. Open checker hang issue 973

More dev tools reviews

asdf · discord.js · h4cker · 100-exercises-to-learn-rust · PhotoGIMP · mvt · the whole board →