Pseudocode
that runs.

PUBLIC PREVIEW · v2026.07.04

An object-oriented language that reads like the math on your whiteboard. Fewer tokens for humans and models alike.

demo.w
1# Currency and percentages 2price = $499.99 3 4<< price - 15% # => ≈$424.99 5<< price - 15% + 8.25% # => ≈$460.05 6 7# Units of measurement 8c = 299_792_458 m/s 9m = 1 kg 10 11<< e = m·c² # => ≈8.988×10¹⁶ J 12 13<< 3 ft + 12 in # => 4 ft 14<< 10 ft * 10 ft # => 100 ft² 15<< 2 m + 2 lbs # => error: dimension mismatch
Why Tungsten

No ends. No braces.
Just the algorithm.

Write code that looks like your writeboard.

💰

Tungsten Makes Cents

First-class support for dollars, cents, and percentages. No more money bugs from floats.

<< $3.50 - 25¢ # => $3.25
📐

Units of Measurement

Meters, feet, kilograms - with automatic conversion and dimensional analysis. Mismatched units caught at compile-time.

<< 1 cm * 1 cm * 1 cm # => 1 cm³
🎯

Decimals by Default

3.14 is an exact decimal, not an IEEE float. Approximation is opt-in with ~ — so the default never surprises your accountant.

exact = 3.14 # Decimal
approx = ~3.14 # Float
See it in Action

Examples

In the repo, check out doc/examples.

A Touch of Class

Define a class with +, a method with ->, and output with <<.

Arity after the slash defines anonymous arguments.

Instance variables are assigned in the constructor with @. The ro suffix makes them read-only.

The prime notation (x') refers to the same-named property on the argument: x - x' means "my x minus their x."

Δx compacts it further.

point.w
1+ Point 2 -> new(@x, @y, @z) ro 3 4 -> distance/1 5 dx = x - x' 6 dy = y - y' 7 dz = z - z' 8 9 (dx.sq + dy.sq + dz.sq).sqrt 10 11 # or, if you prefer 12 -> distance/1 13 (Δx² + Δy² + Δz²) 14 15<< Point(3, 4, 0).distance(Point(0, 0, 0)) # => 5
Comparison

Less ceremony,
more clarity

Side-by-side with the languages you know.

Feature Tungsten Python Ruby
Output << x print(x) puts x
Class + Point class Point: class Point...end
Method -> distance/1 def distance(self, other): def distance(other)...end
Map list/sq [x**2 for x in list] list.map { it ** 2 }
Generics Complex<f64> (monomorphized) complex (boxed) Complex (boxed)
GPU kernel @gpu fn — in the language CUDA / Triton DSL FFI to C
Interpolation "[name]" f"{name}" "#{name}"
Block ending (dedent) (dedent) end
74
W
tungsten183.84
m.p. 3695 K

Element 74: born on 7/4

Tungsten is made in America - my semiquincentennial gift to you.

element 74 version 2026.07.04 ships 07·04

W · 183.84 u · m.p. 3695 K · version 2026.07.04

Ecosystem

Toolchain

Tools, packages, and documentation designed with the same care as the language itself.

Bit Package Manager

Find, install, and share Tungsten packages. Dependency resolution, semantic versioning, and the package layout are part of the preview toolchain.

Explore packages

Specification 2026.07.04

The language specification: lexical structure, semantics, floating-point math modes, units of measurement, and the WValue encoding.

Read the spec

REPL wit

An interactive REPL that plots. Type ? Σ(2x⁷ + 3x²) and get a rendered curve in your terminal — then scrub coefficients live with the arrow keys, ∫ shades the area under it.

Meet wit — watch a real session

Community GitHub

Questions, ideas, and collaboration. File issues, start design discussions, and follow the preview work in the open.

Join the discussion

Start writing Tungsten

Install in seconds. Write your first program in minutes.
Fall in love before your mid-afternoon coffee.

$ curl -fsSL https://tungsten-lang.org/install | sh
✓ stage 1 ≡ stage 2 — the compiler reproduces itself
✓ linked ~/.local/bin/tungsten
$ echo '<< "Hello, W!"' > hello.w
$ tungsten hello.w
Hello, W!

Public preview · macOS (Apple silicon) & Linux · requires clang/LLVM · Metal GPU features require supported macOS and Apple hardware