I believe that a language feature called “algebrai...
# linking-together
r
I believe that a language feature called “algebraic effects and handlers”, because of their overwhelming simplicity, is a key to make programming more accessible to people. Please read my article about it. https://github.com/Hihaheho/Desk/blob/main/docs/blog/0002-algebraic-effects.md
p
I'd like to understand more why you think they are key to making programming more accessible? What do you call them, or how do you describe them, when talking to people not comfortable with "algebraic ...". There are still several design decisions left to make when implementing effects. should handlers be deep or shallow? should multiple resumption be allowed? what syntax should they have. How have you tackled these questions in a way that makes programming as a whole more accessible?
r
I call it effects, and I describes it “An effect has an input and output. You can get a output from somewhere.” Its design focuses on simplicity and easiness. For example the handler is deep handler because the code is simpler and semantics is intuitive for me. I should design the GUI carefully. Multi-shot continuation has minimal semantics in my language because perform and continue are symmetric. For syntax, I choose minimalistic one because most users don’t use the syntax because my language is a visual programming language.
p
visual cool, do you have some screenshots or videos? sounds like we have some similar ideas. 🙂
r
The language polishment is mostly done and the editor is just getting started, and I don’t have any screenshot. I would like to know about your ideas.
w
To echo @Peter Saxton, is it the composability of algebraic effects and handlers the big bonus here? That you can combine them in flexible ways?
r
Yes, In Desk-lang, all side effects other than pure computation are tracked in the type system. And effects can be handled within the language or outside the language.
p
if no screenshots do you have some examples of the syntax you chose. I've been discussing some syntaxes here https://github.com/gleam-lang/gleam/discussions/1740
I talk about my ideas most weeks here https://petersaxton.uk/log/
Not all will be interesting to you, but the very first ones are on my structural editor and more mid year do I discuss effect types
r
Thanks! I will take a look at it.
r
Funny, the first thing that came to my mind was the Dan Abramov's article and indeed you cited it 🙂