From the site:
We have entered a world in which we need to do more with less. If you, like us, have frowned at the difficulty and inefficiency of creating software, and wondered if there is a better way, Meta is for you. It is a descendant of the acclaimed REBOL and Logo computer languages. Logo was designed in academia to teach programming in a simple yet powerful way. It is widely used in education and influenced many newer systems and languages. REBOL extended this concept to professional programming. It was invented by Carl Sassenrath, the chief software designer of the famous Amiga computer, the first consumer multimedia system. Meta takes the next step by combining this design with the virtues of the C programming language, which has been the standard for software interoperability and performance for half a century.
- Seems to be primarily inspired by REBOL but designed to be faster [1].
- Can compile to various 8-bit Atari machines and αcτµαlly pδrταblε εxεcµταblε (which means it can run on almost anything) [2].
- Has an official Bluesky account, which AFAIK is the main social media presence.
Red/REBOL are a data format first. Many native data types. Lisp uses Fexpr and Red use a basic token. Each character!
Originally Posted on Hacker News by 9214
Red (and Rebol) are based on research in denotational semantics that Carl Sassenrath did. I’ll try to briefly explain the main points.
Everything starts with a UTF-8 encoded string. Each valid token in this string is converted to an internal data representation - a boxed structure 4 machine pointers in size, called a value slot or sometimes a cell.
Value slot is composed of a header and a payload. Header contains various flags and datatype ID, payload specifies exact content of the value. If content doesn’t fit in one value slot, then payload contains a pointer to an external buffer (an array of value slots, bytes, or other units + offset and start/end addresses IIRC) with extra data.
So, lexer converts string representation to a tree of value slots (this phase is called loading), which is essentially a concrete syntax tree (CST) — this is the crux of homoiconicity.
https://github.com/red/red/wiki/[DOC]-How-Red-works,-a-brief-explanation
https://github.com/red/red/wiki/[DOC]-Guru-Meditations#contexts-and-binding
https://github.com/red/red/wiki/[DOC]-Function-Evaluation
Who cares if creators cant name things great. Forget names lets use and improve technology.