Introducing Elm Editor - a web-based IDE for Elm programs

I found this an interesting challenge and invested some time into a solution for mob programming.

We could use the interface from https://pop.com to implement the swapping of control between participants.
That should enable us to advance beyond the code editing experience on Glitch and get all the features we want from an IDE.

What do you think? If that doesn’t fit the workshops, let me know, and we will find another solution.

Thanks for having taken the time to look at this subject, @Viir
I know pop for having used it twice with some of my coworkers.
However I don’t see the interest of using Pop + Elm Editor. Pop can give the control of your computer to the person you are pairing with, so you don’t need an online editor: they can interact with your IDE, run the compiler and the app…

Moreover Pop requires the installation of a heavy client, and I would like to avoid that —It’s a blocker, or at least a time waster, when you organize online workshops. When a workshop lasts 2 hours, you don’t want to loose 1/2 hour to solve registration or installation issues.

Last but not least, are you sure Pop accepts more than two persons to be connected to a session? I did not try, but they talk of “pair programming” only on their web site.

Yes, in this case, the goal was to find a solution without having to wait for an adaption of Elm Editor.

Today I ran a test and found a solution for that. You can have pop create an invite link to enable participants to enter via a website.
Here is a screenshot of how it looked for the participant after they followed the link:

When the participant takes the “Launch in the browser” option, they can join the session from a web browser. So they do need to install a web browser, but as far as I see, the requirements there are not heavier as for using Elm Editor.

I am not opposed to adapting Elm Editor to support mob programming scenarios. But it would be good to understand how alternatives fall short before going into engineering. (Even though 100 hours of engineering might save us 10 hours of testing alternatives.)

If you have a recording of such a workshop or other information about your process, I will be glad to look into it.

In today’s test, there were three clients in the session, so it looks like we are not limited to ‘pair’.
Let me know if you want to give it a try. We can arrange to test together.

1 Like

I implemented this at Expand loading from git repositories to support links to repository root · elm-time/elm-time@6c5d806 · GitHub

You can now use the link to the repository. The loading from git now also works for the URL you find in the address bar on the repository homepage. In this case, Elm Editor uses the HEAD reference from the git repository to determine the default branch.

(Meanwhile I also updated the demo instance to integrate that change)

I hosted a new workshop a few days ago.
I made a new attempt with Codesanbox.io and it was quite satisfying. I assume the issues I encountered the first time I gave it a try were temporary or have been fixed.

Pros:

  • the compiler output is immediately visible (that was not the case with Glitch)
  • syntax coloring;
  • VScode based editor;
  • the invitation process worked smoothly; everybody was able to access the shared code and edit it.

Cons:

  • you have to find a template in the community ones to start a project, and identify the ones with a recent elm version and nice tooling —the first I tried used an old elm version and I failed to upgrade it; otherwise you have to create your own template, and I imagine it would require a couple of hours in order to understand how it works and to tune it);
  • it was frequent the source code changes were not detected by elm-live; we had to restart the container often;
  • (minor) the elm debugger is available only when you display the app in another tab, outside of the codesanbox editor
1 Like

Thanks for sharing your experience.

I looked briefly into the template problem to try to understand how those work. I see there is an interface to ‘Search Sandboxes’. Is every sandbox also a template? After all, their documentation defines them as ‘project starting points’.

In any case, if the remaining cons are enough for you to look further, let me know. So far, I did not run into big challenges expanding Elm Editor. Maybe supporting mob programming also turns out to be easy enough, who knows :man_shrugging:

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.