https://futureofcoding.org/ logo
#linking-together
Title
# linking-together
r

Ryo Hirayama

12/09/2022, 4:38 PM
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

Peter Saxton

12/10/2022, 9:54 PM
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

Ryo Hirayama

12/11/2022, 3:25 AM
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

Peter Saxton

12/11/2022, 12:44 PM
visual cool, do you have some screenshots or videos? sounds like we have some similar ideas. 🙂
r

Ryo Hirayama

12/11/2022, 12:47 PM
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

wtaysom

12/12/2022, 5:44 AM
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

Ryo Hirayama

12/12/2022, 7:41 AM
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

Peter Saxton

12/12/2022, 8:41 AM
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

Ryo Hirayama

12/12/2022, 8:48 AM
Thanks! I will take a look at it.
r

Ruben Garcia

12/12/2022, 2:15 PM
Funny, the first thing that came to my mind was the Dan Abramov's article and indeed you cited it 🙂