Show HN: Orbit a systems level programming language that compiles .sh to LLVM

New Spaceship aims to replace messy scripts — commenters see imaginary benchmarks and TODO engines

TLDR: A new language called Spaceship promises safer, faster replacements for shell scripts by compiling them to native code. Commenters love the ambition but grill the “hypothetical” benchmark, a confusing error model, and a key feature marked TODO, turning launch day into a spicy debate over hype vs. substance.

Buckle up: a dev just launched “Spaceship,” a strict, Go-flavored language that promises to turn flaky shell scripts into fast, safe, native code. The pitch is spicy — no more sketchy copy-paste commands, a clear error model tied to system exit codes, and a magic @jit switch to convert old scripts into lightning-fast programs. The crowd loves the dream… but quickly hits the brakes.

The top vibe? Skeptical excitement. One camp cheers the idea of finally upgrading brittle bash files, while the other side squints at the fine print. Critics pounced on a “hypothetical benchmark” in the readme, calling out performance numbers that aren’t real tests. Another pile-on: the error model claims success returns a non-zero number — which had folks yelling, “That’s… not how success works.” The roast continued when someone surfaced a code comment showing the star feature, the @jit translator, is literally marked “TODO.” Cue the memes about launching a rocket with no engine.

There’s humor too: a zing about “functional programming synatx” (yes, spelled like that) drew snickers, while defenders argued this is early days and big swings need time. The creator says it bridges the gap between quick hacks and serious tools. The community’s verdict? Great mission, shaky landing, and everyone’s watching to see if this ship actually flies.

Key Points

  • Spaceship is a Go-inspired, statically typed systems automation language built on LLVM to replace shell scripting.
  • It uses a strict fixed-width type system with explicit declarations (i1, i8–i128, f32/f64, u8[], fixed arrays, maps).
  • Error handling follows a !i32 contract mapping directly to POSIX exit codes and errno, using check/except blocks.
  • External commands run via a secure Process API backed by a Syscalls runtime library (fork/execve, CreateProcess) with structured arguments.
  • Execution is deferred in pipelines (.then() chaining) and the @jit directive translates shell scripts into native POSIX logic for JIT compilation.

Hottest takes

“What on earth is the value of a “hypothetical benchmark”” — bayesnet
“Thing with LLMs, they’ll tell you what a great idea and then output a design and tons of code…” — forgotpwd16
“TODO: Implement the @jit shell-to-native translation engine.” — gavinray
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.
Show HN: Orbit a systems level programming language that compiles .sh to LLVM - Weaving News | Weaving News