Elm needs a graphical IDE

I am a CS student.
I know how to program. I taught myself when I was 15 (my brother taught me how to use the While loop and For loop, and I figured out the rest).
I am familiar with C, C++, Java, Python, assembly, Racket-Scheme, and TI-BASIC.
I am familiar with the conceptual benefits of using Functional languages.
I am new to Haskell, Elm, and still somewhat new to Racket-Scheme.

I do not like memorizing new languages and quickly forget their specific terms, but I retain the general idea and structure. It is difficult for me to learn languages, because I have a language and short-term memory deficit, despite excellent perceptual reasoning skills (98th percentile) and excellent working memory (96th percentile). While I am an exception, I am a sort of “yellow canary” for language designers, as my difficult predicts whether a language will gain popularity. This is because the specifics of any given language are not reusable in other languages, due to the execution models being necessarily different, so it is logical for new users like me to decide not to invest much mental effort in retaining those specifics, when there are so many different languages for a new user to decide between. It is not economical for people to switch languages, and people tend to pick up whatever language is taught by teachers, used by friends, or requested by bosses, so this is why popular languages stay popular, while smaller languages fight harder to gain dominance.

While doing the tutorial, it has been somewhat accessible, and I’m actually impressed.

However, I do believe that Elm would benefit greatly from a graphical IDE built for Elm. This accelerates the discovery process for the language and gives users an easy way to remember the language specifics by contextualizing the terms (associating the string with a visual construct), instead of first memorizing the terms and then generalizing the specifics into a theory.

2 Likes

If you use Visual Studio Code, check out the elm-tooling extension. It comes with linting, syntax highlighting, hints, jump to definition, and all the other good stuff. In my experience, it makes writing Elm at least 10% easier.

You may also want to try the IntelliJ plugin: https://github.com/klazuka/intellij-elm

However, I think you’re right that a purpose-built IDE would be pretty fantastic. It could potentially be better than something built inside another editor!

What features exactly do you expect from a graphical IDE? Like the others pointed out, the existing plugins already go a long way: they give us autocomplete, linting, autoformatting integration, error highlighting and all the usual IDE suspects. Did you mean something not covered by the above?

I think one thing to bear in mind is that Elm, while being awesome, still has a small-ish community, so some tooling is not as good as what you get for some bigger projects. Compare, for instance, elm-debugger (that, incidentally, only work in the browser, not inside your IDE) with Redux DevTools. Redux was inspired by Elm, yet their DevTools extension is way ahead, and no wonder, given the size of the React/Redux community and adoption by the industry.

This is probably interesting to you: https://github.com/digital-ember/elmMPS

4 Likes

You would also be able to write something like this for vscode with this feature https://code.visualstudio.com/updates/v1_44#_custom-text-editors

@razze That looks like a really good option.

a@everyone My idea is effectively what @razze has linked to. A way to create a form-based and diagram-based UI with components to represent the language constructs.

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