Rye Language
ryelang.org · Company blog · on HN since 2023
The Rye language blog covers the Rye programming language, with posts on its design, contexts, tables, and GUI examples.
What HN saysHN links it for the language's design and its 'Cognitive Dark Forest' essay; commenters list it among dynamic languages with first-class tables.
21HN people shared it
9linked it in comments
29stories submitted
522story points
2 months agolast shared
2023people per year2026
Most-shared posts
- 1Rye Language7 people · 111 points · first shared 2023 · 56 comments on HN
- 2If either4 people · first shared 2024
- 3First Class Contexts – Rye Language3 people · 59 points · first shared 2024 · 8 comments on HN
- 4When if is just a function2 people · 116 points · first shared 2025 · 104 comments on HN
- 5GUI Examples – Rye Language2 people · 73 points · first shared 2024 · 41 comments on HN
- 6Rye Tables vs. Python/Pandas: A Different Way to Wrangle Data2 people · 6 points · first shared 2025 · 1 comments on HN
- 780% of Rye in 20% of the Time [1/3]2 people · 4 points · first shared 2026 · discussion on HN
- 8The Cognitive Dark Forest2 people · 3 points · first shared 2026 · discussion on HN
- 9Opwords2 people · first shared 2024
- 10Spreadsheets 1/3 – Rye Language1 people · 76 points · first shared 2024 · 28 comments on HN
- 11Working on a Programming Language in the Age of LLMs1 people · 53 points · first shared 2025 · 22 comments on HN
- 12See Yourself, at Runtime1 people · 4 points · first shared 2025 · 1 comments on HN
- 13How contexts (scopes) work in Ryelang1 people · 2 points · first shared 2024 · discussion on HN
- 14Rye Block Structures1 people · 2 points · first shared 2024 · discussion on HN
- 15Rye's Simple Evaluation Rules1 people · 2 points · first shared 2024 · discussion on HN
What HN people wrote when they linked it
middayc · 2026-02-09
Improving seccomp and landlock intergration into https://ryelang.org, improving tooling for making single executable files from rye projects, experimenting with reactive, declarative TUI library.
johnisgood · 2024-07-10
Not to be confused with Rye, the programming language: https://ryelang.org
tangentstorm · 2024-04-12
Oh. I had hoped this was about https://ryelang.org/.
red-iron-pine · 2026-04-24
see also: https://ryelang.org/blog/posts/cognitive-dark-forest/
(posted on HN a couple of weeks back)
RodgerTheGreat · 2025-11-25
There are a number of dynamic languages to choose from where tables/dataframes are truly first-class datatypes: perhaps most notably Q[0]. There are also emerging languages like Rye[1] or my own Lil[2].
I suspect that in the fullness of time, mainstream languages will eventually fully incorporate tabular programming in much the same way they have slowly absorbed a variety of idioms traditionally seen as part of functional programming, like map/filter/reduce on collections.
[0] https://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems)
[1] https://ryelang.org/blog/posts/comparing_tables_to_python/
[2] http://beyondloom.com/tools/trylil.html
snthpy · 2024-06-12
Ok then you're not really giving up much with data-first and are gaining benefits.
Rye has an interesting approach with the * syntax to allow injecting into the second argument for op-words: https://ryelang.org/meet_rye/specifics/opwords/
justinpombrio · 2024-03-23
This took me a minute to get, even after looking at the page about if:
https://ryelang.org/meet_rye/basics/if_either/
The tricky thing about if, and, and or --- the reason you can't implement them as functions in most languages --- is that they need to not evaluate all their arguments immediately. Otherwise:
// Would print! if(false, print("oops!")) // Would throw an error if the key is not present and(my_hashmap.has_key("key"), my_hashmap["key"]) The way that ryelang gets around this is that you pass the arguments in a "code block" surrounded by "{}", which delays its evaluation. So you write:
// Does not print, because *if* never runs its code block arg if 0 { print("oops!") } // There's no example of *and* anywhere but my guess is you'd write this: and { my_hashmap.has_key("key") } { my_hashmap["key"] }
samatman · 2024-03-23
This is possible with fexprs or equivalent constructs https://en.wikipedia.org/wiki/Fexpr
It looks like that's how Rye does it as well, blocks can be conditionally evaluated: https://ryelang.org/meet_rye/basics/if_either/
"In REBOL, contrary to Lisps, blocks or lists don’t evaluate by default. For better or for worse, this little difference is what makes REBOL - REBOL." https://ryelang.org/meet_rye/basics/doing_blocks/
It's difficult for a language with this semantics to be made efficient, but efficiency isn't everything.
anamexis · 2024-03-23
"if" is the "if" expression - https://ryelang.org/meet_rye/basics/if_either/