Could Ren-C and Red Interoperate (and if so, *should* they?)

The term "Ren" (REadable Notation) was an initiative from--I believe--Gregg Irwin and Rebolek, where the idea was to standardize notations between Rebol and Red in a similar way to how JSON was standardized... then allowing other languages (like Python or JavaScript) be able to read the messages as well:

Ren - The Human Notation

Since that was in the air at the time...and my fork wouldn't/couldn't be called Rebol(tm), the idea was to embrace the idea and call itself "Ren-C" to be the C implementation of that data structure.

That was long ago. And you won't hear the term "Ren" thrown around by Red much anymore. And with consensus designs between the projects out the window, it's clear Ren-C is overdue for a name change. (But you don't get a second chance to make a first impression, so no point in announcing a new name unless there's a bigger announcement to accompany it.)

...point of the above being...

The very basics - MOLD and SAVE are almost in place.

...I don't know how close we're going to get on this.

Ren-C hopes to be a kind-of-superset. So far, the superset is an emulation layer I call "Redbol", and that emulation becomes more difficult as we go along. (Though I have some ideas.)

The "binary" equivalent with some form of compatible REBBIN is surely not that hard to agree between the two sets of developers.

I'd say it's very hard if redbin attempts to capture objects and (I think?) binding. Binding is going to be very different, as summarized in:

Rebol And Scopes: Well, Why Not?

I understand feeling there must be some teachable moment to be found on what essence of shared concepts and syntax both Ren-C and Red find so critical as to not throw out.

Despite understanding someone having the feeling that should be true... the reality is that interoperability is likely to get worse and not better. Less will work in the future than works today.

It may be a subset of what could be called "Ren" could be read and written by both. Important to note is that JSON is typically parsed and not "LOAD"-ed as code even by JavaScript, so similar premises could apply there.

1 Like