[ANN] LiveCode List Processor

Peter W A Wood peterwawood at gmail.com
Tue Oct 13 20:27:14 EDT 2015


Richard

> Richard Gaskin <ambassador at fourthworld.com> wrote:
> 
> I've not used Rebol, but have read much of its documentation at various points over the years.  Carl Sassenrath is an interesting thinker, and his language reflects some very unusual and intriguing concepts.
> 
> Aside from MetaCard I've seen almost no other scripting language but Rebol that wholeheartedly embraced the concept of delivering applications over the wire.

Sadly it seems that the World was not ready at the time for a way to painlessly distribute both apps and data over what would now be considered very thin wires. Current App Stores and Web Push Notifications offer little more than the Rebol/View desktop and the even more advanced (IOS) Internet Operating System did more than ten years ago. The have a better looking interface and they can collect money. Probably nothing that couldn’t have been quite easily added to IOS. If only Carl had found a partner whose marketing prowess was the equal of his technical prowess.

Over the years, Rebol has become a general purpose development tool and its network roots have withered. I see a comparison with LiveCode which has grown into a general purpose development tool from its multimedia roots.

> Way back in the day I imagined I might have enough time to flesh out some Rebol-like concepts in what was then called "Revolution", but this was as far as I had time to go:
> 
>   go url "http://fourthworld.net/channels/Revel.rev”

A very realistic impersonation.
> 
> Underneath that would be a lightweight syntax for describing objects similar to Rebol's auto-layout capabilities.  I made just enough of it to allow sparse descriptions of objects and have them created on the fly in somewhat reasonable locations, but never had the time to take it as far as Rebol did.  And like too many other things on my hard drive, without an immediate need for using it in actual work, I can't say I have any plans to get back to it. :)
> 
> I'd be interested in your opinion on Rebol dialects:
> <http://www.rebol.com/rebolsteps.html#section-10>
> 
> They seem a key feature of the language, an opportunity to create domain-specific languages from the core Rebol language.
> 
> In this regard it seems a similar set of goals to the proposed Open Language initiative for LiveCode.  Not directly the same, but similar in the way that many of Python's design goals almost perfectly parallel LiveCode's design goals, even though the expression of those goals has taken very different forms.
> 
> Do you have any thoughts on the strengths or weaknesses of Rebol's approach vs LiveCode's for creating domain-specific dialects?

I believe Rebol (and what I see as it’s successor Red) has two significant advantages over LiveCode for writing domain-specific dialects., 

The first is that in Rebol values (not variables) are strictly typed. Values must be loaded in Rebol, once loaded a value is typed (e.g. integer). An integer can only be treated as a integer, there is no typecasting mechanism. As I understand, LiveCode has very few types, mainly everything is a string except for arrays and (maybe) objects. (I say maybe as my knowledge of LiveCode is insufficient in the area of how Objects are stored.)

The second is Rebol’s parse function which operates on loaded data and can match on both data and datatype. This is a huge advantage in writing domain specific dialects. (Parse also operates on strings and can do 99% of what can be done with regex, and a lot more, legibly and comprehensively).

> >> To be fair '?' poses less of a problem in this regard than '.' - in
> >> terms of limiting future options that have been discussed at length
> >> in the past ;)
> >
> > I was surprised to read this as I started using this convention when
> > one of the LiveCode team commented on somebody’s code that used the
> > same convention and said “some people in the office have started
> > using it”. Of course, I can no longer find the comment.  If you think
> > it is an unwise convention to use to avoid name clashes, I will adopt
> > another one. Any suggestions as to a good approach/
> 
> A lot of xTalkers express Boolean functions with something list "Is*", e.g.  "if IsList() then…".

Thanks for that suggestion. I might switch to IsList rather than List? etc. It would seem better to use an xTalk convention than a “foreign” one.

Kind regards

Peter





More information about the use-livecode mailing list