Rye is a high level, homoiconic dynamic programming language based on ideas from Rebol, flavored by Factor, Linux shell and Go. It’s still in development, but we are focused on making it useful as soon as possible.

It’s written in Go and could also be seen as Go’s scripting companion as Go’s libraries are very easy to integrate, and Rye can be embedded into Go programs as a scripting or a config language.

I believe that as a language becomes higher level it starts bridging the gap towards user interfaces. Rye has great emphasis on interactive use (Rye console) where we intend to also explore that.


From Wikipedia:

A language is homoiconic if a program written in it can be manipulated as data using the language…This property is often summarized by saying that the language treats code as data.

The classic example of homoiconicity is LISP. Rye borrows a lot from LISP: there are no keywords (if, for, extends are functions), mutating functions end with !, and the homepage highlights DSLs (“dialects”) and flexibility. But not many parenthesis.

Rebol, the mentioned inspiration, is its own rabbit hole. Like Rye, it touts simplicity, homoiconicity, and support for DSLs. Unlike Rye, it’s very old (although the site’s still being maintained): check out this UI.

  • @Reptorian
    22 months ago

    I have to say, I really like the concept behind this. May be another tool for parsing strings I have besides Python.