Rémy Mouëza <remy.mou...@gmail.com> writes:

> How will your Ocean language lab be different from Rebol?

Thanks for the pointer, Remy.  I was not very familiar with Rebol
before.

The difference is that the Rebol syntax can be compared with just one
component of Ocean, _Rock_, which is the default concrete syntax I
alluded to earlier.

However, the main contribution of Ocean will be first-class grammars,
encouraging people to use them as a control structure (as innovated by
the VPRI folks), and thereby assimilate other syntaxes/protocols that
don't need to have any relationship to Rock.

Ocean will share much more in common with John Shutt's Kernel language
(a cleaned up and simplified "Scheme reloaded"), which I take as an
excellent starting point for a language lab.

As an example, Ocean will be fexpr-based, as well as having
first-class environments.  I believe that first-class grammars
combined with fexprs will add significant power to the language,
allowing for any construct to define syntactical transformations via a
grammar and direct eval calls, rather than indirectly as in macros.

Rebol, on the other hand, depends on simple precedence rules and
shoehorns all its DSLs into the same syntax.  I can't overemphasize
the convincing case that Ian made about how simple a language
bootstrap can be when you have first-class grammars, and how much of a
useful tool they can be in everyday programming.

Ocean's next contributions will be in determining a minimal set of
basic abstractions that are needed to bootstrap the environment,
potentially differently expressed than in Kernel (which, to me,
doesn't seem too focused on bootstrapping).  This needs very
convincing stories for namespaces, peer-to-peer and parent-child
messaging, protocol/syntax description, and (what may not yet be an
obvious need, and I wish I had a better way of describing it)
steganography.

Of course, that's all hot air until I get the first release together.

If there was one key idea I wanted to impart to you, dear reader, it
is that _plurality_ is the theme.  I have no agenda to promote or
disparage another system, just that I want to understand them and
integrate with them to the highest degree possible.  But of course,
that will only be an option once the environment is bootstrapped.

Good night,

-- 
Michael FIG <mich...@fig.org> //\
   http://michael.fig.org/    \//

_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to