Skip to main content

Questions before you try Hew

Hew has a broad language target, and v0.9.3 is a concrete compiler/runtime release. These answers separate what works now from what the language is built to reach.

Positioning

Why Hew?

Hew is for services where failure, concurrency, and protocol boundaries should be part of the language contract instead of conventions spread across libraries. Actors, supervision, wire types, and native compilation are designed together so the compiler can keep more of the system model visible.

Why not Elixir, Erlang, or OTP?

OTP remains the reference for fault-tolerant systems. Hew takes a different trade: static types, compile-time actor boundaries, protocol-aware tooling, and native LLVM output while carrying the let-it-crash lesson forward.

Related: Comparison

Why not Rust plus Tokio?

Rust plus Tokio is excellent when you want explicit ownership and an async runtime. Hew starts from a different center: actors, supervised failure, structured task scopes, and wire contracts are language features, not architecture that each project has to assemble by hand.

Why LLVM?

Hew needs a serious native backend without inventing a code generator from scratch. LLVM gives mature optimization, strong platform reach, and a well-understood IR to target. The compiler goes directly from Hew MIR to LLVM IR in Rust.

Related: Compiler docs

Readiness

Is Hew production-ready?

Hew is not production-ready yet. It is ready for experiments, local services, language evaluation, and contributors who want to work near compiler and runtime internals. For systems where downtime has business or safety consequences, the status page lays out the current boundary.

Related: Launch status

What works today?

The current release can compile and run real Hew programs with functions, types, actors, supervision, state machines, wire types, tests, a playground, and native LLVM output. The examples page shows the best entry points.

What is on the roadmap?

The roadmap tracks distributed actor ergonomics, broader protocol guarantees, package workflow, backpressure behavior, resource-lifetime hardening, and production operations. The status page tracks each one.

How does Hew handle GC, ownership, cleanup, and teardown?

Hew has no global garbage collector. Ordinary owned values release recursively, actor state remains isolated, and affine resources keep one owner. A <code>#[resource]</code> value closes automatically at scope exit; a <code>#[linear]</code> value must reach an explicit consuming action on every path.

Project scope

What does single-maintainer development mean for Hew?

Hew is currently maintained by one person. The roadmap is sized to that. Focused contributions — bug reports, documentation, examples, and scoped issues — land best; larger design work should start in an issue or discussion.

How do release versions relate to HEW-SPEC revisions?

They are independent tracks. A Hew release version names a shipped compiler/runtime/tooling bundle. A HEW-SPEC revision names language-spec history. A release can implement a spec level whose revision number does not match the release number.

Best next step

Run a small example, then keep going.