@FourthWorld:
Moving forward with the "English-like" mandate, I believe we may want to remain mindful of the limitations inherent in such a mandate, being careful not to raise expectations that ultimately can't be met without making the language as cumbersome and prone to misunderstandings as English usage among humans.
This is why I never use the phrase 'natural language', and always emphasise the 'like' in 'English-like'. We are not aiming to produce a natural language system. What we are aiming to produce is a system where you can tailor syntax to problem domains so that you
don't have to use forms that are convenient for a computer but not for us.
But as I've taught xTalk over the years, the thing that really stands out for aiding learnability the most turns out not to be the syntax per se as much as the integration of the language with the GUI object model.
Most languages treat GUI objects as an afterthought, grafting them in after the core language is defined, to arrive at a system in which the core language and making GUI apps with it are conceptually disjointed.
Well, most languages are designed to be general and do nothing until you write libraries and such to access functionality. They provide a (minimal) generalised syntax which means you can easily add such functionality, but you cannot influence the syntax to help express the functionality's use. Indeed, where we are moving towards is actually a more traditional model in this regard - the core of the engine will do nothing that has any outward effect - it will be the arbiter of the modules that can actually do something. Of course the key difference here is that each of those modules will be able to define their language environment - i.e. describe how the functionality they provide should be accessed in a much richer way then function/dot type notation.
But as I've taught xTalk over the years, the thing that really stands out for aiding learnability the most turns out not to be the syntax per se as much as the integration of the language with the GUI object model.
Right - this is precisely an example of what I said above: the reason xTalks are good at GUI manipulation is because the syntax for manipulating the GUI object model is tailored precisely to that purpose. (The actual GUI object model that LiveCode has isn't all that dissimilar from any other GUI framework - you just get to 'talk' to it more naturally).
So I suppose as I spend more time thinking about this, I would suggest we step back from the syntax-as-text and think instead about the whole context of the language, object model and all. In such a birds-eye-view I think we'll discover the strongest element of LiveCode's learnability, which I believe is a much bigger contribution than just the English-like syntax alone.
It's easy to get lost in specific syntax discussions as you say and miss the wider picture. However, I guess my point in the ramblings above is this: what the problem domain is doesn't matter (whether it be statistics, GUIs, industrial process control etc.), the key is the ability to be able to tailor the syntax of the language to fit the domain you are working within; otherwise, you could have an amazing object model, but it would still be difficult to use because the channel of communication we have to it (as programmers) has to be funnelled through language that serves the computer, not the human.