← Back to context

Comment by Towaway69

7 days ago

Generalising the point the author is making: how do tools and programming languages shape/influence our thinking. I think this something we all should be asking ourselves.

It’s important to remember that certain concepts simply don’t occur to us as programmers because the language(s) we use.

For example how many JavaScript programmers know what an Erlang supervisor pattern is. How can they if JavaScript doesn’t support it. Perhaps the problem I’m facing in JS would be best solved using a supervisor but since it isn’t available, I don’t use it.

Even the language we speak influences our thinking, so do the tools we use and perhaps we should be aware of that.

> For example how many JavaScript programmers know what an Erlang supervisor pattern is. How can they if JavaScript doesn’t support it.

I've been running into the opposite issue. we built a project in liveview and the state management is not quite how I'd like it. pretty much everything is a callback to handle_info on a single object where you set the value to socket.assigns but no canonical way of organizing it. The pieces are all there to do some kind of stream based pipeline with an async reducer but no one has done it yet.

JS devs of course already know redux so this is a solved pattern in the js world

  • sounds like a gen_redux is needed.

    hm ... why not actually? What would go into a gen_redux ... gen_event and gen_statem and some coordinated message passing!