Man AST editors are so hard to get right. I've tried many of them, this one (Golem) included, but it's just very hard to kill the habit of wanting to move around/delete single text characters. Because of that, many people give up and don't move past the initial stage.<p>I think what we need is "Elm error messages" (<a href="http://elm-lang.org/blog/compiler-errors-for-humans" rel="nofollow">http://elm-lang.org/blog/compiler-errors-for-humans</a>) for AST editors. Take paredit for example. If you're trying to delete a closing parenthesis, instead of refusing to do so and silently fail, display a tooltip that explains why such action is disallowed, and a list of (heck, hard-coded even, like some Elm errors) likely actions the user's trying to take. Deleting the list? Deleting just a token? Show the keybindings. Or even automatically pick the most likely action after a second invalid delete attempt.<p>I actually believe the constraints imposed by structural editing can be very beneficial (again, see paredit which helps your program stay syntactically valid). But constraints are good when they're visible. You can exhaustively check what's there. Constraints are frustrating when they're invisible and you repeatedly accidentally stumble against them.<p>(Ideally you'd also provide a free-form mode where you can edit things as plain text. But from personal experience I'd just go back to this instead of learning the AST editing keybindings.)
Don't miss the presentation linked at the bottom of the readme[1], and the browser-based IDE, Golem linked in the middle[2].<p>[1] <a href="https://www.youtube.com/watch?v=HnZipJOan54" rel="nofollow">https://www.youtube.com/watch?v=HnZipJOan54</a>
[2] <a href="http://shem.io/" rel="nofollow">http://shem.io/</a>
Not to be confused with Shen [0].<p>[0] <a href="http://www.shenlanguage.org/" rel="nofollow">http://www.shenlanguage.org/</a>
So it came to pass that Haskell begat a Lisp, who in turn begat many children unto the clan of JavaScript.<p>The title translates to "biblical speak" pretty well haha
So this is not javascript version of shen? Very confusing name.<p><a href="http://www.shenlanguage.org/" rel="nofollow">http://www.shenlanguage.org/</a>
> The semantics are based on Haskell<p>Are the semantics available anywhere? I've been waiting for someone to create a Lisp with pure/monadic IO, but I don't know whether Shem is what I imagine.