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

  1. 1
    Rye Language
    7 people · 111 points · first shared 2023 · 56 comments on HN
  2. 2
    If either
    4 people · first shared 2024
  3. 3
    First Class Contexts – Rye Language
    3 people · 59 points · first shared 2024 · 8 comments on HN
  4. 4
    When if is just a function
    2 people · 116 points · first shared 2025 · 104 comments on HN
  5. 5
    GUI Examples – Rye Language
    2 people · 73 points · first shared 2024 · 41 comments on HN
  6. 6
  7. 7
    80% of Rye in 20% of the Time [1/3]
    2 people · 4 points · first shared 2026 · discussion on HN
  8. 8
    The Cognitive Dark Forest
    2 people · 3 points · first shared 2026 · discussion on HN
  9. 9
    Opwords
    2 people · first shared 2024
  10. 10
    Spreadsheets 1/3 – Rye Language
    1 people · 76 points · first shared 2024 · 28 comments on HN
  11. 11
    Working on a Programming Language in the Age of LLMs
    1 people · 53 points · first shared 2025 · 22 comments on HN
  12. 12
    See Yourself, at Runtime
    1 people · 4 points · first shared 2025 · 1 comments on HN
  13. 13
    How contexts (scopes) work in Ryelang
    1 people · 2 points · first shared 2024 · discussion on HN
  14. 14
    Rye Block Structures
    1 people · 2 points · first shared 2024 · discussion on HN
  15. 15
    Rye's Simple Evaluation Rules
    1 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

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close