Reducing Assumptions, Exploding Your Code

Elegant scripts We’ve all written them, they fall together perfectly, they are readable, but they assume the happy paths. And world can be a happy place, but it’s also deeply flawed, imperfect and for your code to function in such world, even add value … it must handle the imperfection. Our nice, worldly example Our script will accept an ID as an argument. It will find an API token in setup.json and make a request to download a PDF from a remote server. The name of the downloaded file is determined by the server. ...

July 3, 2026 · Janko

When if is just a function

In Python, when you write if x > 5: print("big"), you’re using special syntax baked into the language. You can’t change how if works. You can’t compose it, pipe it, or partially apply it. You can’t pass if as an argument to another function. But what if you could? What if if, for, while and even fn and var were just regular functions? In languages like REBOL, Red and Rye they are. ...

October 6, 2025 · Janko

Rye Tables vs Python/Pandas: A Different Way to Wrangle Data

If you’ve ever filtered a CSV in Pandas or written multiple nested for loops to group data in Python, you’ll probably find Rye’s take on the problem interesting. Rye is a small, homoiconic language inspired by Rebol and Factor. One of its most interesting value types is the Table. A first-class, immutable data structure for tabular data. Tables are mostly manipulated with pure, composable (endomorphic1) functions. By using Rye’s pipe and op-words, common wrangling tasks become small, chainable expressions. ...

September 10, 2025 · Janko