Show HN: SFX – A language where 0.1 and 0.2 = 0.3 and Context is first-class

Human-first coding drops: cheers, eye-rolls, and emoji math

TLDR: SFX promises “human-first” coding: math that matches expectations, emoji counted properly, and context modes with auto-updating data. The thread split between applause for polish and blunt dismissals, with a serious worry that hidden context switches could make debugging messy—sparking a lively old-school vs new-school debate.

Meet SFX, a “human-first” language promising honest math (yes, 0.1 + 0.2 = 0.3), emoji counted as one character, and lists that start at 1. It even lets objects change behavior by flipping “situations” like Admin Mode, and keeps numbers auto-updated with reactive observers. Devs on GitHub drop JIT speed claims, while the crowd drops opinions.

On one side, the confetti cannons: “This looks surprisingly fleshed out. Well done!” cheered keepamovin. Another builder, dunham, congratulated the team, linked their own language Newt, and urged them to try Advent of Code to battle-test the ideas.

On the other, the popcorn flew: nubg slammed, “this is pointless, stop wasting time,” sparking a classic Hacker News grudge match—innovation vs pragmatism. The spiciest debate: context-specific execution. iroddis praised the vision but warned that invisible mode switches could make debugging a nightmare: the Admin toggle might live far away from where permissions break.

Memes rolled in fast: folks joked that “finally 0.1+0.2 = 0.3” will heal decades of developer trust issues, while 1-based lists reignited ancient indexing wars. Whether SFX is the next big thing or a shiny detour, it definitely got the room talking—and arguing—in glorious emoji-aware fashion.

Key Points

  • SFX is a beginner-friendly, context-oriented programming language emphasizing arbitrary precision math, 1-based indexing, and no null values.
  • The language implements JIT compilation via Cranelift, triggering after 100 calls and claiming 2–5x performance gains.
  • Reactive “When” observers automatically maintain data consistency, updating dependent fields when source values change.
  • Context-oriented programming allows objects to change behavior based on active Situations, such as AdminMode altering permissions.
  • The standard library supports data parsing (JSON, XML/XPath, HTML/CSS, CSV, TOML) and networking (HTTP, WebSocket), and the project builds with Rust 1.75+.

Hottest takes

"this is pointless, stop wasting time" — nubg
"This looks surprisingly fleshed out. Well done!" — keepamovin
"I’d find context-specific execution hard to follow and debug" — iroddis
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.