Rye is a dynamic, homoiconic language inspired by Rebol, Factor, Shell, and Go. Its main claim is that you can have a flexible syntax while being strict about state: more about its principles If you haven’t already, be sure to first read PART 1 before reading part 2 below. For intro to language with more explanation visit Meet Rye. If you want to see it use in practice the Cookbook. This document is about compact code with minimal prose. So let’s go for it… ...
80% of Rye in 20% of the Time [1/3]
Rye is a dynamic, homoiconic language inspired by Rebol, Factor, Shell, and Go. Its main claim is that you can have a flexible syntax while being strict about state. Rye has no Null, is constant by default, treats everything as an expression, has no keywords, and every active element is a function. Words are evaluated in a hierarchy of contexts… more about its principles But all this has already been described in multiple places. Here, we try to teach quickly by showing compact, practical code with minimal commentary. So let’s dive in… ...
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. ...
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. ...
Working on a Programming Language in the Age of LLMs
genie I’ve been working on Rye since 2018. It’s a project of joy — but also because I believe there is a potential to create something of value to others, eventually. Even people living under a rock know we’ve entered the age of LLMs. I don’t jump to ships too soon, but eventually, even I had to admit: code can get generated from prompts. And in many situations — with a smart prompter — the results are quite OK. ...
See yourself, at runtime
Below are 3 examples, that show some of the principles of working with Rye language. But first, some terminology. Code is data / data is code Definition: A language is homoiconic if a program written in it can be manipulated as data using the language. Lisps, schemes, REBOL and Rye are homoiconic, but what does this actually benefit us? After two decades of programming in such languages, it’s hard to answer this quickly. After a while, you don’t think about or even notice the homoiconicity, it just seems the way things should be anyway. Try asking a fish to sell you on the idea of living in water. ...
Go's concurrency in a dynamic language Rye
The Rye programming language is a dynamic scripting language based on REBOL’s ideas, taking inspiration from the Factor language and Unix shell. Rye is written in Go and inherits Go’s concurrency capabilities, including goroutines and channels. Recently, Rye gained support for Go’s select and waitgroups. Building blocks Goroutines Goroutines are lightweight threads of execution that are managed by the Go/Rye runtime. They operate independently, allowing multiple tasks to run concurrently without blocking each other. ...
Talking in Rye over Telegram
Telegram is a popular messaging app that offers a variety of solid clients and features, including chatbots. In this blog post, we will explore how to create a Telegram chatbot that we can communicate with, in Rye language - yeah, we’re fans :=). Starting with an Echo Bot Our first step in creating a Telegram chatbot will be to create a simple Echo bot. An Echo bot simply echoes back whatever message it receives. This is a good starting point for learning how to create more complex bots. ...
Hello world
Hello to new Ryelang blog. We’ve been blogging about Rye development for more than 3 years on blogspot so far. Let’s hope this move will mean the positive next step! ...