A Turing-incomplete stack-based notation language that makes writing configuration files intentionally difficult but fun.
WATSON is an esoteric, stack-based data notation language designed to make writing configuration files intentionally difficult but fun. It implements a Turing-incomplete virtual machine where each character is an instruction that manipulates a stack to build data structures like integers, strings, and objects. It solves the problem of boring configuration files by turning them into engaging puzzles.
Developers and hobbyists interested in esoteric programming languages, configuration file experiments, or those looking for a challenging and humorous way to define structured data.
Developers choose WATSON for its unique blend of challenge and fun, offering a deliberately cumbersome yet entertaining alternative to standard configuration formats. Its Turing-incomplete design ensures termination, while the stack-based instruction set provides a novel, puzzle-like experience.
WATSON: Wasted but Amazing Turing-incomplete Stack-based Object Notation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Transforms mundane configuration writing into a fun, challenging activity, as emphasized in the project's philosophy of making it 'hard but fun'.
Turing-incomplete by design, preventing infinite loops and ensuring all WATSON programs terminate, a key safety feature mentioned in the specifications.
Supports integers, strings, and objects built via stack operations, enabling complex structures like the Kubernetes deployment example.
Includes a CLI for encoding/decoding to/from JSON/YAML and a Go library for struct serialization, as shown in the conversion and Go examples.
Configuration files are sequences of cryptic single-character instructions, making them nearly impossible to understand or edit without tools, evident in the massive, opaque examples.
Requires understanding stack-based VM concepts and instruction remapping, which are non-intuitive and complex compared to standard formats like JSON.
Adds unnecessary complexity with no performance or functionality advantages over established formats, serving only as a novelty.