Deterministic vs Probabilistic Code Generation: Why Bun's Vibe-Coded Rust Conversion Raises Red Flags

Noah Hall, writing for The Tech Enabler, draws a sharp line between deterministic and probabilistic code generation. He uses Bun's recent vibe-coded conversion of a million-line codebase from Zig to Rust as a cautionary tale. His core argument: deterministic systems produce consistent, reviewable results; LLMs introduce uncertainty that makes code review impossible at scale.
Deterministic Code Generation
Hall points to established deterministic tooling: Python's 2to3 for Python 2→3 migration, and transpilers for languages like Elm, PureScript, and TypeScript that always produce the same JavaScript. His own language Derw can output JavaScript, TypeScript, or English; Tegan outputs JavaScript or Go; Mojie targets JavaScript, Python, or English. All are based on AST-to-AST transformation — given the same input, you always get the same output. Consistency matters: "If a bug is consistent, we can fix it. If a bug is inconsistent, it becomes exponentially more difficult to fix."
Probabilistic Code Generation
LLMs vary output each run — sometimes A, sometimes B. Hall created neuro-lingo three years ago as a parody: humans write only function signatures and comments, and LLMs generate the implementation fresh each compilation. An example:
function add(a: number, b: number): number {
// Add two numbers together
}
function main() {
// Print "Hello World" to the console
// Print the result of add(2, 3)
}"Every time neuro-lingo is compiled, the code is generated from fresh by the LLMs. It's slightly different each time. Sometimes it introduces bugs. Sometimes it's clean and simple. Sometimes it's chaotic." Hall argues that fully AI-driven code flows are doing exactly this, but shipping to production with human accountability.
The "There Are Tests" Fallacy
Tests alone can't guarantee quality. Hall cites SQLite as the most tested codebase: 155.8 KSLOC of C code vs. 92,053.1 KSLOC of test code (590× more). Despite 100% branch coverage, millions of test cases, and extensive harnesses, SQLite still relies on human review. "It is not possible for a human to review 1 million lines of changes in 9 days. Bun has not reviewed the code they have merged to master."
Hall concludes that deterministic code generation still needs validation, and probabilistic generation creates risk that scales with line count. The source article goes deeper on each example.
📖 Read the full source: HN AI Agents
👀 See Also

Claude Agents on Bedrock Get Autonomous Micropayments via x402 Protocol
AWS AgentCore Payments lets Claude agents on Bedrock hold wallets and make USDC micropayments mid-task via the x402 HTTP standard, enabling autonomous paid API calls and subtask delegation without human approval.

Claude Set a Real Alarm on Android via Intent System — No Hacking, But Transparency Issues Remain
Claude AI used Android's normal intent system to create a native alarm in the Samsung Clock app. The user initially feared a breach, but it's standard app-to-app communication. The lack of upfront disclosure about device-level actions raises transparency concerns.

MiniMax M2.7 Model Shows Strong Performance as AI Coding Agent
A developer tested MiniMax M2.7 as their main AI coding agent and found it outperformed GPT 5.4 and Gemini 3.1 Pro in speed and tooling tasks, with benchmark scores of 56.22% on SWE-Pro and 57.0% on Terminal Bench 2.

Claude Code AFK Auto-Continue: Anatomy of a Misfeature
In July 2026, Anthropic shipped an easter egg in Claude Code v2.1.198: a 60-second AFK timer that auto-continues if you miss the input window. No changelog entry. Reversed in v2.1.200.