rhombus-prototype icon indicating copy to clipboard operation
rhombus-prototype copied to clipboard

Thoughts from Rebol/Red

Open mydoghasworms opened this issue 3 years ago • 1 comments

I am probably out of my depth here, but I was led here after an excursion into learning Racket led me to Beautiful Racket and, in turn to the page "Thoughts on Rhombus/Racket 2".

There I was specifically caught by the following remark, quoted from the RacketCon presentation:

“paren­theses are certainly an obstacle for some poten­tial users of Racket … we should try to remove or reduce the obstacle”.

In prior years, I was very much enamored with Rebol (and it's spiritual successor, Red).

Some things specifically appealed to me about Rebol and its aims:

  • It is a homoiconic language; very much in the spirit of Lisp, though the approach to evaluation is a little different (tokens are evaluated directly; blocks represent data literals which can be further evaluated)
  • A big emphasis of the language is on its use for creating DSLs, much in the spirit of Racket, which in Rebol's parlance are called "dialects" (documentation for "parse", Rebol's DSL for building DSLs).
  • Due to its form, the language can masquerade very well as a more "conventional" language
  • The language is meant to be human-friendly

As part of the human-friendliness, one of the features of Rebol, which I am very partial to, is its very rich set of literal forms that are evaluated as specific types, including emails, URLs, pairs, files, time, date, tags, etc.

I would invite anyone who is interested to look at this quick and concise overview of the language, which highlights some of its novel ideas (like the different types of literal values already mentioned, paths, dialects, and so forth): REBOL in Ten Steps.

mydoghasworms avatar Feb 25 '21 18:02 mydoghasworms

I just felt like I should add the following remark:

When I started with Rebol, I was able to learn the language very quickly. Moreover, I was able to very quickly grasp and use its parse construct to build a DSL (a mini Logo interpreter) with minimal effort and I found the learning curve very much OK for an average programmer (which I consider myself).

With Racket, not so much. I feel that I have so much to learn before I can even attempt to grasp the concepts necessary to carry on with learning how to create my own DSL.

If Rhombus is in any way going to be aimed at average programmers, to enable them to enjoy the power of building their own DSLs, I would suggest looking at how Rebol does things, which is really plain and simple.

mydoghasworms avatar Feb 27 '21 08:02 mydoghasworms